By business type

What an assistant adds to documentation that readers already search

Every other kind of business puts an assistant on its site to replace a phone call. A developer tools company is doing something harder. The reader has already opened the documentation, already used the search box, and is asking because the search did not work. That sets a much higher bar: an assistant that paraphrases the page they just read is worse than useless, and an answer drawn from documentation for a release they are not running is worse still.

What people actually type

Not the questions on your FAQ page. These are the phrasings that arrive in a chat window, lowercase and unpunctuated, and the material has to answer them in those words rather than in yours.

  • how do i authenticate a request
  • what does a 429 mean here
  • is v1 still supported
  • how do i migrate from v2 to v3
  • does this work with node 18
  • why am i getting a cors error
  • what is the rate limit
  • is there an sdk for go
  • how do i rotate a key without downtime
  • what replaced the old webhook endpoint
  • how do i test webhooks locally
  • is there a sandbox environment

What to feed it

In rough order of how much work each one takes off the front desk. Every one of these is a document you almost certainly already have.

Material worth indexing
The reference documentation for every supported release, labelled by versionThe label is the point. A corpus that mixes three major versions with no version marker on the pages will confidently return a signature that was removed two releases ago, and the reader has no way to tell. If your documentation site keeps versions on separate paths, that structure is what makes an assistant safe here. If it does not, that is the thing to fix before indexing anything.
Migration guides and deprecation noticesThe highest support value material you have, by a wide margin. Every deprecation generates a wave of identical questions from people who did not read the changelog, and every one of those questions already has a written answer. Index the notices with their dates and their removal timelines, because when does this stop working is the actual question.
The error and status code referenceDevelopers do not search for concepts, they paste the error. If your errors have codes, index the code, the human explanation and the three most common causes. If your error strings appear nowhere in your documentation, then the most common query on your site is one your material cannot answer at all.
Quickstarts, one per supported languageThe first ten minutes decide whether somebody continues, and the questions in that window are narrow and repetitive: which package, which import, where the key goes, what a minimal working call looks like. Indexed per language, the answer arrives in the language the reader is actually writing.
The changelog, with dates on every entryIt answers when did this change and did you break this on purpose, which is asked constantly and is rarely findable. It also gives the assistant a way to distinguish current behaviour from behaviour described in an older guide you have not got round to updating.
Limits, quotas and the unit you bill onRequests, rows, builds, minutes, seats or events. A developer evaluating a tool has to model the cost before they can recommend it internally, and this is usually spread across a pricing page and three documentation pages that quietly disagree with each other.

What has to reach a person

Anything that requires reading the caller's code

Why does my request fail, what is wrong with this configuration, why does it work locally and not in the pipeline. The assistant cannot run anything, cannot see the repository, and cannot reproduce the failure. It has documentation, and documentation does not contain the reader's mistake.

The useful behaviour is to answer the documented part (what the error means, what usually causes it) and be explicit that it cannot debug this case. A developer told plainly that this needs a human will take the handover. A developer given three confident wrong guesses will write about it somewhere public.

Is it down right now

During an incident this becomes the only question on the site, and it is the one the assistant is least able to answer. It reads indexed material, so what it knows is what your status page said the last time the material was read, which during an outage is precisely the wrong thing to repeat.

Word the handling so it never asserts current availability. It should point at the status page and the incident channel rather than reporting a state, unless you have separately connected a source that carries live status.

Will you support this, and when

Roadmap questions, feature requests, and will this ever work with a given runtime. Anything unshipped is undocumented, and an assistant that infers a plan from an old blog post has just committed your engineering team to a date. Route these to a person or to wherever you collect requests.

Keys, quotas and account state

Whether a key is valid, why a quota was reduced, whether an account is being rate limited. It can explain how keys and quotas work and how to rotate one safely. It cannot look one up, and on a developer site the pull towards sounding authoritative about this is strong because everything around it is precise.

The wording when it cannot help

This is the message the assistant returns when nothing in the material covers the question. It is written by you rather than generated, which matters here more than anywhere: it is the sentence a stranger reads at the worst moment.

A refusal worth copying
I cannot debug your code or see your project, so I would only be guessing at this one. Here is what the documentation says about this error and its usual causes. If that does not cover it, leave your name, your email and the details and I will pass it to the team, or open an issue and somebody will pick it up there.

It names what it cannot do, gives the route that can, and offers to take a message. A refusal that only apologises leaves the person exactly where they started.

Rules and duties that shape the answer

Version skew is the failure that matters here

An answer drawn from documentation for a release the reader is not running is worse than no answer, because it is plausible, specific and wrong in a way that costs an afternoon. This is the one failure mode unique to this trade, and it is almost entirely a content problem rather than a model problem.

The mitigations are practical. Keep versioned documentation on distinct paths so the distinction survives indexing, drop archived versions out of the index rather than leaving them to compete, and raise the caution setting so a weak match refuses instead of reaching into an old page.

Code in an answer has to be quoted, not composed

A snippet assembled from a plausible reading of an API is the most dangerous output an assistant can produce on this kind of site, because it looks exactly like a snippet copied from documentation and it goes straight into an editor.

The setting that governs this is caution: cautious behaviour returns the documented example with its citation rather than adapting it to the reader's situation. Every answer carries numbered citations back to the source page, which on a docs site is not decoration, it is how the reader checks which version the code came from before trusting it.

Your documentation is full of imperatives, and none of them are addressed to the assistant

Technical documentation is written in the imperative mood. Run this, set that, ignore the previous step, disable verification for local testing. Some of it sits inside code blocks, some inside comments in sample configuration, and some arrives from pages a crawl picked up along the way.

Retrieved material is treated strictly as data rather than as commands, so a page containing something that reads like an instruction is quoted rather than obeyed. On a documentation corpus that distinction is not theoretical, it is a property you need holding on every page you index.

Never, whatever the documents say

Out of bounds

  • Why a specific piece of the reader's code fails.
  • Whether the service is up or degraded at this moment.
  • Whether an unreleased feature is planned, and when it would ship.
  • Whether a specific API key, quota or account is valid.
  • A code example composed rather than quoted from the documentation.

Playbooks for this trade

One page per recurring question, written for a developer tools company rather than in general. Each carries the phrasings, the material that answers them, a reply worth copying, and the line where it has to stop.

Questions

We already have documentation search. Why add an assistant?
Because the two fail differently. Search fails when the reader does not know the term you used, which is most of the time with error strings, deprecated names and concepts they know by another vendor's word for them. An assistant answering from your own pages with citations bridges that gap, and if it is not doing that then it is not worth the widget.
How do we stop it answering from documentation for an old version?
Keep versions on separate paths so indexing keeps them separate, index only the versions you support, and raise the caution level so a weak match returns the refusal rather than the nearest page. It is worth testing this deliberately: ask about a method you removed and check which version the citation points at.
Will it write code for us?
It should not, and that is intended behaviour rather than a limitation. It answers from your material, so what it returns is the documented example with a citation attached. Anything past that is composition, and composed code on a docs site is a support ticket with extra steps.
Can it read our public issue tracker as well?
Only if those pages are on a site it reads, and think carefully before doing it. Issue threads contain wrong answers, workarounds for versions long gone, and arguments that were never resolved, all written in the confident voice of a maintainer. Indexed material becomes answers, so an issue tracker is a corpus of your community's mistakes as well as its fixes.

Keep reading

Try it on your own material

Upload a document or point it at your site, paste one line of HTML, then ask it something only your business could answer.