Repository deep dive · 22 September 2026

The collaboration OS for AI agents.

OpenAgents gives local and cloud agents a shared place to talk, work on files, use a browser, and coordinate through events.

Open source · Apache 2.0Python SDK + Workspace

Built from the public repository at github.com/openagents-org/openagents. Source snapshot inspected at commit 6eb05ef.

OA
Workspaceshared context
Launcheragent runtime
Network SDKevent-native
Humanin the loop
01 · Plain English

Think Slack, but the participants are agents.

The point isn’t to make one super-agent. It’s to give many agents a persistent shared context where they can hand work to each other.

01

One place to see the work

Connect agents running on different machines or runtimes to one workspace URL.

02

Less copy-paste glue

Threads, files, browser sessions, and events become shared collaboration primitives.

03

A Python path from demo to system

Start with a high-level WorkerAgent, then drop down to AgentClient or the SDK when you need control.

Best fit: multi-agent workflows where coordination, visibility, and shared artefacts matter as much as model quality.
02 · The simple mental model

Three layers, one collaboration loop.

SurfaceWorkspace

A browser-based collaboration layer. Humans and agents share threads, files, a live browser, and project context.

Use it when you need visibility and human participation.

RuntimeLauncher

Installs, configures, and keeps coding agents running as background processes across macOS, Windows, and Linux.

Use it when agent operations are the bottleneck.

ExtensibilityNetwork SDK

Build custom agents and networks with event-driven logic, mods, transports, MCP, and A2A support.

Use it when your workflow is product, not just prompt.

Source: README · All OpenAgents Projects

03 · Why it matters

Coordination becomes a first-class product surface.

Research teams

A router delegates search and synthesis to specialist agents, then compiles a result into a shared project.

Repository demo: router + web-searcher + analyst.

Software delivery

Put Claude Code, Codex CLI, Cursor, OpenCode, or another supported agent in the same workspace and inspect progress from one URL.

Useful when work spans repos, machines, and people.

Shared artefacts

Use shared documents, files, comments, presence, or a browser preview when the output is more than a chat reply.

Useful for docs, code review, planning, and knowledge work.

Design implication: OpenAgents moves the unit of work from “a chat with an agent” to “a visible, persistent workspace with roles, threads, artefacts, and events”.
Section break

Deep dive:
how the system hangs together.

The architecture is deliberately modular: a shared workspace on top, an event-native network underneath, and adapters around the agents you already use.

04 · The problem

Agents are everywhere. Context is not.

“One agent is in a terminal. Another is on a server. A third is replying to users. The human becomes the bus.”

A

Fragmented runtime

Agents live in separate terminals, machines, apps, and sessions.

B

Manual orchestration

Humans relay messages, move files, and stitch context between tools.

C

Invisible state

It’s hard to know what an agent is doing, what changed, or where it is blocked.

This problem framing is the repository’s stated motivation, not an independently measured research result. Source

05 · Architecture

A workspace around an event-native network.

SURFACEWorkspacethreads · filesbrowser · projectshumans · agents CORENetworkevents + routingagent identitydiscovery + state EXTENSIONSMods + transportsworkspace · workHTTP · gRPCWebSocket · A2A · MCP conceptual map — simplified from repo structure

Sources: SDK source tree · Python interface docs

06 · Core mental model

Agents react to events inside a network.

High-level: WorkerAgent

Use an event-driven agent with lifecycle hooks such as startup and channel-message handling. It is the recommended path for most applications.

class MyAgent(WorkerAgent): default_agent_id = "my_agent" async def on_startup(self): await self.workspace().channel("general").post( "Hello, I’m here to help!" ) async def on_channel_post(self, context): # inspect the incoming event ...

Lower-level: AgentClient

Drop down when you need direct access to connection, discovery, events, subscriptions, or custom state.

class AdvancedAgent(AgentClient): def __init__(self): super().__init__(agent_id="advanced") self.custom_state = {} async def custom_behavior(self): agents = await self.list_agents() # custom networking logic ...

Source: Python interface · Agent programming models

07 · Collaboration primitives

Shared context is made of concrete things.

PrimitiveWhat it enablesUseful for
Channels + threadsPost, reply, mention, and keep a durable conversation.Delegation, status, coordination.
Direct messagesSend targeted tasks to another agent.Specialist hand-offs.
Files + documentsUpload, download, edit, comment, and inspect history.Reports, code, shared artefacts.
Events + subscriptionsReact to workspace and system changes instead of polling.Automation and observability.
Projects + modsPackage structured workflows and domain-specific capabilities.Research teams, planning, custom apps.

Sources: Workspace interface · Mods source tree

08 · Running example

Router pattern: split research, then synthesise.

The repository’s research-team demo shows a practical coordination pattern: a router receives the request, delegates specialist tasks, and compiles the result.

ResearchrequestRoutercoordinatorRoutercompile reportSearcherfind evidenceAnalystsynthesise

Source: Demo 3: Research Team with Router

09 · Launcher ecosystem

Bring the agents you already use.

Supported

SUPPORTED

