Lightweight contracts for agent task delegation.
Agent Contracts is a narrow specification and validation layer for delegated agent work. It helps teams describe what an agent is being asked to do, what inputs and outputs matter, which execution constraints apply, and when approval or handoff rules should shape the work.
This repository is intentionally not a workflow engine, orchestration framework, or full multi-agent platform. The goal of the alpha is smaller and sharper: make delegated work more explicit, more portable, and easier to validate.
Agent handoffs are often underspecified. A planner asks an executor to do work, but the contract between them is implied rather than declared. That usually means:
- required inputs are missing
- expected outputs are vague
- risk handling is inconsistent
- approval posture is unclear
- delegation rules are implicit
- downstream review is harder than it should be
Agent Contracts gives that handoff a lightweight, portable shape.
The current alpha includes:
- parsing of
contract.yaml - explicit JSON Schema validation
- minimum structural validation
- heuristic detection of weak delegation signals
- a local CLI with
validate,lint,inspect,explain,init, andformat - JSON output mode for local tooling and CI
- an initial JSON Schema
- example contracts
- public-facing docs for vision, architecture, and roadmap
npm install
npm run build
node dist/cli.js validate examples/research-contract
node dist/cli.js lint examples/research-contract
node dist/cli.js inspect examples/change-plan-contract
node dist/cli.js explain examples/extraction-contract
node dist/cli.js init ./contracts/new-research --template research
node dist/cli.js format ./contracts/new-research --check
npm testDuring development, you can also run:
npm run dev -- validate examples/research-contractChecks schema compliance plus minimum validation posture. It fails when the schema is invalid or when high-severity issues are present.
agent-contracts validate ./examples/research-contract
agent-contracts validate ./examples/research-contract --jsonReports every contract finding, including lower-severity authoring gaps. This is the stricter quality command and is useful in CI or review workflows.
agent-contracts lint ./examples/research-contract
agent-contracts lint ./examples/research-contract --jsonExample output:
Contract: Web Research Contract (research-web-v1)
Valid: yes
Schema valid: yes
Lint clean: yes
Signal strength: strong
Issue counts: 0 high, 0 medium, 0 low
No validation issues detected.
Prints a structured view of the contract for humans reviewing the file.
agent-contracts inspect ./examples/change-plan-contract
agent-contracts inspect ./examples/change-plan-contract --jsonTurns the contract into a short human-oriented explanation, including key gaps if validation found any.
agent-contracts explain ./examples/extraction-contract
agent-contracts explain ./examples/extraction-contract --jsonCreates a new contract scaffold from a small starter template.
agent-contracts init ./contracts/new-research --template research
agent-contracts init ./contracts/new-generic --template generic --jsonNormalizes contract.yaml into a stable canonical order. Use --check to fail CI when formatting changes would be required.
agent-contracts format ./contracts/new-research
agent-contracts format ./contracts/new-research --check
agent-contracts format ./contracts/new-research --json--json emits a versioned envelope with the stable shape:
{
"format": "agent-contracts-cli",
"formatVersion": 1,
"command": "validate",
"result": {}
}The alpha contract model focuses on eleven concerns:
- identity
- intent
- inputs
- outputs
- constraints
- risk
- escalation
- approvals
- execution
- handoff
- provenance
Example:
id: research-web-v1
name: Web Research Contract
version: 0.1.0
intent:
type: research
description: Gather cited information on a defined topic and return a concise synthesis.
inputs:
required:
- research_query
outputs:
expected:
- structured_summary
- citations
- uncertainty_notes
constraints:
max_latency_ms: 12000
max_cost_usd: 0.25
allow_external_web: true
risk:
level: medium
failure_mode: escalate_if_low_confidence
escalation:
on_blocker: escalate_to_requester
contact_role: requester
approvals:
required: false
execution:
retries: 1
timeout_ms: 15000
handoff:
delegation_allowed: true
allowed_delegate_types:
- researcher
- analyst
provenance:
source: human
requested_by: requesterThe schema lives at schemas/contract.schema.json.
The first validator is intentionally simple. It combines:
- explicit JSON Schema validation
- minimum required structure checks
- heuristic issue detection for weak delegation signals
- rule-based validation that is easy to extend without introducing a policy engine yet
- readable CLI output for human review
It does not yet implement advanced policy packs, trace validation, or runtime integration logic.
src/
cli.ts
explain.ts
format.ts
init.ts
inspect.ts
parser.ts
schema-validator.ts
types.ts
validation-rules.ts
validator.ts
test/
*.test.ts
examples/
research-contract/
extraction-contract/
change-plan-contract/
schemas/
contract.schema.json
docs/
vision.md
architecture.md
contract-spec.md
roadmap.md
Agent Contracts is not trying to be:
- a runtime for coordinating agents
- a database-backed control plane
- a dashboard-heavy product
- a generic multi-agent framework
- a full approval workflow engine
Those may connect to Agent Contracts later. They are not the purpose of this alpha.
docs/vision.mddocs/architecture.mddocs/contract-spec.mddocs/roadmap.mdCONTRIBUTING.mdCODE_OF_CONDUCT.mdSECURITY.mdCHANGELOG.mddocs/release-checklist.md
MIT