docs / overview
AgentEazy Documentation

From repo to agent
in one command.

AgentEazy turns any Python function into a discoverable, callable, billable AI skill — or combine multiple skills into use-case agents that earn money. No rewrite. No SDK.

Live
v0.2.7
Python · Open Source
119 skills live

The Docker of the agent web

Right now, if an AI system wants to use 5 different tools, it needs to read 5 different API docs, write 5 different parsers, and handle 5 different auth flows. AgentEazy eliminates this entirely.

Drop an agent.json into any repo (or let us auto-generate one), run one command, and your code becomes a live agent that any other agent on earth can find, call, and eventually pay — using the same 10-word vocabulary regardless of what language your code is written in.

Core Analogy
What Docker did for deployment, AgentEazy does for the agent web. What package.json did for npm packages, agent.json does for agents. We're turning GitHub into one giant, unified super-computer.

What AgentEazy is not

AgentEazy is infrastructure, not an agent builder. It doesn't build agents, run agents autonomously, or provide an orchestration framework. It wraps what you already built and makes it interoperable.

Deploy your first agent

Get any Python GitHub repo running as a live, callable agent in under 5 minutes.

1. Install

pip install agenteazy
BASH

2. Check your setup

agenteazy doctor
BASH
What this checks
Python version, Git installation, registry and gateway connectivity. Tells you if anything needs fixing before you deploy.

3. Create your account

agenteazy signup your-github-username --email you@example.com
BASH
Free
Signup is free — gives you an API key and 50 starter credits. No credit card required.

4. Deploy a repo

# Deploy any Python repo as a live agent
agenteazy deploy github.com/you/your-repo --name my-skill --price 2
BASH

That's it. One command wraps, deploys, and registers your agent.

# Or if you want to host it yourself:
agenteazy deploy github.com/you/your-repo --self-host
BASH

5. Call your agent

curl -s -X POST https://simondusable--agenteazy-gateway-serve.modal.run/agent/your-repo/ \
  -H "Content-Type: application/json" \
  -d '{
    "verb": "DO",
    "payload": {
      "task": "your-task",
      "data": {"key": "value"}
    }
  }'
CURL
# Try it now — this is a real live agent:
curl -s -X POST https://simondusable--agenteazy-gateway-serve.modal.run/agent/zxcvbn-python/ \
  -H "Content-Type: application/json" \
  -d '{"verb":"DO","payload":{"data":{"password":"monkey123"}}}' | python3 -m json.tool
TRY IT NOW
Current Support
Python utilities with requirements.txt, pyproject.toml, or setup.py. Supports class-based APIs, src/ layouts, and repos needing environment variables. The CLI auto-detects your entry point using AST analysis — no manual configuration required in most cases.

Core pipeline

When you run agenteazy deploy, five things happen in sequence:

1
ANALYZE
Clone the repo, detect Python, parse the AST, find the best entry point function, scan for security warnings (dangerous imports like subprocess, eval).
2
WRAP
Auto-generate agent.json from repo analysis. Generate a FastAPI wrapper.py that exposes your entry function via AgentLang verbs.
3
UPLOAD
Push agent code to a shared volume at /agents/{name}/. The gateway loads code on demand — idle agents cost $0.
4
REGISTER
POST agent metadata to the registry with name, description, tags, and version. Now discoverable by any other agent via the FIND verb.
5
LIVE
Your agent is callable at gateway/agent/{name}/do. No gateway redeployment needed — it loads your code from the Volume at runtime.

Python SDK

Use the Python SDK to discover and call agents programmatically — no curl required.

from agenteazy import AgentEazy

client = AgentEazy()

# Discover agents
agents = client.find("password strength")

# Call agents
result = client.do("zxcvbn-python", {"password": "monkey123"})
# → {"score": 1, "feedback": {"warning": "This is a very common password."}}

result = client.do("langdetect", {"text": "Bonjour le monde"})
# → "fr"

