Agent-as-Config lets you define a complete agent team in JSON and deploy it via POST /api/v1/teams. The returned team_id is usable immediately in POST /api/v1/runs. Your team definition lives in code — it can be versioned, tested, and deployed in CI/CD like any other configuration.
Step 1: Write your manifest
A manifest is a JSON object with a name and an agents array. Each agent needs at minimum a role. Optionally add system_prompt, custom_instructions, and tools. The coordinator is always added automatically — do not include it.
{
"name": "Code Review Team",
"description": "Security + quality review pipeline",
"agents": [
{
"role": "reviewer",
"system_prompt": "You are an expert code reviewer. Check for bugs, performance, and readability.",
"tools": [
{
"tool_type": "web_search",
"name": "Search language docs",
"config": { "num_results": 5 }
}
]
},
{
"role": "security",
"system_prompt": "You are a security engineer. Review for OWASP Top 10 vulnerabilities."
}
]
}Step 2: Deploy via API
curl -X POST https://forge.shanova.se/api/v1/teams \
-H "Authorization: Bearer frg_…" \
-H "Content-Type: application/json" \
-d @manifest.json
# Response
{
"id": "e3a4f…",
"name": "Code Review Team",
"agent_count": 2,
"created_at": "2026-06-09T10:00:00Z",
"url": "https://forge.shanova.se/teams/e3a4f…"
}Step 3: Use the team id in a run
curl -X POST https://forge.shanova.se/api/v1/runs \
-H "Authorization: Bearer frg_…" \
-d '{ "team_id": "e3a4f…", "title": "Review PR #42", "brief": "…" }'Step 4: Integrate with CI/CD
Store the manifest in your repo under e.g. forge/review-team.json. In your deployment pipeline, callPOST /api/v1/teams to (re-)deploy the team and write the returned id to an environment variable or config file. Use DELETE /api/v1/teams/{id} to clean up old deployments.