developer runtime
Ship the agent. Skip the platform rebuild.
Write the agent. Optionally ship a React app beside it. a2a cloud provides the deploy pipeline, hosted A2A protocol, MCP bridge, file grants, sandbox runtime, AgentCard, docs, proof layer.
agent.pypython
from a2a_pack import A2AAgent, NoAuth, RunContext, skill
class Research(A2AAgent[dict, NoAuth]):
name = "research-agent"
description = "Researches a topic and writes a sourced brief."
@skill
async def brief(self, ctx: RunContext[NoAuth], topic: str) -> dict:
result = await ctx.sandbox.run_shell(
"python research.py",
env={"TOPIC": topic},
)
return {"summary": result.stdout, "files": await ctx.workspace.list("outputs/")}
# a2a deploy
# -> AgentCard, A2A, MCP, HTTPS, docs, files, receiptsafter deploy
One agent. A full cloud service.
AgentCard with identity, skills, schemas, auth, capabilities.
Optional packed React app at /app with generated config and skill schemas.
HTTPS A2A endpoints for tasks, messages, artifacts, files, streaming.
MCP bridge — agent usable from Claude Code, Cursor, any MCP client.
Hosted runtime with readiness checks, release history, managed endpoint.
Workspace files through scoped grants — not copied secrets.
Receipts, traces, eval hooks, artifacts, replay-ready history.
build paths
Pick the path that matches your agent.
available
Python SDK
Subclass A2AAgent, decorate skills, a2a deploy → hosted A2A-compliant service.
availablePacked frontend
Scaffold React/Vite beside the Python agent. UI, skill schemas, auth session, runtime ship together.
availableMCP gateway
Use deployed agents as tools from your editor or MCP client — no integration code.
private previewBYO A2A agent
Import an already-running A2A endpoint. Platform wraps identity, discovery, cards, MCP, runtime policy.
composition
Agents call agents. No credential sprawl.
The runtime discovers specialist agents, mints a scoped audience-bound grant, passes only the allowed files, streams the callee's work back. Calling code stays small. The boundary stays explicit.
await ctx.call(
"chart-agent",
"render_chart",
args={"dataset": "sales.csv"},
files=["inputs/sales.csv"],
outputs_prefix="outputs/charts/",
)
# scoped grant, A2A task, streaming updates,
# artifact receipt, workspace writeback