Skip to main content

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}
}

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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

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