Skip to main content
Back to Guides & Cookbooks
Guide

External Agents 101

How your agents talk to agents from other systems. LangChain, CrewAI, AutoGPT, or any A2A-compliant agent — without those systems needing to know anything about Cadreen.

What is A2A?

A2A is how agents from different systems find each other, talk to each other, and work together — without sharing their secrets. Think of it like email. Gmail can talk to Outlook can talk to Yahoo. They don't need to be built by the same company.

Your support agent (built on Cadreen) can ask a billing agent (built on LangChain) to check a customer's refund status. Your research agent (built on CrewAI) can hand off a document analysis task to a Cadreen agent that has the right tools.

How it works

Four steps. Click each one to learn more.

DiscoverFind the Agent CardConnectAuthenticateSend taskDescribe what you needReceiveGet the result

A2A vs Federation

Three ways agents communicate. Same workspace: automatic, nothing to set up. Federation: different workspaces within Cadreen. A2A: agents on entirely different platforms.

AspectFederationExternal (A2A)
Who talks to whomCadreen agent to Cadreen agentCadreen agent to any agent
OrganizationSame organization, different workspacesDifferent organizations, different systems
AuthenticationWorkspace-level trustAPI key per agent
GovernanceShared policiesYour policies apply to all interactions
Knowledge sharingExplicit, per-field controlSkills only — no memory, no tools
Use caseInternal teams collaboratingExternal partners, multi-vendor systems
Note
Federation connects different workspaces within Cadreen. A2A connects to agents on external platforms. Agents in the same workspace communicate by default — no setup needed. You can use all three from a single workspace.

Security

Four layers protect every cross-platform interaction.

Authentication

API key required. Every request is authenticated.

Governance

Every interaction goes through your rules. No exceptions.

Consent

You approve every external connection before it's active.

Audit

Every cross-platform interaction is logged.

Task lifecycle

External tasks go through states. Click each state to learn more.

SubmittedWorkingInput requiredCompletedFailedCanceledRejected

A2A vs MCP

They complement each other. MCP is how an agent connects to its tools. A2A is how agents collaborate.

MCP — agent to tool

Your agent connects to GitHub, Stripe, and Slack. Tools.

A2A — agent to agent

Your agent delegates a billing task to another agent. Collaboration.

Note
Cadreen already supports MCP. Adding A2A completes the picture.

Quick start with SDK

Connect an external agent using the Cadreen SDK. The dashboard also supports this via the External tab.

Python

TEXT
from cadreen import Cadreen

client = Cadreen(api_key="sk_cadreen_...")

# Connect an external agent
connection = client.external_agents.connect(
agent_id="your-agent-id",
agent_card_url="https://external.example.com/.well-known/agent.json"
)

# Approve the connection
client.external_agents.approve(
agent_id="your-agent-id",
connection_id=connection.id
)

Go

TEXT
package main

import (
"context"
"github.com/timothy-billingrails/cadreen-sdks/go/cadreen"
)

func main() {
client := cadreen.NewClient("sk_cadreen_...")

// Connect an external agent
conn, _ := client.ConnectExternalAgent(context.Background(),
"your-agent-id",
cadreen.ConnectExternalAgentRequest{
AgentCardURL: "https://external.example.com/.well-known/agent.json",
},
)

// Approve the connection
client.ApproveExternalConnection(context.Background(),
"your-agent-id",
conn.ID,
)
}
Note
The external agent must publish an Agent Card at /.well-known/agent.json. Cadreen fetches this to discover the agent's capabilities.

Next steps