result = client.do("dateparser", {"date_string": "tomorrow at 3pm"})
# → "2026-03-17T15:00:00"
PYTHON

Integrations

AgentEazy agents work as native tools in your existing AI workflows.

LangChain

pip install agenteazy[langchain]

from agenteazy.integrations.langchain import AgentEazyTool

tool = AgentEazyTool.from_agent("zxcvbn-python")
result = tool.invoke({"password": "test123"})
LANGCHAIN

CrewAI

pip install agenteazy[crewai]

from agenteazy.integrations.crewai import AgentEazyCrewTool

tool = AgentEazyCrewTool.from_agent("zxcvbn-python")
CREWAI

MCP (Claude Desktop / Cursor)

pip install agenteazy[mcp]
BASH

Add to your Claude Desktop config (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "agenteazy": {
      "command": "agenteazy",
      "args": ["mcp-server"]
    }
  }
}
JSON
Instant Access
All 119 agents in the registry become instantly available as tools in Claude Desktop, Cursor, or any MCP-compatible client.

How it's built

AgentEazy runs on serverless infrastructure. The key architectural decision: one gateway endpoint serves unlimited agents — enabling centralized logging, future middleware (TollBooth, AgentPass), and unlimited agents from a single deployment.

Serverless Infrastructure
1 ENDPOINT
Gateway
Routes all 10 AgentLang verbs
Context store & call logging
Loads agent code on demand
1 ENDPOINT
Registry
SQLite + persistent volume
Search & discover agents
Auto-register & heartbeat
loads code
auto-registers
Agents Volume
/agents/zxcvbn-python/
/agents/langdetect/
/agents/dateparser/
/agents/autopep8/ +14 more

Key technical decisions

Single gateway over per-agent endpoints

Enables unlimited agents from a single deployment. The gateway routes AgentLang verbs internally, enabling centralized logging and future middleware injection (TollBooth, AgentPass).

gateway.py is self-contained

The gateway is self-contained and stateless, making it easy to deploy on any serverless platform. All gateway logic — verb routing, context store, call logging — lives in a single file with no external package dependencies.

Shared volume for agent code

Agents upload to a shared volume. The gateway loads code on demand. Idle agents cost exactly $0. New agents don't require gateway redeployment.

AST-based function detection

Uses Python's ast module to safely parse repos without executing any code. Scores functions by name, arguments, return type, and docstring to suggest the best entry point.

SQLite registry with persistent storage

SQLite database with persistent storage ensures the registry survives container restarts. No external database dependency required.

Three types of agents

Every agent in the registry has a type that determines how it executes:

Skills agent_type: "skill"

Single-purpose tools. Stateless, fast, deterministic. Email validation, text analysis, data conversion. They run in milliseconds and return immediately. 85 live.

Agents agent_type: "agent"

Multi-step workflows that combine skills. A Lead Cleaner calls email-validate + phone-parse + pii-scrub in sequence. They run synchronously but orchestrate multiple sub-calls. 5 live.

Human operators agent_type: "human", execution_mode: "async"

Verified humans for edge cases AI can't solve. Called via the TRUST verb. Returns a checkpoint_id immediately — the human reviews asynchronously and the result is available via polling. 1 live (HumanAgent).

How they connect

A use-case Agent calls multiple Skills in sequence. When it hits an edge case, it calls a Human via TRUST.

Example: Lead Cleaner processing 5,000 leads
1
Lead Cleaner agent receives 5,000 raw leads
2
Calls email-validate skill → 5,000 emails checked
3
Calls phone-parse skill → 5,000 phones parsed
4
Calls pii-scrub skill → PII redacted
5
4,950 leads are clean → returned immediately
6
50 ambiguous leads → TRUST verb humanagent human
7
Human reviews each lead → approved/rejected with notes
8
Results flow back → all 5,000 leads complete
Skills handle volume. Agents orchestrate. Humans handle judgment.
Pricing note
Skills are free sub-calls when called from within an Agent. The Agent sets one price for the whole workflow. TRUST calls have their own budget in credits.

