Support
Docs
Escalation
Policy
Support volume grows faster than headcount. Teams want an agent that can answer common questions from product docs — without inventing policies or approving refunds it should not approve. A Customer Support Agent is a grounded reply drafter with an escalation path, not a freeform chatbot.
Success looks like: a draft customer reply, citations to the docs used, and an explicit escalate flag when the case is billing-sensitive, ambiguous, or outside the knowledge base.
Paste into Claude, Codex, Cursor, or another coding agent to scaffold this harness.
# Context: Vidbyte SDK Vidbyte SDK is a Python package (import as `vidbyte`) for building agent workflows yourself. Use it when you want to own the agent loop: system prompts, model/provider choice, tools, managed context, middleware, pipelines, tracing, evals, and multi-agent composition. Core mental model: 1. Create an Agent or BaseAgent. 2. Attach a system prompt, provider/model, optional tools, context, middleware, and runtime choices. 3. Call run() or arun(). 4. Let the SDK handle message assembly, tool schemas/calls, iteration limits, and optional pipelines. Public package boundary: reusable local agent infrastructure. It does not ship private Vidbyte learning models or proprietary platform internals. GitHub: https://github.com/cerredz/Vidbyte-SDK Install: pip install vidbyte-sdk Verify: python -c "from vidbyte import Agent, BaseAgent, tool; print(Agent, BaseAgent, callable(tool))" # Install Primary: ```bash pip install vidbyte-sdk ``` From a checkout (pre-release / local development): ```bash git clone https://github.com/cerredz/Vidbyte-SDK.git cd Vidbyte-SDK pip install -e . ``` # Task: Build a Customer Support Agent Build a Vidbyte SDK support agent that answers customer questions using product documentation tools. Scenario: A user emails "I was charged twice this month. How do I get a refund?" The agent should look up the relevant docs, answer helpfully, and escalate when policy requires a human. The harness should: - Accept a support ticket (subject + body) - Use tools to look up FAQ / policy / product docs - Answer only from retrieved material when possible - Escalate billing, legal, or safety issues instead of guessing - Return a reply draft plus a short internal note (sources + confidence) Constraints: - Use Agent + tools for doc lookup - Never invent refunds, credits, or account state - Escalate when docs do not cover the case - Keep the customer-facing tone calm and clear # Deliverable Produce a small, runnable Python harness that uses the Vidbyte SDK (`vidbyte` package) to implement this agent. Prefer clear modules, a main entrypoint, and short comments that explain the control flow. Do not invent private Vidbyte backend APIs.
Write a system prompt that prioritizes helpfulness and honesty. The agent should never invent account-specific facts.
from vidbyte import Agent
agent = Agent(
name="support-agent",
system_prompt=(
"You draft customer support replies. "
"Use lookup tools for product docs. "
"If the answer is not in the docs, say so and escalate. "
"Never invent refunds, credits, or account status."
),
provider="openai",
model_name="gpt-4.1",
)Start with a simple FAQ map or local markdown search. Replace the stub with your real help center later.
from vidbyte import tool
DOCS = {
"billing": "Refunds take 5–10 business days after approval. Double charges need human review.",
"login": "Reset password from Settings → Security. Clear cookies if the page loops.",
}
@tool
def lookup_docs(topic: str) -> str:
"""Look up product documentation by topic keyword."""
key = topic.lower()
for name, body in DOCS.items():
if name in key or key in name:
return body
return "No matching doc found."Policy belongs in the system prompt and tool results. The agent should return a structured decision: reply vs escalate.
system_prompt = """
Draft a support reply using lookup_docs.
Always output:
1) customer_reply — the message to send
2) sources — docs topics used
3) escalate — true/false with reason
Escalate when: billing disputes, legal threats, safety issues,
or docs do not cover the question.
"""
agent = Agent(
name="support-agent",
system_prompt=system_prompt,
provider="openai",
model_name="gpt-4.1",
tools=[lookup_docs],
)Feed a realistic ticket body. Inspect whether the agent looked up docs and whether escalate is set correctly for billing.
ticket = (
"Subject: Double charge\n"
"Body: I was charged twice this month. How do I get a refund?"
)
reply = await agent.arun(ticket)
print(reply.content)Production support agents need iteration limits, logging, and human review queues. The SDK loop is the core; your app owns ticket state and audit trails.
# Next steps in your app (outside the minimal SDK demo): # - store ticket id + model output # - route escalate=true to a human queue # - log which docs topics were retrieved # - add middleware for rate limits / audit if using SDK middleware