Your agent called a tool 30 minutes ago and never got a response. AXME adds timeout, retry, and human escalation to any agent action.
AI agents get stuck. External APIs go down. Long-running tasks hang. Without timeout and escalation, your agent waits forever - burning compute and blocking the pipeline. AXME adds configurable timeouts with automatic escalation chains.
Alpha - Built with AXME (AXP Intent Protocol). cloud.axme.ai - hello@axme.ai
Agent calls external API:
09:00 - POST /api/inventory/sync
09:01 - waiting...
09:05 - still waiting...
09:30 - still waiting... (API is down)
10:00 - still waiting... (nobody knows)
11:00 - someone finally notices the agent is stuck
What should have happened:
09:00 - POST /api/inventory/sync
09:03 - TIMEOUT: 3 min deadline exceeded
09:03 - RETRY: attempt 2 of 3
09:06 - RETRY: attempt 3 of 3
09:06 - ESCALATE: notify on-call engineer
09:09 - REMIND: "still waiting for engineer"
09:15 - Engineer resolves the issue
intent_id = client.send_intent({
"intent_type": "intent.ops.stuck_task.v1",
"to_agent": "agent://myorg/production/task-agent",
"payload": {"operation": "sync_inventory", "error": "connection_timeout"},
})
# AXME handles:
# - Retry (up to max_delivery_attempts)
# - Timeout (step_deadline_seconds)
# - Escalation to human (remind_after_seconds)
# - Full audit trail
result = client.wait_for(intent_id)pip install axme
export AXME_API_KEY="your-key" # Get one: axme loginfrom axme import AxmeClient, AxmeClientConfig
import os
client = AxmeClient(AxmeClientConfig(api_key=os.environ["AXME_API_KEY"]))
intent_id = client.send_intent({
"intent_type": "intent.ops.stuck_task.v1",
"to_agent": "agent://myorg/production/task-agent",
"payload": {
"task_id": "OPS-2026-0712",
"operation": "sync_inventory",
"target_api": "https://api.vendor.com/v2/inventory",
"error": "connection_timeout",
"retry_count": 3,
},
})
print(f"Task submitted: {intent_id}")
result = client.wait_for(intent_id)
print(f"Resolution: {result['status']}")async def run_with_timeout(task, timeout=180):
try:
result = await asyncio.wait_for(task(), timeout=timeout)
except asyncio.TimeoutError:
for attempt in range(3):
try:
result = await asyncio.wait_for(task(), timeout=timeout)
break
except asyncio.TimeoutError:
continue
else:
# All retries failed - escalate
send_pagerduty_alert(task.id, "All retries exhausted")
send_slack_message("#oncall", f"Task {task.id} stuck")
# Now poll for human resolution...
while True:
status = db.get(f"escalation:{task.id}")
if status == "resolved":
break
await asyncio.sleep(10)
return resultintent_id = client.send_intent({
"intent_type": "intent.ops.stuck_task.v1",
"to_agent": "agent://myorg/production/task-agent",
"payload": {"operation": "sync_inventory", "error": "connection_timeout"},
})
result = client.wait_for(intent_id)Timeout, retry, escalation, reminders - all configured in the scenario, not in your code.
+-----------+ send_intent() +----------------+ deliver +-----------+
| | ---------------> | | ---------> | |
| Initiator | | AXME Cloud | | Agent |
| | <- wait_for() -- | (platform) | <- resume | |
| | | | | diagnoses |
| | | agent done | | problem |
| | | v | +-----------+
| | | WAITING for |
| | | human action | resolve +-----------+
| | | | <--------- | |
| | | - remind 3m | | On-Call |
| | <- COMPLETED --- | - timeout 30m | | Engineer |
+-----------+ +----------------+ +-----------+
curl -fsSL https://raw.githubusercontent.com/AxmeAI/axme-cli/main/install.sh | sh
axme login
pip install axmeaxme scenarios apply scenario.jsoncat ~/.config/axme/scenario-agents.json | grep -A2 timeout-agent-demo
AXME_API_KEY=<agent-key> python agent.pyaxme tasks approve <intent_id>axme intents get <intent_id>
# lifecycle_status: COMPLETED- AXME - project overview
- Async Human Approval for AI Agents - async approval with reminders
- AI Agent Checkpoint and Resume - crash recovery
- AXME Examples - 20+ runnable examples
Built with AXME (AXP Intent Protocol).