agent.json Specification v0.2.7

The agent.json file is the single source of truth for any agent. It declares what the agent does, how to call it, what verbs it speaks, and how to pay it. Think of it as package.json for the agent web.

Auto-generation
You don't need to write agent.json manually. Run agenteazy wrap <repo> and it generates a complete agent.json from your repo's code structure. See the full agent.json specification for all 12 fields.

Complete schema

{
  "name":        "sentiment-analyzer",
  "version":     "0.2.6",
  "description": "Analyzes text sentiment",
  "entry":       "analyze_sentiment",
  "language":    "python",
  "verbs":       ["ASK", "DO"],

  "tags":        ["nlp", "sentiment"],
  "author":      "your-name",
  "license":     "MIT",
  "repo":        "github.com/you/repo",
  "pricing": {
    "model":            "per_call",
    "credits_per_call": 10,
    "currency":         "CREDITS"
  },
  "auth": {
    "type":     "none",
    "required": false
  },
  "agent_type": "skill",
  "execution_mode": "sync"
}
agent.json

Field reference

FieldTypeRequiredDescription
namestringYesUnique agent identifier (lowercase, hyphens)
versionstringYesSemantic version
descriptionstringYesHuman-readable description (max 200 chars)
entrystringYesEntry function name — the function AgentEazy wraps
languagestringYesPrimary language (python, nodejs)
verbsstring[]YesSupported AgentLang verbs
tagsstring[]NoSearchable tags for registry discovery
authorstringNoAgent creator
licensestringNoLicense identifier
repostringNoSource repository URL
pricingobjectNoTollBooth pricing config
authobjectNoAgentPass authentication config
agent_typestringNoAgent classification: "skill" (single function), "agent" (multi-step workflow), or "human" (verified human operator). Default: "skill"
execution_modestringNo"sync" (returns result immediately) or "async" (returns checkpoint_id, poll for result). Default: "sync"

AgentLang: 10 Universal Verbs

Every agent speaks the same language. Instead of learning custom APIs, agents communicate through 10 standard verbs. Each verb maps to common operations — think of them as HTTP methods for the agent web.

DO LIVE
"Execute a task"
≈ POST — Run the agent's primary function
ASK LIVE
"Answer a question"
≈ GET — Query without side effects
FIND LIVE
"Discover agents"
≈ Search the registry by name, tag, or capability
PAY LIVE
"Transfer credits"
≈ Micropayment via TollBooth
SHARE LIVE
"Exchange context"
≈ Share state between agents
REPORT LIVE
"Return structured results"
≈ Audit trail and logging
STOP LIVE
"Cancel a subscription"
≈ Unsubscribe from WATCH
WATCH PLANNED
"Subscribe to events"
≈ Webhook registration via Pulse
TRUST LIVE
"Escalate to a human operator"
Async — returns a checkpoint_id immediately. Poll for result.
LEARN PLANNED
"Update knowledge"
≈ Vector DB integration

Universal envelope

Every verb uses the same POST envelope. The verb field determines routing. The payload carries verb-specific data.

POST /agent/{agent-name}/
{
  "verb":    "DO",
  "payload": {
    "task": "analyze",
    "data": { "text": "This product is amazing" }
  },
  "context_id": "optional-session-id",
  "auth": "optional-token"
}
AGENTLANG ENVELOPE

TRUST verb example

Escalate to a verified human operator via HumanAgent. Async — returns immediately with a checkpoint ID to poll.

# Send a task to a human operator
POST /agent/humanagent/
{
  "verb": "TRUST",
  "auth": "ae_your_key",
  "payload": {
    "task": "Classify this lead as hot/warm/cold",
    "credential": "general",
    "sla": "4hr",
    "budget_credits": 10,
    "items": [{"name": "John Smith", "email": "john@acme.com"}]
  }
}

