Agents, skills and teams
An agent
# agents/northwind-lead.yaml
slug: northwind-lead
name: Northwind Lead
systemPromptFile: ./northwind-lead.system-prompt.md
skills: [account-brief]
playbooks: [pricing-policy]
connectorSources: [hubspot, gmail]
objectTypes: [deal]
budget: { dailyCents: 300 }
harness:
runsOn: in-process
modelProvider: anthropic
excludeTools: [generate_image]
| Field | What it does |
|---|---|
parent | The agent this one reports to (one level). Replaces role |
team | The team it belongs to |
model / harness.model | Model id; else defaults.model |
harness.modelProvider | anthropic, openai or bedrock; else VOCION_LLM_PROVIDER |
harness.runsOn | in-process, agentcore-container, aws-managed-harness or external-worker. Default: agentcore-container when the provider is bedrock, else in-process |
harness.grantTools / excludeTools | Add or remove tools from the built-in set (grantToolsMode: replace replaces it) |
harness.maxSteps, maxTokens, turnDeadlineMinutes | Turn limits (deadline 1–30 minutes) |
harness.promptCache | Prompt caching, on by default |
searchConfig | recencyDecay, sourceWeights, maxResults, minRelevance for knowledge search |
subagents | {name, description, systemPrompt|systemPromptFile, tools?, model?} |
requires | Connectors the agent needs, and what it degrades to without them |
handles | Topics the router should send it, e.g. [pricing, renewals] |
initiative | low, normal, high |
learningSteps | Learning steps mounted for it |
There is no top-level tools: key; shape tools with grantTools and excludeTools.
Built-in tools
Every agent gets web_search, fetch_url, fetch_image, crawl_site, generate_image and run_code, plus tools for the sources in its scope. Rarely used tools load on demand. Providers are set by environment: VOCION_WEBSEARCH_PROVIDER (tavily default, or brave), VOCION_IMAGE_PROVIDER (openai), VOCION_CODE_PROVIDER (builtin or e2b). A workspace's own tool key is used before the server's.
Skills and playbooks
<!-- skills/account-brief/SKILL.md -->
---
slug: account-brief
name: Account brief
description: Summarize an account's open deals, risks and next steps.
playbooks: [pricing-policy]
---
1. Look up the account and its open deals.
2. …
A playbook (playbooks/<slug>/SKILL.md) has the same shape; attach it to an agent or skill by slug. Skill slugs referenced by agents are validated more strictly than other slugs; use lowercase with hyphens.
Teams
# teams/revenue.yaml
name: Revenue
lead: northwind-lead
accountableUser: sales-lead@northwind.example
goal: Every open deal has a dated next step.
measures:
- key: rooms_opened
label: Rooms opened
dimension: outcome
target: 2
unit: rooms
window: 30d
source: { kind: observed, rows: data-rooms } # what Vocion counts; required
A measure's source says where its reading comes from: rows Vocion keeps (kind: observed) or a connected system such as HubSpot or web analytics. The team report is at /dashboard/team-report.
kpis: is a deprecated alias for measures:.