AOI
Agent-to-Agent Intelligence Service
AOI gives autonomous agents access to real-world intelligence through MCP and secure APIs.
Dynamic pricing. Quote-first execution. Real satellite-derived data. Prepaid credits required for execution.
38 Production Capabilities
Climate risk, carbon, methane, vegetation, water, flood, wildfire, air quality, deforestation, and more — all with real satellite-derived data and scientific provenance.
How It Works
Quote-first commercial flow — the agent controls every step
Discover
Browse sellable capabilities via MCP tools/list
Request Quote
Submit capability + input_data → receive a binding price
Review Price
Agent decides whether to proceed — no obligation
Execute
Accept the quote → AOI executes with real data
Receive Intelligence
Result + provenance + transaction record
Dynamic Pricing
AOI calculates the actual delivery cost from the capability cost profile, applies the predefined AOI commercial profit policy, and returns the final commercial price. Internal cost, margin, and profit remain private — the agent sees only the final price.
Connect an AI Agent
MCP is the preferred integration path
MCP
RecommendedNo human dashboard required. An AI agent interacts directly with AOI through MCP.
tools/list→ discover capabilitiesrequest_quote→ get a binding priceexecute_quote→ execute with the quoteMCP — tools/list
curl -X POST https://carbonaa.org/functions/aoiMcpServer \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
// Returns discover_capabilities, request_quote,
// execute_quote, and quote_<capability_id> tools.Agent Registration
Self-service — no admin intervention, no credits required to register
Register
curl -X POST https://carbonaa.org/functions/aoiAgentOnboarding \
-H "Content-Type: application/json" \
-d '{
"action": "register",
"agent_name": "My Environmental Agent",
"contact_email": "dev@example.com",
"organization": "Example Corp",
"declared_purpose": "Energy infrastructure risk assessment"
}'
// Response:
{
"status": "ok",
"agent_id": "aoi_extagent_xxxx",
"api_key": "aoi_live_xxxx_xxxx_xxxx_xxxx",
"commercial_model": "quote_first",
"granted_capabilities": ["energy_infrastructure_risk", ...],
"next_steps": [
"1. Save your API key",
"2. Discover: action=catalog",
"3. Request quote: action=quote",
"4. Review the quoted price",
"5. Execute: action=execute"
]
}Request a Quote
AOI dynamically evaluates the commercial price and returns it for your review
REST API — Request Quote
curl -X POST https://carbonaa.org/functions/aoiAgentServiceGateway \
-H "Content-Type: application/json" \
-H "X-API-Key: aoi_live_xxxx" \
-d '{
"action": "quote",
"capability_id": "energy_infrastructure_risk",
"input_data": {
"target": "European power grid",
"location": "Europe"
},
"idempotency_key": "my-unique-request-001"
}'
// Response:
{
"status": "quote",
"quote_id": "aoi_quote_xxxx",
"capability_id": "energy_infrastructure_risk",
"capability_name": "Energy Infrastructure Climate Risk",
"price": 1250,
"currency": "USD",
"valid_until": "2026-09-19T22:00:00Z",
"request_hash": "sha256:xxxx",
"message": "Review the quoted price. To execute, call action=execute with this quote_id."
}
// The agent sees ONLY the final price.
// Internal delivery cost, margin, and profit are private — never exposed.MCP equivalent
// MCP tools/call
{
"jsonrpc": "2.0", "id": 2,
"method": "tools/call",
"params": {
"name": "request_quote",
"arguments": {
"capability_id": "energy_infrastructure_risk",
"input_data": { "target": "European power grid", "location": "Europe" }
}
}
}Execute with the Quote
Accept the quote — AOI validates it, executes with real data, and returns intelligence
REST API — Execute
curl -X POST https://carbonaa.org/functions/aoiAgentServiceGateway \
-H "Content-Type: application/json" \
-H "X-API-Key: aoi_live_xxxx" \
-d '{
"action": "execute",
"quote_id": "aoi_quote_xxxx",
"input_data": {
"target": "European power grid",
"location": "Europe"
}
}'
// Response:
{
"status": "completed",
"execution_id": "aoi_exec_xxxx",
"transaction_id": "aoi_txn_xxxx",
"quote_id": "aoi_quote_xxxx",
"capability_id": "energy_infrastructure_risk",
"capability_name": "Energy Infrastructure Climate Risk",
"price": 1250,
"currency": "USD",
"connection_status": "resolved",
"real_data_used": true,
"result": {
"result_summary": "...",
"risk_score": 72,
"confidence": 82,
"findings": [...],
"recommendations": [...],
"evidence_refs": [...]
},
"provenance": [...],
"confidence": 82
}
// No credits. No credit balance. No credits_remaining.
// Just the final price, the result, and the provenance.Real Data & Provenance
Production capabilities return provenance metadata — never fabricated data
Capabilities that depend on external data return provenance metadata. AOI retrieves real signals from approved data sources (SatClimate) and reasons over them. Chain-of-thought is never exposed. Internal cost is never exposed.
Provenance Example
{
"provider": "SatClimate",
"source_type": "satellite-derived",
"signal_ids": ["sig_001", "sig_002", "sig_003"],
"signal_labels": ["thermal_anomaly", "power_generation", "grid_activity"],
"values": [0.84, 0.91, 0.76],
"units": ["index", "index", "index"],
"timestamps": ["2026-09-19T06:00:00Z", ...],
"freshness": "T+4h",
"confidence": 82
}Security, Rate Limits & Error Codes
Production-grade controls
Rate Limiting
- 30 authenticated requests/min per agent
- Technical protection — not billing
- Checked before pricing or execution
Idempotency
- Quote: same key + same request = same quote
- Execution: same key = same result, no duplicate charge
- Different request with same key = 409 conflict
Quote Validity
- Quotes valid for 15 minutes
- Expired quotes return 410 Gone
- Input data must match the quoted request
| Code | Meaning | Action |
|---|---|---|
| 400 | Invalid request / missing fields | Check request format |
| 401 | Invalid or missing API key | Register or verify key |
| 403 | Permission denied / capability not sellable | Check granted capabilities |
| 404 | Capability or quote not found | Verify IDs |
| 409 | Idempotency conflict / quote request mismatch | Use a new key or request a new quote |
| 410 | Quote expired | Request a new quote |
| 429 | Rate limit exceeded | Slow down (30/min) |
| 503 | Data source unavailable | Retry later |
MCP vs REST API
Use whichever fits your stack
MCP
Recommended- • Designed for AI agents
- • Capability discovery via tools/list
- • Quote via request_quote tool
- • Execution via execute_quote tool
- • JSON-RPC 2.0 over HTTPS
REST API
- • Direct HTTP integration
- • action=quote → binding price
- • action=execute → intelligence result
- • action=catalog → discover capabilities
- • Same authentication & security