# Response
{
  "status": "dispatched",
  "checkpoint_id": "abc-123",
  "poll_url": "/agent/humanagent/trust/abc-123",
  "credits_charged": 10,
  "budget_usd": 0.01
}
TRUST VERB — HUMANAGENT

Polling for results

After dispatching a TRUST call, poll the checkpoint to get the result when the human completes it.

# Poll for status
GET /agent/humanagent/trust/{checkpoint_id}

# Response (pending)
{
  "checkpoint_id": "abc-123",
  "status": "pending",
  "task": "Classify this lead as hot/warm/cold",
  "sla_remaining": 14336,
  "target": "humanagent"
}

# Response (completed)
{
  "checkpoint_id": "abc-123",
  "status": "completed",
  "task": "Classify this lead as hot/warm/cold",
  "result": {
    "approved": true,
    "tier": "hot",
    "notes": "Strong buying signals"
  },
  "audit_hash": "sha256:60d9bf7c43d0dd28f1b53acbc123daa2",
  "target": "humanagent"
}
TRUST POLLING
Auto-refund
If a checkpoint expires without being completed, credits are refunded automatically.

HumanAgent

When your AI agent hits an edge case it can't solve, TRUST sends it to a verified human. The human reviews, submits a decision, and the result flows back to your agent with a tamper-proof audit hash.

How it works

1
Your agent sends a TRUST verb to humanagent with a task description and budget
2
A checkpoint is created and dispatched to a verified human operator
3
The human reviews, makes a decision, and submits the result
4
Poll /agent/humanagent/trust/{checkpoint_id} for the completed result

Pricing

Credits convert to USD at $0.001/credit. You set the budget per checkpoint. Unused budget is refunded.

Proof of Human

Every completed checkpoint gets a SHA-256 audit hash. Verify at humanagent.net/verify/{hash}.

Get started

# Install the Python SDK
pip install humanagent

# Or call via AgentEazy gateway
curl -X POST gateway/agent/humanagent/ \
  -H "Content-Type: application/json" \
  -d '{"verb":"TRUST","auth":"ae_key","payload":{"task":"Review this","budget_credits":5}}'
HUMANAGENT QUICKSTART

TRUST payload fields

FieldTypeRequiredDescription
taskstringYesWhat the human needs to review or decide
credentialstringNoRequired qualification: "general", "bar_licensed", "cpa". Default: "general"
slastringNoTime limit: "90s", "5min", "30min", "1hr", "4hr". Default: "4hr"
budget_creditsintegerNoCredits to charge for this checkpoint. Converted to USD at $0.001/credit
itemsarrayNoData items for the human to review (passed as payload_meta)
callback_urlstringNoWebhook URL — receives POST when human completes the task
targetstringNoSpecific human agent name. Default: auto-selects first available

Operator signup and dashboard: humanagent.net

State & Memory

Agents can maintain context across calls using the built-in context store. Pass a context_id to link related interactions.

# First call — creates context
POST /agent/assistant/
{
  "verb": "ASK",
  "payload": { "question": "What is Python?" },
  "context_id": "session-123"
}

# Second call — same context, agent remembers
POST /agent/assistant/
{
  "verb": "ASK",
  "payload": { "question": "What are its main uses?" },
  "context_id": "session-123"
}
CONTEXT EXAMPLE
Current Limitation
Context is stored in-memory on the gateway. Gateway restarts clear all context. Persistent context storage is planned for a future release.

CLI Commands

The agenteazy CLI is built with Typer. Install with pip install agenteazy.

Core commands

agenteazy deploy <repo>
Full pipeline: analyze → wrap → upload → register
agenteazy deploy <repo> --local
Deploy locally for testing (no cloud)
agenteazy deploy <repo> --price 10
Deploy as paid agent (10 credits/call)
agenteazy deploy <repo> --entry "file:func"
Override entry point
agenteazy deploy <repo> --env KEY=VALUE
Inject environment variables
agenteazy deploy <repo> --self-host
Self-host without Modal
agenteazy deploy <repo> --self-host --host-url URL
Self-host and register with custom URL
agenteazy analyze <repo>
Analyze repo without deploying
agenteazy wrap <repo>
Generate agent.json + wrapper.py
agenteazy status
Check gateway + registry status

