Capability-Based Routing v1.0.0
1. Overview
Section titled “1. Overview”Capability-Based Routing decouples the Intent of a scenario (what capabilities it needs) from the Infrastructure (where those services are hosted).
2. The Abstraction Principle
Section titled “2. The Abstraction Principle”Scenarios SHOULD NOT define hardcoded endpoints. Instead, they define required capabilities:
{ "aes_version": 1.4, "metadata": { "id": "loan_approval_01" }, "capabilities": ["fintech_api"]}3. Resolution Logic
Section titled “3. Resolution Logic”The Core (Harness) resolves capabilities using a tiered strategy:
- CLI Override:
--agentarguments always win. - Exact Match: The first capability in the scenario’s list that matches an entry in
routing.json. - Default: The
defaultentry in the routing manifest. - Harness Default: Global
AGENT_API_URLenvironment variables.
4. Routing Manifest
Section titled “4. Routing Manifest”The manifest is stored in .aes/config/routing/manifest.json. See Routing JSON Schema.
Example:
Section titled “Example:”{ "mappings": { "fintech_api": { "protocol": "sse", "endpoint": "http://localhost:8000/stream" }, "default": { "protocol": "http", "endpoint": "http://chat-model:5000" } }}