Support Copilot
+ Published · v7 + Draft updated +Answers customer questions about orders, refunds and shipping. Exposed on web chat and the site widget.
++ Built from ratings and run outcomes over the last 30 days · improver run + #f2c9, 2 h ago · no Logfire traces for this agent — worked without them. +
+You edited the draft by hand. The assistant checked the changes against 22 runs and 6 rated-down answers.
+The verdict informs — it cannot block a publish. Anything actionable lands as an ordinary suggestion in the diff above.
+ +What the agent is, what it may do, how it should answer.
+| You are Support Copilot, the support assistant for Acme Inc. | ||
| Answer customer questions about orders, refunds and shipping. | ||
| − | Use the knowledge base to find policy answers. | +
+
+
+
+ Ground refund answers in the refund-policy skill
+ "Use the knowledge base" is too vague to route a refund question. In 4 sampled runs the agent answered refunds from memory and never called load_skill. +👎 with comment:
+ quoted a 14-day return window — our policy says 30 days The bound refund-policy skill states 30 days in §2. 2 of 6run #b127run #d3a8
+
+
+
+
+
+
+ |
| + | Look up refund questions in the refund-policy skill before answering, and cite the clause you used. | |
| − | Be concise and friendly. | +
+
+
+
+ Make brevity measurable
+ "Concise" is not enforceable. Rated-down answers average 612 output tokens; rated-up ones average 214. A hard shape ("at most three short paragraphs") is what the model can actually follow. +👎 with comment:
+ wall of text for a yes/no question 1 of 6avg 612 vs 214 tokrun #91e2
+
+
+
+
+
+
+ |
| + | Answer in at most three short paragraphs. Match the customer's language. | |
| + | When the caller asks for structured data, return valid JSON only — no prose around it. | +
+
+
+
+ Pin the output format
+ The instructions never say what shape an answer should take, so API callers asking for JSON get prose. 3 of 6 👎 say the agent ignored the requested format; both cited runs retried twice. +👎 with comment:
+ ignored my JSON — had to re-ask twice 3 of 6run #a3f4run #b127surface: api
+
+
+
+
+
+
+ |
| + | ||
| − | When you cannot help, hand off to a human. | +
+
+
+
+ Make the handoff rule concrete
+ "When you cannot help" never triggers — the model always thinks it can. Two conversations show it looping instead of escalating; both were rated down. +👎 with comment:
+ kept apologising instead of getting me a person 2 of 6run #77b0run #91e2
+
+
+
+
+
+
+ |
| + | Hand off to a human when the customer asks for a refund above $200, mentions legal action, or after your second failed answer. |
Semantic search over the collections bound to this agent.
+-
+
-
+ + search_documents + + + Proposed by assistant + ++Description — what the model reads before deciding to call this tool+++
+ +
+ +− Search the knowledge base. ++ + ++Teach the model how to query+In 9 of 12 sampled runs the model passed the customer's entire message as the query. Retrieval returned generic passages and the model retried — 2.3 calls per run on average. A description that says how to query fixes this at the cheapest possible layer.
+👎 with comment:+it quoted the wrong document entirely
Applied as a per-binding override — the capability itself is untouched.9 of 12 runsavg 2.3 calls/runrun #c91drun #e04a++ + + ++ + + ++ Search the organization's document collections. Pass a short, specific query — one question per call, never the user's whole message. Returns the top passages with citations. + + + + Accept writes tool_overrides.search_documents.description into the draft ++
+