An agent in Copass is a stored configuration: identity, system prompt, tool surface, model settings. You create one, point triggers at it (or invoke it directly), and it runs against the integrations and data in its sandbox. Every sandbox can hold many agents. They’re cheap — spin up specialists rather than overloading one big one.Documentation Index
Fetch the complete documentation index at: https://docs.copass.com/llms.txt
Use this file to discover all available pages before exploring further.
What you can do
- Create an agent with a slug, name, system prompt, and model settings.
- List, show, update, or archive existing agents.
- Test-fire an agent synchronously with a fake event payload.
- Inspect the dynamic tool catalog the agent will see at runtime.
Via the Concierge (recommended)
“Create an agent namedThe Concierge handles slug picking, default model selection, tool-source defaults, and the right pre-flights before any change.supportthat answers Slack questions using our knowledge graph.” “Switch the support agent to Sonnet and raise the turn limit to 15.” “Show me all my agents.” “Test the triage agent with this fake event:{ "title": "broken checkout" }.”
Via the CLI
The Ink-renderedagent setup wizard walks you through creation interactively:
Via the SDK / API
Anatomy of an agent row
| Field | Purpose |
|---|---|
slug | Stable wire identifier (lowercase, [a-z0-9-]+). What CLI commands and triggers reference. |
name, description | Human-readable. |
system_prompt | The behavioral spec. Updates bump version. |
tool_sources | Which tool resolvers compose for this agent (copass_retrieval, pipedream, user_mcp, …). Default depends on sandbox. |
tool_allowlist | Which tool names are callable from those sources. [] means “all allowed.” |
model_settings | backend (anthropic / google), model, temperature, max_tokens, max_turns, timeout_s. |
version, status | Server-managed. status: archived stops triggers from firing. |
Common patterns
Specialist > generalist
One agent per job (
triage, support, weekly-summary) with tight prompts beats a single overloaded agent. Switching models per-job is cheap.Test before you wire
Use
agent test (or “test the agent with this fake event”) before pointing triggers at it. See Runs.Tighten allowlist after creation
Default to
tool_allowlist: [] (everything) while iterating. Lock down to specific tool names once the agent is stable. See Tools.Archive, don't delete
archive flips status without losing config or run history. Reversible. The CLI has destroy for permanent removal.Next steps
- Triggers — wire an agent to fire on data-source events.
- Tools — what tools the agent will see and how they’re composed.
- Runs — list, follow, and test runs.
- Agent Router overview — the runtime layer agents execute on.

