Agent SDK for AgentArea - agentic AI components
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentarea_agents_sdk-0.1.0.tar.gz.
File metadata
- Download URL: agentarea_agents_sdk-0.1.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ad31b34692f218d1fd0d8d355780f603ed742d4bd1d4e2bc25dae2ccee185e7
|
|
| MD5 |
24504df18f85fe99f8624820f75a5cc5
|
|
| BLAKE2b-256 |
4df3843e8dc8178e79eda9051c3d8e1373a0a6c1413c6a83b6f40cc1d59abb1d
|
File details
Details for the file agentarea_agents_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agentarea_agents_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 70.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cca52ca41e24a8d3dff14db654789a40ba81158843f49dfcc9aa54b41e74f69
|
|
| MD5 |
fd69811e17fdde7d4949d39927a692ab
|
|
| BLAKE2b-256 |
7b15364af78efb08cfb832e798fc5c4a0b5a3e095725b2c2914b043044d92280
|