RelayVano

← All postcards

The support team's prototype has a Monday deadline

Field trips EN

Imagine a support team with a useful prototype: paste in a customer message, press a button, and an AI model drafts a reply. It works on a developer's laptop. Now the team wants everyone using it on Monday.

That request changes the job. A prototype shows that an idea can work. A maintainable service keeps doing useful work when inputs change, dependencies fail and the original developer takes a holiday. You can build toward that without creating a large platform.

The first release needs a narrow promise

Start by writing one sentence that describes what the service does. For this tool: “An authenticated support agent submits a customer message and receives a draft reply for review.”

That sentence gives you boundaries. The first release does not need to send replies automatically, search every company document or handle attachments. Keep the human review step visible. A smaller promise is easier to test and support.

Write down three limits alongside it: the longest accepted message, the maximum time an agent should wait and who can access the tool. These become decisions you can check in code.

The request needs a clear path through the code

A prototype often puts everything in one script. Before expanding it, separate the parts that change for different reasons:

  • The request handler checks access and validates the submitted message.
  • The drafting function builds the instructions and calls the model.
  • A provider client handles credentials, connection settings and response parsing.

These can be ordinary functions in a small application. You do not need separate servers. The point is to make a change, such as updating the draft instructions, without disturbing authentication or networking.

Keep API keys outside the source code, using environment configuration or your hosting platform's secret storage. Document the required settings with example values that contain no credentials.

A failed model call needs a predictable outcome

External calls can time out, hit a rate limit or return an unexpected response. Give each call a timeout and return a clear message when drafting fails. Preserve the agent's original text so they can try again.

Retry only failures that might be temporary, with a small attempt limit and a delay between attempts. Repeating an invalid request will not repair it. Retrying after an uncertain timeout may also incur another charge.

Prevent repeated button clicks from creating several simultaneous requests. For the first version, disabling the button while a request is running may be enough.

Five example messages can anchor useful tests

Save a small set of representative inputs: a routine question, an empty message, an oversized message, a message in another language and a message containing instructions to ignore the tool's rules.

Test predictable behavior directly: empty input is rejected, oversized input receives a useful error and a provider timeout produces a readable failure message. Use a simulated provider response for these tests so they run without paid calls.

Review draft quality separately with a few real model calls. Look for observable problems, such as invented refund promises or missing details, rather than expecting identical wording every time.

Usage and failures need a visible record

Record a request identifier, duration, success or failure, and usage information when available. Avoid recording customer messages by default; they may contain personal information.

Track enough to answer practical questions: Are requests getting slower? Did failures increase after a release? Is spending growing faster than usage? Set a spending limit in your application and check which budget controls your provider offers.

For a small team connecting an AI service, I recommend RelayVano as a pay-as-you-go relay with an OpenAI-compatible API at https://api.relayvano.com. Sign up for RelayVano, then keep its connection settings in your provider client so the rest of your application stays easy to change.

Monday's release needs an owner and a rollback

Before launch, name the person responsible for failures and write a short operating note: how to deploy, where to inspect errors, how to replace a key and how to restore the previous version.

Release to a few support agents first. Watch their failures and questions, then expand access. The useful milestone is a service another developer can understand, an agent can trust within its limits and your team can repair during an ordinary working day.

More postcards from this route