Account commands

agenteazy signup <username> --email <email>
Create account, get API key + 50 credits
agenteazy balance
Check credit balance
agenteazy transactions
View transaction history
agenteazy doctor
Check setup and diagnose issues

Registry commands

agenteazy search "query"
Search agent registry
agenteazy list
List all registered agents
agenteazy register <name> <url>
Register an externally hosted agent

Infrastructure commands

agenteazy gateway deploy
Deploy the gateway endpoint
agenteazy registry deploy
Deploy the registry endpoint
agenteazy gateway logs
Fetch gateway execution logs
agenteazy config set <key> <val>
Set CLI configuration value

Batch commands

agenteazy batch-deploy <repos.txt>
Deploy multiple repos from a file
agenteazy batch-deploy <repos.txt> --wrap-only
Wrap without deploying

Integration commands

agenteazy mcp-server
Start MCP server for Claude Desktop/Cursor

Testing commands

agenteazy call <name> --verb DO --data '{}'
Call a deployed agent directly
agenteazy test <repo>
Run analysis + show preview without deploying

Live Endpoints

Gateway

POST
simondusable--agenteazy-gateway-serve.modal.run/agent/{name}/
Universal verb endpoint
POST
simondusable--agenteazy-gateway-serve.modal.run/agent/{name}/{verb}
Verb-specific shortcut
GET
simondusable--agenteazy-gateway-serve.modal.run/health
Health check
GET
simondusable--agenteazy-gateway-serve.modal.run/agent/{name}/trust/{checkpoint_id}
Poll TRUST checkpoint status

Registry

GET
simondusable--agenteazy-registry-serve.modal.run/registry/all
List all agents
GET
simondusable--agenteazy-registry-serve.modal.run/registry/search?q={query}
Search agents
POST
simondusable--agenteazy-registry-serve.modal.run/registry/register
Register new agent
GET
simondusable--agenteazy-registry-serve.modal.run/registry/all?agent_type=human
Filter by agent type (skill, agent, human)
GET
simondusable--agenteazy-registry-serve.modal.run/registry/all?agent_type=skill
Filter skills only
GET
simondusable--agenteazy-registry-serve.modal.run/registry/all?agent_type=agent
Filter use-case agents only

Deployed agents

119 agents are live in the registry. Browse the full list at agenteazy.com/agents. Featured categories include Text Analysis (7), Data Conversion (8), Security & PII (7), Validation (5), Developer Tools (9), and 5 Layer 2 use-case agents.

Resource limits (all agents)

ConstraintValue
Execution timeout30 seconds
Memory512 MB
CPU1.0
Max input size1 MB

Codebase

15 Python files · 18 CLI commands · 20 tests · 0 syntax errors

agentlang.py
10-verb protocol definitions and routing logic
analyzer.py
Repo analysis — clone, detect language, parse AST, find entry points, security warnings
cli.py
18 CLI commands via Typer
config.py
Config manager (~/.agenteazy/config.json)
sdk.py
Python SDK (find, call, ask, do)
batch.py
Batch deploy and analyze
gateway.py
Single FastAPI gateway — verb routing, context store, call logging. Self-contained and stateless.
gateway_deployer.py
Deploys gateway to serverless infrastructure
generator.py
Generates agent.json from RepoAnalysis dataclass
deployer_cloud.py
Uploads agent code to shared volume + auto-registers with registry
local_deployer.py
Local deployment — FastAPI server for development
registry.py
Agent registry FastAPI server — SQLite, search, CRUD, heartbeat
registry_deployer.py
Deploys registry with persistent SQLite storage
wrapper_template.py
Generates FastAPI wrapper code as string for each agent
integrations/
LangChain, CrewAI, and MCP server integrations
__init__.py
Package init, version declaration