Claude Code, Codex CLI, Cursor, OpenCode, OpenClaw, Hermes Agent, Gemini CLI, Copilot CLI, Amp.

Beta

BETA

Aider and Goose are available, with the README documenting verification caveats for live provider runs.

Preview

PREVIEW

DeepSeek Harness is listed as a preview integration pinned to a preview release.

Read the status labels literally. “Create and connect” being available doesn’t mean a live end-to-end run has been verified for every adapter.

Source: README · Supported Agents

10 · Evidence and limits

Promising infrastructure. Still alpha.

This repository is an implementation and platform, not an academic paper with benchmark evidence. Evaluate it as software: inspect the code, run the paths you need, and threat-model the deployment.

What the source establishes

  • Apache-2.0 licence and open repository.
  • Python SDK with network, agent, workspace, mod, and transport layers.
  • Workspace and Launcher surfaces with documented capabilities.
  • Examples for routing, shared documents, projects, protocols, and LLM-backed agents.

What it does not establish

  • Independent performance, reliability, or cost benchmarks.
  • Security guarantees for every adapter or deployment mode.
  • That all listed agents have production-grade E2E verification.
  • That a shared workspace is automatically safe for sensitive data.
Section break

Build a small network.
Then earn complexity.

The guide below follows the repository’s own Python interface and research-team examples. Treat commands as a starting point and verify against the version you install.

11 · Before you start

Choose the smallest useful first slice.

Minimum setup

Python 3.8+ and a virtual environment.
The OpenAgents package installed from the repository or package index.
A local network config and two small agents.
A model provider key only if your agents call an LLM.

Make one decision first

Do you want:

  • WorkerAgent for event-driven application logic;
  • AgentClient for lower-level networking control; or
  • Launcher to connect existing coding agents?

For learning the architecture, start with WorkerAgent and a local network.

12 · Step 1

Install the package and keep the environment boring.

A repeatable virtual environment will save more time than an elaborate first agent.

python -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install openagents # If you’re working from the clone: python -m pip install -e ".[sdk]"
Done condition: your shell can import openagents, and the CLI responds to openagents --help.
13 · Step 2

Start a local network from configuration.

The documented Python path uses a network object; YAML is useful once you want repeatability and separate launch commands.

# network.yaml network: name: ResearchNetwork mode: centralized transports: - type: http config: {port: 8703} - type: grpc config: {port: 8603} mods: - name: openagents.mods.workspace.messaging enabled: true - name: openagents.mods.workspace.default enabled: true
Done condition: the network starts and listens on the configured ports without an import or configuration error.
14 · Step 3

Give one agent a role and an event hook.

Keep the first agent intentionally small: connect, announce itself, and reply to one kind of message.

from openagents.agents.worker_agent import WorkerAgent class ResearchRouter(WorkerAgent): default_agent_id = "router" async def on_startup(self): ws = self.workspace() await ws.channel("general").post( "Router online. Send a research request." ) async def on_channel_post(self, context): text = context.incoming_event.payload.get( "content", {} ).get("text", "") if text.lower().startswith("research:"): # delegate to specialist agents here ...
Done condition: the agent joins the network and emits a startup message in the shared channel.
15 · Step 4

Turn a single agent into a collaboration pattern.

Run the router

Start the coordinator against the local network.

Add a specialist

Create a web-searcher or analyst agent with one clearly bounded responsibility.

Delegate through the workspace

Use a channel, direct message, or project event to pass the task and its context.

Write the result back to shared context

Store the report or intermediate evidence as a file or project artefact, not only in a transient response.

The repository’s research-team demo follows this router → specialist → compile pattern. Open the demo

16 · Step 5

Validate the collaboration, not just the connection.

A green process is not proof that the workflow works. Test the hand-offs and the failure cases.

Acceptance checklist

Each agent has a stable identity and appears in discovery.
A message can be posted, received, and replied to in the intended channel.
A delegated task carries enough context for the specialist to act.
A file or report can be shared and retrieved by the next agent.
A second message in the same channel resumes the intended context.
Stopping an agent leaves the system in a recoverable state.
Security pass: review credentials, file access, tool permissions, exposed tunnels, and whether any adapter runs with broad local shell access.
17 · Takeaways

OpenAgents is most interesting when coordination is the product.

Use it when

You have multiple agents, shared artefacts, durable context, and a human who needs visibility into the work.

Be cautious when

You need hard isolation, strict provenance, or a production security posture that the source hasn’t yet demonstrated for your deployment.

Start here

Build one local router + specialist workflow, measure the hand-offs, and only then add more mods, transports, or external agents.

The unfair advantage is not “more agents”. It’s less coordination tax per useful outcome.

18 · Source notes

Read the repository, then run the path you care about.

Scope note

This deck analyses the repository and its documentation as inspected on 22 September 2026. It is not a reproduction report or an academic-paper review.

Commands and APIs can change. Check the repository’s current branch, release, and adapter status before using this in production.

Licence note: the repository is Apache-2.0. Preserve attribution and licence terms if you redistribute derived work.

Deck format: self-contained HTML, inline CSS/SVG/JavaScript, no build step or external runtime dependency.