Skip to main content

A Context-Central Multi-Agent System Platform

Project description

ContextAgent

A Context-Central Multi-Agent System Platform

Notion Blog Documentation DeepWiki WeChat Discord

ContextAgent is a lightweight, context-central multi-agent systems framework designed for easy context engineering. It focuses on efficiently managing the context of each agent and binds all agents through simplified, centralized context operations. Unlike traditional multi-agent frameworks, ContextAgent treats agents simply as LLMs with different contexts, eliminating unnecessary complexity. Built with a PyTorch-like API, developers can create sophisticated multi-agent systems with minimal code.

๐ŸŒŸ Features

  • ๐Ÿ“‹ Context = Template + State: Dynamic context management based on Anthropic's blog.
  • ๐Ÿ”€ Decoupled Agent Design: Agent = LLM + Context. All agents are just LLMs with different contexts.
  • ๐ŸŽจ PyTorch-Like Pipeline API: Inherit BasePipeline, define async run(), use @autotracing for tracing.
  • ๐ŸŒ Multi-LLM Support: Works with OpenAI, Claude, Gemini, DeepSeek, and more.
  • ๐Ÿงฉ Modular Architecture: Built on OpenAI Agents SDK with clear separation: context, agents, pipeline.
  • โšก Easy to Use & Customize: Reuse pipelines with just a query; create new ones with familiar patterns.

๐Ÿ“ข News

  • [2025-10] ContextAgent is released now!

๐ŸŽฌ Demo

๐Ÿ“ฆ Installation

This project uses uv for fast, reliable package management.

Install uv

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

See the uv installation guide for more options.

Setup Environment

# Clone the repository
git clone https://github.com/context-machine-lab/contextagent.git
cd contextagent

# Sync dependencies
uv sync

Configure API Keys

ContextAgent requires API keys for LLM providers. Set up your environment in .env file:

# Copy the example environment file
cp .env.example .env
# Edit .env and add your API keys

See .env.example for complete configuration options.

๐Ÿš€ Quick Start

Run Built-in Examples

Try out ContextAgent with pre-configured example pipelines:

Data Science Pipeline - Automated ML pipeline for data analysis and model building:

uv run python -m examples.data_science

Web Research Pipeline - Search-based research with information extraction:

uv run python -m examples.web_researcher

Basic API Pattern

Here's how to use ContextAgent in your own code:

from pipelines.data_scientist import DataScientistPipeline, DataScienceQuery

# Initialize pipeline with config
pipe = DataScientistPipeline("pipelines/configs/data_science.yaml")

# Create a query
query = DataScienceQuery(
    prompt="Analyze the dataset and build a predictive model",
    data_path="data/banana_quality.csv"
)

# Execute
pipe.run_sync(query)

Web UI (Pipeline Manager)

Run the lightweight Flask web UI to submit and monitor pipelines with live logs:

uv run python frontend/app.py --host localhost --port 9090 --debug

Then open http://localhost:9090 in your browser. The UI streams live status and panels from the running pipeline and lets you stop active runs.

Steps to Build Your Own System

๐Ÿ› ๏ธ Steps to Build Your Own System

ContextAgent uses a PyTorch-like API for building multi-agent systems. Follow these steps to create your own pipeline:

Step 1 - Define Pipeline Class

Inherit from BasePipeline and call super().__init__(config):

from pipelines.base import BasePipeline
from pydantic import BaseModel

class YourPipeline(BasePipeline):
    def __init__(self, config):
        super().__init__(config)
        # Your initialization here

Step 2 - Create Context and Bind Agents

Create a centralized Context, get the LLM, and bind agents:

from contextagent.agent import ContextAgent
from contextagent.context import Context

class YourPipeline(BasePipeline):
    def __init__(self, config):
        super().__init__(config)

        self.context = Context(["profiles", "states"])
        llm = self.config.llm.main_model

        # Manager agent example
        self.routing_agent = ContextAgent(self.context, profile="routing", llm=llm)

        # Tool agents example
        self.tool_agents = {
            "data_loader": ContextAgent(self.context, profile="data_loader", llm=llm),
            "analyzer": ContextAgent(self.context, profile="analyzer", llm=llm),
            # ... add more agents
        }
        self.context.state.register_tool_agents(self.tool_agents)

Step 3 - Define Async Run with @autotracing

Define your workflow in an async run() method:

import asyncio
from pipelines.base import autotracing

class YourPipeline(BasePipeline):
    @autotracing()
    async def run(self, query: YourQuery):
        self.context.state.set_query(query)

        while self.iteration < self.max_iterations:
            self.iterate()

            # Call agents directly
            routing_result = await self.routing_agent(query)

Step 4 - Define Query Model and Execute

Create a Pydantic model and run your pipeline:

class YourQuery(BaseModel):
    prompt: str
    # Add your custom fields

