QUICKSTART GUIDE

Microsoft AutoGen + xLink Identity

Add identity-based authentication to Microsoft AutoGen multi-agent conversations. Replace API keys with per-agent DIDs. Each agent gets its own verifiable identity. Zero key management, zero credential rotation, zero cascading failures.

@private.me/autogen-xlink 5 minutes to first message Python 3.10+
📚 Complete Documentation
For complete documentation including pricing, purchase API, and technical specifications, see the full white paper.

Installation

Install the AutoGen xLink adapter via pip. Works with any AutoGen version 0.2.0 or higher.

Terminal bash
# Install AutoGen (if not already installed)
pip install pyautogen

# Install xLink adapter for AutoGen
pip install @private.me/autogen-xlink
Package Requirement

Requires pyautogen >= 0.2.0 and @private.me/xlink >= 1.0.0. The adapter automatically installs xLink as a dependency.

Basic Multi-Agent Conversation

Create two AutoGen agents with xLink identity. Each agent gets its own DID. Messages are authenticated end-to-end.

multi_agent_conversation.py python
from autogen import AssistantAgent, UserProxyAgent
from private_me.autogen_xlink import XLinkAdapter

# Create xLink adapter (automatically generates DIDs for agents)
adapter = XLinkAdapter()

# Create assistant agent with xLink identity
assistant = AssistantAgent(
    name="assistant",
    llm_config={"model": "gpt-4", "api_key": "..."}
)

# Create user proxy agent with xLink identity
user_proxy = UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=10
)

# Enable xLink identity for both agents
adapter.enable_for_agent(assistant)
adapter.enable_for_agent(user_proxy)

# Start conversation (messages are authenticated via xLink)
user_proxy.initiate_chat(
    assistant,
    message="What is the weather in San Francisco?"
)

# Each message is signed with sender DID, verified by recipient DID
# Zero API keys, zero credential rotation, zero cascading failures
How It Works

XLinkAdapter.enable_for_agent() wraps the agent's send and receive methods. Every outgoing message is signed with the sender's DID. Every incoming message is verified against the sender's DID. Messages without valid signatures are rejected.

Group Chat with Identity

Enable xLink identity for multi-agent group conversations. Each agent maintains its own identity. The group chat manager authenticates all messages.

group_chat_identity.py python
from autogen import AssistantAgent, GroupChat, GroupChatManager
from private_me.autogen_xlink import XLinkAdapter

# Create xLink adapter
adapter = XLinkAdapter()

# Create three agents
researcher = AssistantAgent(name="researcher", llm_config={...})
engineer = AssistantAgent(name="engineer", llm_config={...})
reviewer = AssistantAgent(name="reviewer", llm_config={...})

# Enable xLink identity for each agent
adapter.enable_for_agent(researcher)
adapter.enable_for_agent(engineer)
adapter.enable_for_agent(reviewer)

# Create group chat
groupchat = GroupChat(
    agents=[researcher, engineer, reviewer],
    messages=[],
    max_round=12
)

# Create group chat manager with xLink identity
manager = GroupChatManager(groupchat=groupchat, llm_config={...})
adapter.enable_for_agent(manager)

# Start group conversation
researcher.initiate_chat(
    manager,
    message="Let's design a distributed file storage system."
)

# All messages authenticated:
# - researcher → manager (verified)
# - manager → engineer (verified)
# - engineer → manager (verified)
# - manager → reviewer (verified)

Benefits

Per-Agent Identity

Each AutoGen agent gets its own DID. No shared API keys, no credential leakage across agents. Identity is cryptographically bound to the agent instance.

Message Authentication

Every message signed with sender DID, verified by recipient. Tampered messages rejected automatically. Man-in-the-middle attacks prevented.

Zero Key Management

No API keys to rotate, no credentials to store, no secrets to leak. DIDs are self-sovereign. Agent restart = same DID, zero config.

Group Chat Security

All group chat messages authenticated end-to-end. Manager verifies every sender. No impersonation possible, even with compromised network.

Drop-In Integration

3 lines to enable xLink. Zero changes to AutoGen agents. Works with existing LLM configs, tools, and conversation flows.

Audit Trail

Every message includes sender DID and signature. Full conversation audit trail. Provable authorship for compliance and debugging.

Custom Trust Registry

Restrict agent-to-agent communication using a trust registry. Only allow messages from pre-approved DIDs.

trust_registry.py python
from private_me.autogen_xlink import XLinkAdapter, TrustRegistry

# Create trust registry
registry = TrustRegistry()

# Create adapter with trust registry
adapter = XLinkAdapter(trust_registry=registry)

# Create agents
agent_a = AssistantAgent(name="agent_a", llm_config={...})
agent_b = AssistantAgent(name="agent_b", llm_config={...})
agent_c = AssistantAgent(name="agent_c", llm_config={...})

# Enable xLink for all agents
adapter.enable_for_agent(agent_a)
adapter.enable_for_agent(agent_b)
adapter.enable_for_agent(agent_c)

# Add agent_a and agent_b to trust registry (agent_c excluded)
registry.add_did(agent_a.xlink_did)
registry.add_did(agent_b.xlink_did)

# agent_a ↔ agent_b: messages accepted (both in registry)
# agent_c → agent_a: messages rejected (agent_c not in registry)
# agent_a → agent_c: messages rejected (agent_c not in registry)
Trust Registry Enforcement

When a trust registry is configured, agents ONLY accept messages from DIDs in the registry. Messages from unknown DIDs are silently dropped. This prevents unauthorized agents from joining conversations.

Next Steps

Need Help?

Questions about AutoGen + xLink integration? Email contact@private.me or open a support ticket at private.me/support.