tools/list, so nothing here needs a custom integration.
Every summary carries as_of. A queue changes while an agent is reading a
recap of it, and a figure with no timestamp is a figure someone quotes in a
meeting an hour later.
get_support_summary
How the queue looks right now. Input: none.open_conversations counts new, open, and pending together. resolved
and closed have left the queue, so they appear in by_status but not in the
total.
list_oldest_unanswered
Conversations with no reply since the customer’s last message, oldest first. Input:limit, 1 to 50, default 10.
“Unanswered” is not the same as
status = "new". A ticket someone opened,
read, and left is unanswered in every sense a customer cares about, and its
status is open. This checks whether there has been a public reply since
the requester’s last message.get_agent_workload
How many open conversations each active member is assigned. Input: none.get_ticket
One conversation and its public messages. Input:ticket_id, required.
{ "error": "not_found" }.
search_knowledge
Find the workspace’s own reference documents by topic. Input:query (an empty query lists everything), limit 1 to 25, default
10.
tokens is
there so it can tell a one-line rule from a handbook before asking for it.
read_document
The full text of one reference document. Input:document_id, required. Get it from search_knowledge first.
complete is
false and a note says how much was returned:
create_draft_reply
The only write. It writes a draft. Input:ticket_id, required.
delivered: false and the note are returned every single time, on purpose, so
a connected agent cannot tell its user that a reply was sent.
The draft is stored for review in the dashboard, with the calling model
recorded and an audit log row written in the same transaction.
Possible errors:
Tools that do not exist
There is nosend_reply, update_ticket, assign_ticket, or
resolve_ticket.
Their absence is the security model, not an oversight.
The reasoning is here.