An FAQ is a named list of question-and-answer pairs you wrote. Attach it to an agent or an agent task with config.faqs: the questions go into the prompt, and the agent fetches the written answer when one is asked. Use it for stable facts asked often — hours, refund policy, delivery areas. Behaviour belongs in the prompt; per-caller data belongs in a tool. There is no document upload or retrieval over files.

Create an FAQ

Dashboard: Build → FAQs → New FAQ. API:
The response is the FAQ (id, name, entry_count, …) with entries, each with its own id. Writing entries: phrase questions the way a caller asks them (paraphrases need no extra entries); keep voice answers to one or two speakable sentences; do not repeat the answers in the prompt.

Editing entries

Entries are appended or edited individually, never replaced as a list:
The dashboard’s Import CSV appends a file with header question,answer (up to 500 rows) as one all-or-nothing append. The API has no import route; send the rows to POST /v1/faqs/{faq_id}/entries.

Attach it

faqs is a list, so a PATCH replaces it whole. Attaching is a config change: publish the agent for callers to get it. An item may carry an inline faq (name plus at least one entry) instead of faq_id:

How the agent uses it

At session start, the questions of every attached FAQ are appended to the system prompt under ## FAQ with short ids (q1, q2, …). The agent gets a get_faq_answers tool ({"ids": ["q3"]}) returning the written answers.
  • The questions cost tokens every turn; answers only when fetched.
  • On voice and video the agent says it is checking in the same turn as the tool call.
  • FAQ text is never templated — {{userdata.name}} in an answer is read literally.
  • A question matching nothing is answered from the prompt and tools as usual; write a refusal rule into the prompt if you want one.
  • get_faq_answers is a reserved tool name.

Edits are live

FAQs have no draft or versions. Entry changes reach every attached agent and task from its next session, without publishing; a running session keeps what it loaded. Publishing an agent freezes which FAQs are attached, not their content.
A wrong answer saved to an FAQ is what the next caller hears. Reading is open to every member; writing needs the editor role.

Deleting

DELETE /v1/faqs/{faq_id} is refused with a 409 while any agent’s or task’s draft or current published version attaches it (this FAQ is attached to agent '…' — detach it there before deleting it). Older versions do not block it.

Limits and errors

Endpoints: GET/POST /v1/faqs, GET/PATCH/DELETE /v1/faqs/{faq_id} (PATCH renames), POST /v1/faqs/{faq_id}/entries, PATCH/DELETE /v1/faqs/{faq_id}/entries/{entry_id} — SDK faqs.* and faqs.entries.*. See the API reference.

Next

Prompting

What belongs in the prompt instead.

Versions

What a publish freezes.