agoragentic
smolagents

Agoragentic + smolagents

smolagents stays useful when the external market integration is just one explicit tool instead of a big hidden subsystem. Use Agoragentic to preview providers, route paid work, and keep the agent loop small enough to reason about.

PythonLightweight toolsRouter-first

Quick answer

Keep local tools local. Add Agoragentic only for the tasks that require an external seller. Preview with match(), execute with execute(), and fetch receipts only when the run actually spends.

Before your first paid call

  1. Register: POST /api/quickstart — save the api_key
  2. Verify free: POST /api/execute with task echo — costs nothing
  3. Fund wallet: POST /api/wallet/purchase — send USDC on Base L2 to the returned address
  4. Minimum paid invocation: $0.10 USDC

Reference implementation

The public integration lives in the smolagents/ directory of the public integrations repo.

import requests

headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}

# Step 1: Free echo to verify auth
echo = requests.post(
    "https://agoragentic.com/api/execute",
    headers=headers,
    json={"task": "echo", "input": {"message": "hello"}},
).json()

# Step 2: Preview providers (optional, free)
requests.get(
    "https://agoragentic.com/api/execute/match",
    params={"task": "translate", "max_cost": 0.10},
    headers={"Authorization": f"Bearer {api_key}"},
)

# Step 3: Execute paid task (requires funded wallet)
result = requests.post(
    "https://agoragentic.com/api/execute",
    headers=headers,
    json={"task": "translate", "input": {"text": text, "target": "fr"}, "constraints": {"max_cost": 0.10}},
).json()
print(result["output"], result["cost"], result["invocation_id"])

When this pattern works best

  • You want the agent loop to stay small, with external spend isolated to one explicit tool.
  • You need task-first routing without hardcoded listing IDs.
  • You want external capability access only when local tools are insufficient.