Chorus
Chorus is Punk's governed intelligence route for harder research, coding, analysis, policy, creative, operational, and technical work.
Call it with one public model id:
{ "model": "punk/chorus" }
Punk keeps the caller's normal wire format and privately coordinates routing, source evidence, verification, policy, cost controls, and receipts behind the gateway.
When To Use It
Use Chorus when a request needs more than a single straightforward model call:
- source-backed research or due diligence;
- long-context answer generation;
- coding, review, or debugging work that benefits from verification;
- policy, security, legal, finance, or operations analysis;
- high-value decisions where receipts and audit matter;
- evaluation or shadow traffic before adopting an optimized route.
Use a normal provider model when the work is simple, low-risk, latency-sensitive, or already handled by cache/artifact routes.
Quick Start
Use either supported gateway wire.
| Wire | Endpoint | Response shape |
|---|---|---|
| OpenAI-style chat | POST /v1/chat/completions | OpenAI chat completion |
| Anthropic-style messages | POST /v1/messages | Anthropic message |
Example:
{
"model": "punk/chorus",
"messages": [
{ "role": "user", "content": "Compare these options and cite the evidence behind the recommendation." }
],
"budget_limit_usd": 0.25,
"latency_mode": "balanced",
"quality_mode": "maximum_quality",
"receipt_mode": "full",
"circuit_mode": "learn",
"chorus": {
"requestId": "req_123",
"workflowId": "wf_support",
"labels": ["receipt-required"]
}
}
The response includes the normal Punk headers:
| Header | Meaning |
|---|---|
x-punk-run-id | Run id for trace, feedback, receipt, and evidence lookup. |
x-punk-route | Selected route. Chorus runs report a Chorus route. |
Request Controls
Chorus has one model id. Different operating modes are selected with request fields:
| Field | Values | Purpose |
|---|---|---|
budget_limit_usd | number | Per-request cost ceiling. |
latency_mode | fast, balanced, deep, maximum_quality | How much orchestration depth Chorus may spend. |
quality_mode | economy, balanced, frontier_optional, maximum_quality | Quality and escalation posture. |
policy_profile | string | Customer policy profile or governance lane. |
receipt_mode | off, summary, full | How much receipt material to retain for lookup. |
circuit_mode | off, reuse, learn | Whether successful routes may reuse or teach circuits. |
shadow_mode | boolean | Record evaluation data without treating Chorus as the production decision. |
audit_level | minimal, standard, full | Audit depth for traces and receipts. |
sota_mix | boolean | Enable the maximum-quality SOTA mix preset even when another field would not imply it. |
research_mode | off, som, deep | Whether research-heavy tasks should gather source evidence. |
research_max_queries / research_max_sources | numbers | Bounds for source-gathering work. |
research_context_chars | number | Context budget per fetched source. |
live_panel_models | array or comma-separated string | Optional candidate panel models run before the final answer. |
live_synthesis_model | string | Optional final-answer model from the configured provider registry. |
live_synthesis_required | boolean | Fail clearly if the requested final-answer path is unavailable. |
live_synthesis_max_tokens | number | Output-token budget for the final answer. |
chorus_agent_model | string | Optional delegate model for Anthropic tool-declaring agent steps, including Claude Code launched through Punk. |
answer_model / answer_max_tokens | aliases | Compatibility aliases for final-answer controls. |
local_only | boolean | Restrict eligible solver supply to local/offline paths. |
allowed_model_classes | array | Optional allowlist such as commercial, frontier, open_weight, or local. |
blocked_providers | array | Optional provider denylist for the request. |
chorus | object | Customer metadata preserved in receipts and evidence packets. |
Typical presets:
| Goal | Controls |
|---|---|
| Fast | latency_mode: "fast", optional quality_mode: "economy". |
| Balanced | latency_mode: "balanced", quality_mode: "balanced". |
| Deep reasoning | latency_mode: "deep", quality_mode: "frontier_optional". |
| Source-backed research | research_mode: "som", receipt_mode: "full". |
| Maximum quality | latency_mode: "maximum_quality", quality_mode: "maximum_quality"; uses configured SOTA mix defaults when available, or set live_panel_models and live_synthesis_model explicitly. |
| Private/local | local_only: true, optional allowed_model_classes. |
| Shadow evaluation | shadow_mode: true, circuit_mode: "learn". |
Evidence And Receipts
Every served Chorus run records a structured evidence trail in the Punk trace:
| Trace event | Purpose |
|---|---|
chorus.contract | Request classification, budget, policy, output, and evidence requirements. |
chorus.claim_graph | Claim-level work units and dependencies. |
chorus.route_selected | Selected and rejected solver paths. |
chorus.verifier | Grounding, schema, contradiction, math, policy, or license checks. |
chorus.research_pack | Source cards, evidence gaps, and retrieval errors when research mode is enabled. |
chorus.live_panel | Candidate panel models, token/cost/latency totals, and candidate hashes when a panel is used. |
chorus.live_synthesis | Final-answer provider/model, token, cost, and latency metadata when used. |
chorus.agent_delegate | Agent-step delegate model, provider, key source, wire, and tool count for tool-declaring Anthropic requests. |
chorus.tool_plan | Tool calls returned by the agent-step delegate before they are serialized back to the client. |
chorus.ledger | Accepted evidence, rejected claims, unresolved claims, costs, latency, and confidence. |
chorus.receipt | Exportable proof object linked to the final answer hash. |
Retrieve receipt material through:
| Method | Path | Purpose |
|---|---|---|
GET | /api/v1/receipts/:runId | Direct receipt lookup for a run. |
GET | /api/v1/runs/:runId/receipt | Run-scoped receipt lookup. |
GET | /api/v1/runs/:runId/evidence-packet | Full evidence packet with Chorus material when present. |
Receipts expose the audit objects customers need. They do not expose private scoring weights, routing formulas, internal prompts, or solver heuristics.
Agent-Step Mode
When model: "punk/chorus" is called on the Anthropic wire with declared tools, Punk runs a single delegated agent step instead of returning a normal text answer. The delegate receives the same normalized request with stream: false; if it returns tool calls, Punk serializes them back as Anthropic tool_use blocks and records the tool plan in the run trace.
Delegate selection order:
- Request field or header such as
chorus_agent_model,punk_chorus_agent_model, orx-punk-chorus-agent-model. - Tenant setting
chorus_agent_model. - Environment variable
PUNK_CHORUS_AGENT_MODEL. - Punk's fallback delegate model, currently
claude-sonnet-4-6.
This lets tool-declaring Anthropic-compatible agents keep their native tool loop while Punk still owns routing, policy, trace, and receipt behavior.
Research Mode
Research mode is separate from quality mode because not every hard request needs web evidence.
When research_mode is som or deep, Chorus can gather source evidence, turn pages into compact source cards, check coverage gaps, and feed accepted evidence into the final answer and receipts.
Use live_synthesis_required: true for strict production gates where a mock/local fallback would be misleading.
How It Differs From Fusion
Fusion-style panels usually send the whole prompt to several models, compare full answers, and produce a final response.
Chorus is designed to be a governed superset of that pattern. Maximum-quality Chorus can run a live candidate panel and final-answer route, but the panel is only one lane inside a larger execution job:
- Compile the request into a reasoning contract.
- Build claim-level work units.
- Gather source, tool, cache, or tenant evidence when needed.
- Route unresolved work to qualified models, tools, artifacts, or verifiers.
- Verify evidence coverage before answering.
- Save useful routes as reusable circuits and failed routes as negative knowledge.
The product goal is to beat Fusion-style whole-answer ensembling on the combined mix of answer quality, speed, cost, reliability, evidence quality, governance, and auditability. The economic goal is to buy only the next useful unit of intelligence instead of paying every candidate model to solve the whole problem.
Configured provider families are documented in Configuration. The SDK helper is documented in SDK.
Safety And Governance
Chorus inherits Punk's enterprise controls:
- tenant isolation for runs, traces, receipts, and ledgers;
- redaction before stored traces and exports;
- policy checks before model/tool selection;
- configurable budget and latency ceilings;
- no side effects from evidence-review work;
- caveat, fallback, approval, or block for unsupported high-risk claims;
- opt-in, shape-level learning only across tenants.