# Execute
pipe = YourPipeline("pipelines/configs/your_config.yaml")
query = YourQuery(prompt="Your task here")
result = pipe.run_sync(query)

Full Example Reference

See complete implementations in:

๐Ÿ—๏ธ Architecture

ContextAgent is organized around a central conversation state and a profile-driven agent system. All agents are coordinated through a unified Context that manages iteration state and shared information.

Core Components:

  • pipelines/ โ€“ Workflow orchestration and configuration management
  • contextagent/agent/ โ€“ ContextAgent implementation with context awareness and execution tracking
  • contextagent/context/ โ€“ Centralized conversation state and coordination
  • contextagent/profiles/ โ€“ Agent profiles defining capabilities (manager, data, web, code, etc.)
  • contextagent/tools/ โ€“ Tool implementations for data processing, web operations, and code execution
  • examples/ โ€“ Example pipelines demonstrating usage
  • frontend/ โ€“ Web UI for pipeline management and monitoring

Project Structure:

contextagent/
โ”œโ”€โ”€ pipelines/          # Workflow orchestration
โ”œโ”€โ”€ contextagent/
โ”‚   โ”œโ”€โ”€ agent/          # ContextAgent implementation
โ”‚   โ”œโ”€โ”€ context/        # Conversation state management
โ”‚   โ”œโ”€โ”€ profiles/       # Agent profiles (manager, data, web, code)
โ”‚   โ”œโ”€โ”€ tools/          # Tool implementations
โ”‚   โ””โ”€โ”€ artifacts/      # Output formatting
โ”œโ”€โ”€ examples/           # Example pipelines
โ””โ”€โ”€ frontend/           # Web UI

For more details, see the full documentation.

๐Ÿ“Š Benchmarks

ContextAgent's context-central design has been validated on multiple research benchmarks:

  • Data Science Tasks: Efficient context sharing enables streamlined automated ML pipelines
  • Complex Reasoning: Centralized state tracking improves multi-step reasoning coordination
  • Deep Research: Search based complex reasoning and report generation

Detailed benchmark results and comparisons coming soon.

๐Ÿ—บ๏ธ Roadmap

  • Persistence Process - Stateful agent workflows
  • Experience Learning - Memory-based reasoning
  • Tool Design - Dynamic tool creation
  • Frontend Support - Enhanced web UI for system interaction and monitoring
  • MCP Support - Full Model Context Protocol integration for extended agent capabilities
  • Claude Code Skill Support - Native integration with Claude Code environment
  • Workflow RAG - Retrieval-augmented generation for complex workflows

๐Ÿ“š Documentation

More details are available at Documentation.

๐Ÿ™ Acknowledgements

ContextAgent's context-central design is inspired by the multi-agent systems research community and best practices in distributed state management. We are particularly grateful to:

  • OpenAI Agents SDK - For providing a lightweight, powerful framework for multi-agent workflows and the financial research agent example that demonstrates structured research patterns.
  • Youtu-Agent - For its flexible agent framework architecture with open-source model support and tool generation capabilities.
  • agents-deep-research - For its iterative deep research implementation showcasing multi-agent orchestration for complex reasoning tasks.

We thank the developers of these frameworks and the broader LLM community whose work informed this architecture.

๐Ÿค Contributing

We welcome contributions! ContextAgent is designed to be a community resource for multi-agent research. Please open an issue or submit a pull request.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“– Citation

If you use ContextAgent in your research, please cite:

@misc{contextagent2025,
  title={ContextAgent: Agent from Zero},
  author={Zhimeng Guo, Hangfan Zhang, Siyuan Xu, Huaisheng Zhu, Teng Xiao, Jingyi Chen, Minhao Cheng},
  year={2025},
  publisher = {GitHub},
  journal = {GitHub repository},
  url={https://github.com/context-machine-lab/contextagent}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contextagent-0.1.1.tar.gz (86.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

contextagent-0.1.1-py3-none-any.whl (112.0 kB view details)

Uploaded Python 3

File details

Details for the file contextagent-0.1.1.tar.gz.

File metadata

  • Download URL: contextagent-0.1.1.tar.gz
  • Upload date:
  • Size: 86.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for contextagent-0.1.1.tar.gz
Algorithm Hash digest
SHA256 af0d3156cccae0e56aa37c29ec8745a9ddc0d913f2c059b3efa0e40139843138
MD5 12299561a055f42d5cf8ceaf7092351d
BLAKE2b-256 2f2f6f3032c37b41cfca1ea128c86ae7c6dbd60ccd0e984575de7a932f2d36f2

See more details on using hashes here.

File details

Details for the file contextagent-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: contextagent-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 112.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for contextagent-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1dbf254b6314534a670c8a561a7a41fb751982d9b520105949a78905357d0d07
MD5 a10f2a18ffed598fe2d95f0a2f4c11c5
BLAKE2b-256 401392f33c0a6f4ca82f172916e9d3585855b091580e9b48b9aac4b207c00f7f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page