AgentArea Agents SDK
Independent SDK for Agent Networks, Task Orchestration, and Distributed Runners
AgentArea Agents SDK enables building scalable agent networks with task-driven workflows, featuring zero dependencies, multi-provider LLM support, extensible tools, and integration with independent runners like Temporal, Restate, or Dapr for distributed execution.
✨ Key Features
- 🌐 Agent Networks: Multi-agent collaboration with event-driven communication and orchestration
- 📋 Task Management: Comprehensive task creation, assignment, progress tracking, and evaluation
- 🏃 Independent Runners: Extensible base for distributed execution using Temporal, Restate, Dapr, or custom runners
- 🤖 Multi-Provider LLM Support: Unified interface for OpenAI, Claude, Ollama, and 100+ models via LiteLLM
- 🛠️ Extensible Tool System: Built-in tools for calculations, MCP integration, human-in-loop, and task operations
- ⚡ ReAct Framework: Structured reasoning and acting with streaming support for networked agents
- 🔒 Type Safety: Comprehensive Pydantic models and type hints throughout
- 🚀 Async/Await Ready: Full asynchronous support for efficient, distributed execution
- 📊 Comprehensive Testing: Unit, integration, and distributed workflow tests with 50%+ coverage
- 📚 Developer Friendly: Clean architecture, detailed docs, and easy integration for scalable systems
💬 Contact
Welcome to join our community on
| Discord | |
|---|---|
| opensource@agentarea.ai |
📋 Table of Contents
- 🚀 Quick Start
- 🌐 Agent Networks
- 📋 Task Management
- 🏃 Distributed Runners
- 📚 Examples
- 🏗️ Architecture
- 🔌 Components
- 📖 Supported LLM Providers
- 🧪 Testing
- 💻 Development
- 🤝 Contributing
- 📄 License
- 👥 Contributors
🚀 Quick Start
Prerequisites
- Python 3.11 or higher
- pip package manager
Installation
From PyPI (when published):
pip install agentarea-agents-sdk
From source (development):
# Clone the repository
git clone https://github.com/agentarea/agentarea-agents-sdk.git
cd agentarea-agents-sdk
# Install in editable mode with dev dependencies
pip install -e .[dev]
Basic Agent Network Example
Create a simple agent network with task assignment.
import asyncio
from agentarea.agent_kit.agents.network import AgentNetwork
from agentarea.agent_kit.agents import create_agent
from agentarea.agent_kit.tasks.tasks import create_task
async def main():
# Create agents in a network
network = AgentNetwork()
math_agent = create_agent(
name="Math Agent",
instruction="You are a math specialist.",
model="ollama_chat/qwen2.5"
)
coordinator = create_agent(
name="Coordinator",
instruction="Assign tasks to specialists.",
model="ollama_chat/qwen2.5"
)
network.add_agent(math_agent)
network.add_agent(coordinator)
# Create and assign a task
task = create_task(
description="Calculate 25 * 4 + 15",
assignee="Math Agent"
)
network.assign_task(task)
# Run the network
async for event in network.run():
print(f"Network event: {event}")
asyncio.run(main())
Task Orchestration Example
Manage tasks across agents.
import asyncio
from agentarea.agent_kit.tasks.task_service import TaskService
from agentarea.agent_kit.agents import create_agent
async def task_example():
service = TaskService()
agent = create_agent(
name="Task Agent",
instruction="Handle assigned tasks.",
model="openai/gpt-4"
)
# Create task
task_id = await service.create_task(
description="Research AI trends",
agent=agent
)
# Monitor progress
progress = await service.get_task_progress(task_id)
print(f"Task progress: {progress}")
# Complete task
await service.complete_task(task_id, result="AI trends summary")
asyncio.run(task_example())
🌐 Agent Networks
The SDK provides AgentNetwork for building multi-agent systems:
- Event-driven communication between agents
- Role-based agent assignment
- Network orchestration for complex workflows
- Integration with tasks for distributed processing
Example: See basic network example above. For advanced setups, use network.py for custom topologies.
📋 Task Management
Robust task system via tasks/ module:
Taskcreation with descriptions, assignees, and goalsTaskServicefor CRUD operations (create, read, update, delete)- Progress evaluation with
GoalProgressEvaluator - Human-in-loop integration for oversight
- Toolset for task-related operations (e.g.,
TasksToolset)
Supports hierarchical tasks and dependencies for orchestration.
🏃 Distributed Runners
Extensible runner system for independent deployment:
BaseAgentRunner: Abstract base for custom runners- Integration points for Temporal (workflow orchestration), Restate (stateful workflows), Dapr (service invocation)
- Async execution with state persistence
- Scalable for cloud-native environments
Example integration (Temporal):
from temporalio import workflow
from agentarea.agent_kit.runners import BaseAgentRunner
class TemporalRunner(BaseAgentRunner):
@workflow.defn
async def run_workflow(self, agent, task):
# Implement Temporal workflow
return await self.execute_agent(agent, task)
Adapt for Restate or Dapr via service calls and state management.
📚 Examples
Run built-in examples:
# Network example
python examples/test_agentic_network.py
# Task example (adapt from tests)
python -m agentarea.agent_kit.example
Examples demonstrate:
- Agent networks and communication
- Task creation and assignment
- Distributed runner stubs
- Tool usage in networked contexts
See examples/ for more.
🏗️ Architecture
Modular design focused on networks, tasks, and runners:
agentarea-agents-sdk/
├── src/
│ └── agentarea.agent_kit/
│ ├── agents/ # Agents and networks
│ │ ├── agent.py # Base Agent
│ │ ├── network.py # AgentNetwork
│ │ └── multi_agent.py
│ ├── tasks/ # Task management
│ │ ├── tasks.py # Task models
│ │ └── task_service.py
│ ├── runners/ # Execution engines
│ │ └── base.py # BaseAgentRunner
│ ├── models/ # LLM integration
│ ├── tools/ # Tool system (incl. tasks_toolset)
│ ├── context/ # Context for networks
│ ├── goal/ # Task evaluation
│ └── prompts.py
├── tests/ # Tests for networks/tasks/runners
├── examples/ # Network and task examples
├── docs/
├── README.md
├── LICENSE
└── pyproject.toml
🔌 Components
Agent Networks (agents/network.py)
AgentNetwork: Orchestrate multiple agents- Event handling and inter-agent messaging
- Task routing and coordination
Task Management (tasks/)
Task: Core task entityTaskService: Service layer for operations- Integration with agents and tools
Distributed Runners (runners/)
BaseAgentRunner: For custom implementations- Support for stateful, distributed execution
Other Components
- LLM Models: Provider-agnostic
- Tools: Extensible with task-specific tools
- Prompts: ReAct for networked reasoning
📖 Supported LLM Providers
Via LiteLLM (100+ models). See examples above for usage.
OpenAI
model = LLMModel(provider_type="openai", model_name="gpt-4", api_key="your-key")
Anthropic
model = LLMModel(provider_type="anthropic", model_name="claude-3-opus-20240229", api_key="your-key")
Ollama
model = LLMModel(provider_type="ollama_chat", model_name="qwen2.5")
Full list: LiteLLM docs.
🧪 Testing
pip install -e .[dev]
pytest -q
# Network and task tests
pytest tests/test_agent.py -v
pytest tests/test_task_orchestration.py -v
pytest --cov=src/agentarea.agent_kit --cov-report=term-missing
Includes tests for networks, tasks, and runner integrations.
💻 Development
Setup:
git clone https://github.com/agentarea/agentarea-agents-sdk.git
cd agentarea-agents-sdk
python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
# Lint, type check, test
ruff check src tests
mypy src
pytest
Uses Ruff, MyPy, Pytest. Focus on network/task coverage.
🤝 Contributing
- Fork the repo
- Create feature branch:
git checkout -b feature/network-enhancement - Commit:
git commit -m 'Enhance agent networks' - Push:
git push origin feature/network-enhancement - Open PR
Emphasize contributions to networks, tasks, runners. Guidelines: PEP 8, types, tests.
See CONTRIBUTING.md for details.
📄 License
MIT License - see LICENSE.
👥 Contributors ✨
Thanks to these wonderful people:
This project follows the all-contributors specification.
Release files for agentarea-agents-sdk 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agentarea_agents_sdk-0.1.0.tar.gz | 8.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentarea_agents_sdk-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 78.4 kB
Release files / agentarea_agents_sdk-0.1.0.tar.gz
| Download URL | agentarea_agents_sdk-0.1.0.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4ad31b34692f218d1fd0d8d355780f603ed742d4bd1d4e2bc25dae2ccee185e7
|
|
BLAKE2b-256 checksum How to use checksums |
4df3843e8dc8178e79eda9051c3d8e1373a0a6c1413c6a83b6f40cc1d59abb1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.12
|
Release files / agentarea_agents_sdk-0.1.0-py3-none-any.whl
| Download URL | agentarea_agents_sdk-0.1.0-py3-none-any.whl |
|---|---|
| Size | 70.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7cca52ca41e24a8d3dff14db654789a40ba81158843f49dfcc9aa54b41e74f69
|
|
BLAKE2b-256 checksum How to use checksums |
7b15364af78efb08cfb832e798fc5c4a0b5a3e095725b2c2914b043044d92280
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.12
|