Why not just use JSON?
JSON is an excellent general-purpose data format. AACP and JSON solve different problems and are designed to work together, not compete.
Side by side
| JSON | AACP |
|---|---|
| General-purpose format | Coordination-specific format |
| Flexible structure | Constrained grammar |
| Schema optional | Protocol-defined structure |
| Generic semantics | Known task vocabulary (12 verbs) |
| Application-defined meaning | Workflow-defined meaning |
| Data interchange | Agent intent encoding |
| Any use case | Multi-agent coordination |
The same instruction, two representations
{
"task": "FETCH",
"domain": "HR",
"return_agent": "HR-Agent",
"priority": 1,
"aacp_version": "1.4",
"resource": "emp_salary",
"period": "2024-08",
"filter": "status=active",
"format": "json"
}FETCH|HR|return:HR-Agent|p:1|aacp:1.4|res:emp_salary|period:2024-08|filter:status=active|fmt:json
Both contain the same information. The difference is that AACP defines a constrained coordination grammar, a shared task vocabulary, and workflow conventions designed specifically for multi-agent systems. The pipe-delimited canonical form tokenises more efficiently than equivalent JSON — approximately 23% fewer tokens for coordination messages measured from live API usage. JSON representation of AACP packets is also valid and may be preferred for debugging or storage.
JSON is the right choice for
- ✓API request and response payloads
- ✓Configuration files
- ✓Data storage and retrieval
- ✓Structured application data
- ✓Inter-service communication
AACP is complementary, not competitive. AACP packets can be transmitted as JSON, stored in databases as JSON, and logged as JSON.
What AACP adds on top of JSON
TASK and DOM fields carry agent routing intent that generic JSON keys do not.
12 valid TASK values. 7 valid domain values. Every compliant agent understands them without per-system mapping.
Every packet is validated against the v1.4 schema before transmission. Invalid packets are rejected. JSON has no equivalent enforcement layer.
Rule-based encoders produce valid packets at zero LLM cost. 241 community rules available. JSON has no equivalent workflow layer.
Same workflow, same encoder, same packet every time. JSON structure is application-defined and varies between implementations.
A typed AACP packet is a self-describing coordination record. A JSON payload requires schema documentation to interpret.
AACP can be represented as JSON, transmitted through A2A, carried inside MCP payloads, and stored in any database. Its purpose is not to replace existing standards, but to provide a shared coordination language for agent workflows.