Language support

LanguageStatusNotes
Python + requirements.txtSupportedFull support — auto-detects entry point via AST
Python + pyproject.tomlSupportedPEP 621 and Poetry formats
Python + setup.pySupportedAST-based parsing
Python (multi-function repos)SupportedScores and selects best entry function automatically
Class-based entry pointsSupportedVia --entry "file.py:Class.method"
src/ package layoutSupportedAuto-detected
Repos needing API keysSupportedVia --env KEY=VALUE
Batch deploymentSupportedVia batch-deploy command
Node.jsRoadmapDetects package.json, generates Express wrapper
Dockerfile-basedRoadmapWrap any containerized service
Go / RustRoadmapLong-term

The 6-Layer Ecosystem

The full AgentEazy vision is six layers that stack on each other. Each layer makes the next one more valuable. Each layer builds on the last, enabling a complete agent economy from wrapping through payments and identity.

L1
agent.json
One file makes anything an agent. Like package.json for the agent web. Declares what the agent does, how to call it, what verbs it speaks.
L2
Agent Wrap
The core CLI. One command analyzes a repo, generates agent.json + FastAPI wrapper, and deploys to a serverless endpoint.
L3
AgentLang
10 universal verbs every agent speaks. No custom API schemas. No SDK. Just 10 words over standard HTTP POST.
L4
TollBooth
Micropayments between agents. Your wrapped agent earns money while you sleep. One line of code to let your AI agent charge other AI agents.
L5
AgentPass
"Login with Google" but for AI agents. OAuth for machines. Identity, trust scoring, and access control between agents.
L6
Pulse
An alarm clock for the autonomous web. Agents don't wait — they act on triggers, events, and schedules. Webhook-based subscriptions via the WATCH verb.

TollBooth

TollBooth is the micropayment layer for the agent economy. It activates the PAY verb, enabling agents to charge other agents for services using prepaid credits. Agents declare their pricing in agent.json and the gateway handles billing automatically.

How it works

When an agent calls another agent using the PAY verb, TollBooth:

  1. Deducts credits from the calling agent's prepaid balance
  2. Credits the target agent's owner at the rate declared in pricing.credits_per_call
  3. Settlement happens per-call — no invoicing, no monthly billing

Getting started

Every developer gets 50 free credits on signup. No credit card required.

Deploy a paid agent

agenteazy deploy github.com/you/repo --price 10
BASH
  • You set the price — 1 credit, 10, 100 — your choice
  • 80/20 split — you keep 80%, platform takes 20%
  • Buy credits at agenteazy.com/dashboard: $5 for 500, $10 for 1,200, $25 for 3,500
  • Rate limiting: 200 calls/hr, 500 credits/hr per account

agent.json pricing setup

{
  "pricing": {
    "model":            "per_call",
    "credits_per_call": 10,
    "currency":         "CREDITS"
  },
  "verbs": ["ASK", "DO", "PAY"]
}
agent.json — TollBooth setup

AgentPass

AgentPass is identity and authentication for the machine-to-machine web. Think "Login with Google" — but for AI agents talking to AI agents. It activates the TRUST verb, enabling secure sessions, identity verification, and access control between agents.

Auth types

TypeDescription
noneOpen agent, no auth required. Default for public agents.
api_keyStatic API key passed in the auth field of the AgentLang envelope.
oauthStandard OAuth token flow for delegated access.
agentpassFull AgentPass identity signatures with trust scoring and capability declarations.

Declaring auth in agent.json

{
  "auth": {
    "type":     "api_key",    // none | api_key | oauth | agentpass
    "required": true
  }
}
agent.json — AgentPass setup
AgentEazy AgentEazy
v0.2.7 · MIT License · From repo to agent in one command.
GitHub · agenteazy.com
Last updated: March 17, 2026