Agents
An Agent is composed of a specific set of Skills and Workflows, with a system prompt that defines its voice and scope. The agent routes work to its skills; each skill carries its own logic, acceptance evals, and tool access.
What it does
An Agent is the thing a user talks to. When a user says "summarize my last discovery call," the Agent:
- Interprets intent (classification against the wired Skill catalog)
- Picks the right Skill(s) or kicks off a Workflow
- Gathers input via retrieval (
ctx.retrieveacross the tenant's Sources) - Streams back the result, with citations back to the underlying documents and objects
Agents are named identities. Multiple agents can exist per tenant (a sales agent, a support agent, an internal-ops agent). Each sees only the skills + workflows it's wired to — you can safely give the sales agent write access to HubSpot without the support agent getting the same permission.
Agents also carry grouping fields — role (lead | specialist), agentType (mission | workflow | operational), and team — that let them form a Team: a Lead you brief, coordinating its specialists. See Teams.
Folder shape
workspace/<org>/agents/<slug>/
├── agent.yaml # structured definition (required)
├── system-prompt.md # voice, scope, guardrails (required)
├── evals.yaml # conversation-level fixtures (recommended)
└── README.md # optional — rationale, edge cases
agent.yaml
slug: sales-assistant
name: Sales Assistant
description: Reference sales agent — discovery, deal analysis, proposal drafting
active: true
model: gpt-5.4
skillSlugs:
- discovery_summary
- summarize_deal
- draft_followup_email
- search_everything
workflowSlugs:
- discovery_followup
system-prompt.md
The system prompt — defines voice, scope, and guardrails. Free-form markdown. The LLM sees it verbatim on every conversation.
evals.yaml
Conversation fixtures — "given this user message, the agent should call skill X with args Y" or "output should mention Z." Catches regressions where a system prompt tweak silently changes which skills the agent reaches for. See Evals.
Runtime
A user message routes to the Agent's chat.completions call with:
- The Agent's system prompt
- The wired Skills, exposed to the model as callable operations (each skill in turn calls its own tools)
- Retrieval hits already folded into context
The Agent decides whether to answer directly, call a Skill, or start a Workflow. Every decision is a Langfuse trace; every Skill run stamps the active context SHA.
Chat responses can be rated (👍/👎) inline — see feedback + logs.
Connection to other resources
- Teams — how agents group into a lead + specialists
- Skills — the Agent's roles (its responsibilities)
- Tools — the atomic capabilities each skill calls
- Workflows — multi-step procedures the Agent can trigger
- Objects + Sources — what the Agent grounds answers in
Next
- Quickstart — talk to an Agent
- Authoring context — tweaking the system prompt
- Evals — conversation-level regression tests
- Feedback + logs — rating agent answers