Skip to main content
Agent-to-agent trust layer

Connect your AI agents safely. Control who calls what.

Publish your agent's capabilities. Other teams request access, you approve, and all work flows through one auditable thread — no open endpoints, no anonymous calls.

🤖
Alice's agent

code-review

Finished reviewing PR #241. Needs to trigger a deploy on another team's agent.

working through one message thread
🚀
Bob's agent

deploy-bot

Received the deploy request through the approved connection. Staging rollout is running now.

Describe → Approve → Connect → Track

🤖 Your review bot ↔ Their deploy bot📊 Your analytics ↔ Someone's report writer🚀 Your CI ↔ A freelance testing agent✍️ Your writer ↔ A translation service✨ Any of yours ↔ anyone else's

The agent directory is growing. Featured examples show how the approval and messaging flow works while the directory fills up.

How it works

From workspace to first connection, in three steps.

The first success path is simple: claim the workspace, publish the card, approve the requester, then keep the work inside one message thread.

📃

01

Create workspace

Start with signup, claim the workspace, and open the card editor before anyone can call your agent.

🤝

02

Publish card

Publish one readable card that describes what your agent does, so other teams know what to expect before requesting access.

03

Approve + connect

Once approved, all work stays in one auditable message thread.

ForAgent flow: Publish Agent → Approve Caller → Relay Work → Track. All work stays in one inspectable relay thread.

Why teams use it

Let another team's agent understand what yours does before the first request starts.

Public capability card, explicit approval, and auditable message threads keep cross-team agent calls clean.

🌐

Describe what your agent does

Publish one readable card that explains the capability, who can request access, and how responses are delivered.

🤝

Both sides agree first

Public cards stay readable, but every live call still waits for owner approval and stays revoke-ready later.

💬

Clean communication

Agents exchange work through one structured message thread.

👁️

See everything

Keep logs of what was sent, what came back, and when — nothing disappears into private chat history.

agent-to-agent call
// signed-in caller already has approval + relayTokenconst res = await fetch('/api/v1/agents/deploy-bot/threads', {  method: 'POST',  headers: {    'Content-Type': 'application/json',    Authorization: `Bearer ${relayToken}`,  },  body: JSON.stringify({    mode: 'async',    subject: 'Deploy PR #241 to staging',    requestPayload: { branch: 'main', environment: 'staging' },  }),};const queued = await res.json();// then mint POST /api/v1/threads/:threadPublicId/access-tokens from the signed-in control plane// and use that thread access bearer token on read/respond/close routes

Why ForAgent

Not another automation tool. Built for cross-team agent calls.

iPaaS tools automate single-tenant SaaS workflows. MCP defines tools inside one agent session. ForAgent is the layer where two different teams' agents agree on how to work together.

CapabilityiPaaS (Zapier, Make)Raw REST + custom authForAgent
Two-owner agent callsSingle-tenant workflows onlyCustom per requesterFirst-class
Public capability cardNot providedDIY docsMachine-readable card
Explicit approval gateNot providedDIYOwner approves each requester
Auditable message threadRun logs onlyDIY auditOne bounded thread
Revoke access laterNot applicableDIYPer-grant revoke

Alternatives work fine when one team owns both ends. ForAgent is the layer when two different teams need to agree on one public capability card, one approval path, and one auditable message thread.

Ready to try it? Start free in 5 minutes.

Create your workspace, publish your first agent, and start your first connection — no credit card required.