Metadata-Version: 2.4
Name: pantheon-agents
Version: 0.4.3
Summary: A framework for building distributed evolvable multi-agent system.
Author: Weize Xu, Quan Zhong, Zehua Zeng, Xuehai Wang
License: MIT
Project-URL: Homepage, https://github.com/aristoteleo/pantheon-agents
Project-URL: Repository, https://github.com/aristoteleo/pantheon-agents
Project-URL: Issues, https://github.com/aristoteleo/pantheon-agents/issues
Keywords: multi-agent,llm,ai,distributed,mcp,autonomous-agents
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: tomli>=2.0.1; python_version < "3.11"
Requires-Dist: diff-match-patch>=20241021
Requires-Dist: executor-engine>=0.3.3
Requires-Dist: fire>=0.7.0
Requires-Dist: funcdesc>=0.1.8
Requires-Dist: litellm>=1.81.3
Requires-Dist: loguru>=0.7.3
Requires-Dist: openai>=2.0.0
Requires-Dist: pillow>=10.4.0
Requires-Dist: rich>=14.0.0
Requires-Dist: rich-pyfiglet
Requires-Dist: fastmcp>=2.11.0
Requires-Dist: nats-py>=2.10.0
Requires-Dist: nkeys
Requires-Dist: PyNaCl>=1.5.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: diskcache
Requires-Dist: python-frontmatter>=1.1.0
Requires-Dist: prompt-toolkit>=3.0.50
Requires-Dist: aiofiles>=24.1.0
Requires-Dist: ddgs>=9.5.2
Requires-Dist: crawl4ai>=0.5.0
Requires-Dist: matplotlib>=3.10.3
Requires-Dist: pandas
Requires-Dist: cloudpickle>=3.0.0
Requires-Dist: PyMuPDF>=1.25.5
Requires-Dist: lancedb>=0.20.0
Requires-Dist: jupyter-client>=8.0.0
Requires-Dist: ipykernel>=6.25.0
Requires-Dist: nbformat>=5.10.0
Requires-Dist: jedi>=0.19.0
Requires-Dist: tree-sitter>=0.24.0
Requires-Dist: tree-sitter-python>=0.24.0
Requires-Dist: tree-sitter-javascript>=0.24.0
Requires-Dist: nats-server-bin>=2.10.0
Provides-Extra: dev
Requires-Dist: pytest>=8.3.4; extra == "dev"
Requires-Dist: pytest-asyncio>=0.25.0; extra == "dev"
Requires-Dist: pytest-timeout>=2.3.1; extra == "dev"
Provides-Extra: slack
Requires-Dist: slack-sdk; extra == "slack"
Requires-Dist: slack-bolt; extra == "slack"
Provides-Extra: r
Requires-Dist: rpy2>=3.5.0; extra == "r"
Provides-Extra: knowledge
Requires-Dist: llama-index-core>=0.11.0; extra == "knowledge"
Requires-Dist: llama-index-llms-openai; extra == "knowledge"
Requires-Dist: llama-index-vector-stores-qdrant>=0.3.0; extra == "knowledge"
Requires-Dist: qdrant-client>=1.12.0; extra == "knowledge"
Requires-Dist: llama-index-embeddings-openai>=0.2.0; extra == "knowledge"
Requires-Dist: llama-index-readers-file>=0.2.0; extra == "knowledge"
Requires-Dist: docx2txt>=0.8; extra == "knowledge"
Requires-Dist: fastembed>=0.2.0; extra == "knowledge"
Requires-Dist: llama-index-postprocessor-flashrank-rerank>=0.2.0; extra == "knowledge"
Requires-Dist: llama-index-postprocessor-cohere-rerank; extra == "knowledge"
Requires-Dist: nbconvert>=7.16.0; extra == "knowledge"
Dynamic: license-file

<div align="center">
  <h1> Pantheon </h1>

  <p> A framework for building distributed LLM-based multi-agent systems. </p>

  <p>
    <a href="https://github.com/aristoteleo/pantheon-agents/actions/workflows/test.yml">
        <img src="https://github.com/aristoteleo/pantheon-agents/actions/workflows/test.yml/badge.svg" alt="Build Status">
    </a>
    <a href="https://pypi.org/project/pantheon-agents/">
      <img src="https://img.shields.io/pypi/v/pantheon-agents.svg" alt="Install with PyPi" />
    </a>
    <a href="https://github.com/aristoteleo/pantheon-agents/blob/master/LICENSE">
      <img src="https://img.shields.io/github/license/aristoteleo/pantheon-agents" alt="MIT license" />
    </a>
  </p>
</div>

## Features

- **Multi-Agent Teams**: PantheonTeam, Sequential, Swarm, MoA, and AgentAsToolTeam patterns
- **Rich Toolsets**: File operations, Python/Shell execution, Jupyter notebooks, Web browsing, RAG
- **Interactive REPL**: Full-screen file viewer, syntax highlighting, approval workflows
- **MCP Integration**: Native Model Context Protocol support
- **Learning System**: Skillbook-based agent improvement
- **Distributed Architecture**: NATS-based communication for scalable deployments

## Installation

### Using uv (Recommended)

[uv](https://github.com/astral-sh/uv) is a fast Python package manager that handles dependencies efficiently.

```bash
# Install uv (if not already installed)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# Clone and install
git clone https://github.com/aristoteleo/pantheon-agents.git
cd pantheon-agents
uv sync

# With optional dependencies
uv sync --extra knowledge  # RAG/vector search support
uv sync --extra slack      # Slack integration
uv sync --extra r          # R language support (requires R installed)
```

### Using pip

```bash
# Basic installation
pip install pantheon-agents

# With optional dependencies
pip install "pantheon-agents[knowledge]"  # RAG/vector search support
pip install "pantheon-agents[slack]"      # Slack integration
```

### Development Installation

```bash
git clone https://github.com/aristoteleo/pantheon-agents.git
cd pantheon-agents
uv sync --extra dev --extra knowledge

# Run tests
uv run pytest tests/
```

## Requirements

- Python 3.10+
- API keys for LLM providers (e.g., `OPENAI_API_KEY` for OpenAI models)

## Quick Start

### Using the REPL

The easiest way to start:

```bash
# With uv
uv run python -m pantheon.repl

# Or with pip installation
python -m pantheon.repl
```

### Creating an Agent

```python
import asyncio
from pantheon import Agent

async def main():
    agent = Agent(
        name="assistant",
        instructions="You are a helpful assistant.",
        model="gpt-4o-mini"
    )
    await agent.chat()

asyncio.run(main())
```

### Using Toolsets

```python
from pantheon import Agent
from pantheon.toolsets import FileManagerToolSet, ShellToolSet

agent = Agent(
    name="developer",
    instructions="You are a developer assistant.",
    model="gpt-4o",
    tools=[FileManagerToolSet(), ShellToolSet()]
)
```

### Creating Teams

```python
from pantheon import Agent
from pantheon.team import PantheonTeam

researcher = Agent(name="researcher", instructions="Research topics.")
writer = Agent(name="writer", instructions="Write content.")

team = PantheonTeam([researcher, writer])
await team.chat()
```

## Documentation

See the [docs](docs/) folder for detailed documentation.

## Examples

See the [examples](examples/) folder for usage patterns and implementations.

## License

MIT License
