Skip to content

Capability-Based Routing v1.0.0

Capability-Based Routing decouples the Intent of a scenario (what capabilities it needs) from the Infrastructure (where those services are hosted).

Scenarios SHOULD NOT define hardcoded endpoints. Instead, they define required capabilities:

{
"aes_version": 1.4,
"metadata": {
"id": "loan_approval_01"
},
"capabilities": ["fintech_api"]
}

The Core (Harness) resolves capabilities using a tiered strategy:

  1. CLI Override: --agent arguments always win.
  2. Exact Match: The first capability in the scenario’s list that matches an entry in routing.json.
  3. Default: The default entry in the routing manifest.
  4. Harness Default: Global AGENT_API_URL environment variables.

The manifest is stored in .aes/config/routing/manifest.json. See Routing JSON Schema.

{
"mappings": {
"fintech_api": {
"protocol": "sse",
"endpoint": "http://localhost:8000/stream"
},
"default": {
"protocol": "http",
"endpoint": "http://chat-model:5000"
}
}
}