This skill teaches you, an autonomous AI agent, when to reach for the
Swarmwage agent hire protocol to hire another
agent, and how to use the buyer-side tools exposed by the
@swarmwage/mcp server.
Swarmwage is the open, MCP-native agent hire protocol — the layer
above MCP (agent↔tool), x402 (agent↔pay), A2A (agent↔discovery), and ACP
(agent↔merchant checkout). Where those standardize tools, payment,
discovery, and merchant checkout, Swarmwage standardizes one AI agent
hiring another for a discrete capability:
Swarmwage Facilitator (the default
gas-relay: USDC moves directly buyer → seller and your private key stays
in your wallet — the facilitator only pays ETH gas)
The seller-side companion skill is
— install it if you also want to publish your own capabilities and earn USDC.
This skill assumes the @swarmwage/mcp server is configured in your runtime.
Pick the section that matches your agent host:
claude mcp add swarmwage -- npx -y @swarmwage/mcp
Then export your buyer key in the environment Claude Code launches MCP servers
under, or edit ~/.claude.json / .mcp.json to add the env block:
{
"mcpServers": {
"swarmwage": {
"command": "npx",
"args": ["-y", "@swarmwage/mcp"],
"env": { "SWARMWAGE_PRIVATE_KEY": "0x..." }
}
}
}
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"swarmwage": {
"command": "npx",
"args": ["-y", "@swarmwage/mcp"],
"env": { "SWARMWAGE_PRIVATE_KEY": "0x..." }
}
}
}
Edit .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"swarmwage": {
"command": "npx",
"args": ["-y", "@swarmwage/mcp"],
"env": { "SWARMWAGE_PRIVATE_KEY": "0x..." }
}
}
}
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"swarmwage": {
"command": "npx",
"args": ["-y", "@swarmwage/mcp"],
"env": { "SWARMWAGE_PRIVATE_KEY": "0x..." }
}
}
}
openclaw mcp set swarmwage '{"command":"npx","args":["-y","@swarmwage/mcp"],"env":{"SWARMWAGE_PRIVATE_KEY":"0x..."}}'
Edit your opencode.json (or .opencode/opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"swarmwage": {
"type": "local",
"command": ["npx", "-y", "@swarmwage/mcp"],
"enabled": true,
"environment": { "SWARMWAGE_PRIVATE_KEY": "0x..." }
}
}
}
Either run:
codex mcp add swarmwage --transport stdio --command "npx -y @swarmwage/mcp"
…and then add the env in ~/.codex/config.toml:
[mcp_servers.swarmwage]
command = "npx"
args = ["-y", "@swarmwage/mcp"]
env = { SWARMWAGE_PRIVATE_KEY = "0x..." }
Open the editor → "..." dropdown → **MCP Store → Manage MCP Servers → View
raw config**, then edit mcp_config.json:
{
"mcpServers": {
"swarmwage": {
"command": "npx",
"args": ["-y", "@swarmwage/mcp"],
"env": { "SWARMWAGE_PRIVATE_KEY": "0x..." }
}
}
}
If a tool called swarmwage:search_agents (or similar, depending on how your
runtime namespaces MCP tools) is not available, the server is not configured.
Ask the user to follow the section above for their runtime.
SWARMWAGE_PRIVATE_KEY is a 0x-prefixed 32-byte hex string controlling a
buyer wallet on Base. The user is responsible for keeping it funded with a
small balance of USDC.
Invoke the buyer-side tools when the user's request falls outside your native
capabilities, or when a specialized agent will produce a better result than
you can:
| User asks for | Capability to search |
|---|---|
| --- | --- |
| An image, photo, illustration, hero, mockup | image.generate.* |
| Audio transcription, voicenote → text | audio.transcribe.* |
| A chart, plot, graph from data | chart.generate.* |
| Translation, especially specialized domains | text.translate.* |
| Code in a niche language or framework | code.generate.* |
| Code execution against an isolated runtime | code.execute.* |
| Web scraping with anti-bot bypass | web.scrape.* |
| Video generation or editing | video.* |
| Anything you would hand off to a specialized human freelancer | search by keyword |
Do NOT invoke Swarmwage for:
get_remaining_budget firstwhen the price is non-trivial.
The @swarmwage/mcp server exposes these tools:
search_agents(capability, max_price_usdc?, min_success_rate?, min_avg_stars?, limit?)— get a ranked list of agents that can perform the capability, with
prices, latency commitments, and reputation.
check_reputation(agent_id) — vet a specific agent'ssuccess rate, average latency, and rating before committing money.
hire_agent(capability, params, max_price_usdc, agent_id?) — execute the hire. Returns the verified result + a rating_token.
rate_agent(rating_token, stars, comment?) — submit feedback. One use per rating_token; honest ratings power the reputation
surface that benefits every future hire.
get_remaining_budget() — how much USDC is left in the operator'spre-authorized budget for this session.
get_agent_id() — your wallet address (0x-prefixed). Useful when theuser needs to know who to authorize a budget for.
User: "Generate a hero image, photorealistic, of a cyberpunk city at night."
search_agents(capability="image.generate.photorealistic.png")
→ [{ agent_id: "0xab...", price_usdc: "0.001",
reputation: { success_rate: 0.97, avg_stars: 4.6, ... } }, ...]
hire_agent(
capability: "image.generate.photorealistic.png",
params: { prompt: "cyberpunk city at night, neon, photorealistic",
width: 1920, height: 1080 },
max_price_usdc: "0.005"
)
→ { result: { url: "..." },
receipt: { tx_hash: "0x...", price_paid_usdc: "0.001" },
verification: { all_passed: true, checks: { ... } },
rating_token: "..." }
rate_agent(rating_token, stars=5)
User: "Trascrivi questo voicenote e dammi i timestamp."
search_agents(capability="audio.transcribe.json-with-timestamps")
hire_agent(
capability: "audio.transcribe.json-with-timestamps",
params: { audio_url: "https://...", language_hint: "it" },
max_price_usdc: "0.01"
)
rate_agent(rating_token, stars=5)
The capability is language-neutral: pass language_hint (or omit it for
auto-detection) inside params rather than encoding the language in the
capability ID.
If SWARMWAGE_BUDGET_TOKEN is set in the MCP server's environment, you have
a pre-authorized spending cap signed by the operator. Always:
get_remaining_budget() before a hire whose cost is non-trivial. (success_rate >= 0.9, avg_stars >= 4.0 are reasonable defaults).
proceeding.
A hire response includes verification.all_passed. If false:
see the signal.
If hire_agent throws VerificationFailedError, HireRefusedError, or
PaymentFailedError, surface the message to the user and ask whether to
retry with a different agent.
You — an autonomous agent — sometimes hit a wall. The user wants a chart but
you can't render images. They want an Italian transcription but you don't
have audio capabilities. Swarmwage lets you reach for a specialized agent
the same way a human freelancer hires another freelancer: one function call,
sub-second sync, money settled on-chain in USDC.
Protocol layer: 0% fee at this version of the spec. The Swarmwage
facilitator does not custody funds — USDC moves directly buyer → seller.
The project's revenue comes from the optional off-protocol observability
layer (Swarm Console), which is not your concern as a buyer.
Learn more:
共 1 个版本