Stop losing context when work passes between AI agents. Define, validate, and transfer agent state with machine-readable handoff documents.
Every time an agent finishes or hits a limit, its context disappears. The next agent starts from scratch.
New agents re-do research and decisions the previous agent already made, wasting time and resources.
Inconsistent decisions, conflicting approaches, and lost institutional knowledge across agent boundaries.
A machine-readable standard for transferring agent state, decisions, and context.
JSON-based handoff documents capture task state, decisions, resources, and next steps in a consistent format.
Built-in validation ensures handoffs are complete and well-formed before transmission.
Search and filter handoffs by agent, status, date, or keywords. Find what you need instantly.
Works with CrewAI, AutoGen, LangGraph, or any custom agent framework.
Drop-in SDK with TypeScript support: createHandoff(), validateHandoff(), serializeHandoff().
Combine multiple handoffs from parallel agents into a unified context for the next agent.
A complete example of a handoff document
{
"id": "handoff-abc123",
"version": "1.0.0",
"sourceAgent": {
"name": "research-agent",
"type": "claude",
"capabilities": ["web-search", "data-analysis"]
},
"targetAgent": {
"name": "writer-agent",
"type": "gpt"
},
"taskState": {
"status": "in_progress",
"progress": 65,
"summary": "Completed market research, found 3 key competitors",
"blockers": []
},
"decisions": [
{
"description": "Focused on B2B SaaS market segment",
"rationale": "Higher LTV, more predictable revenue",
"timestamp": "2026-05-02T10:30:00Z"
}
],
"resources": [
{
"name": "market-research.json",
"location": "s3://bucket/research.json",
"type": "file",
"description": "Competitor analysis data"
}
],
"nextSteps": [
{
"description": "Write introduction section",
"priority": 1,
"status": "pending"
},
{
"description": "Create comparison table",
"priority": 2,
"dependencies": ["step-1"]
}
],
"constraints": {
"style": "Professional, data-driven",
"tech": ["React", "Node.js"],
"deadline": "2026-05-05T00:00:00Z"
},
"metadata": {
"createdAt": "2026-05-02T11:00:00Z",
"tags": ["market-research", "competitor-analysis"]
}
}
Drop in the SDK and start creating handoffs in minutes
import { createHandoff, validateHandoff } from '@handoff/protocol';
// Create a handoff
const handoff = createHandoff({
id: 'handoff-123',
sourceAgent: { name: 'researcher', type: 'claude' },
targetAgent: { name: 'writer', type: 'gpt' },
taskState: { status: 'completed', progress: 100 },
nextSteps: [{ description: 'Write conclusion', priority: 1 }]
});
// Validate before sending
const { valid, errors } = validateHandoff(handoff);
if (!valid) throw new Error(errors[0].message);
// Send to receiving agent
await agent.receiveHandoff(handoff);
npm install @handoff/protocol
Start free, scale as you grow
Join the waitlist and be among the first to access the Handoff Protocol.