Agent Testing Library
This repository provides a comprehensive framework for building, testing, and orchestrating agentic workflows in Python. It includes utilities, fixtures, logging, and a rich set of examples demonstrating integration with various agentic frameworks and orchestration patterns.
Project Structure
-
agent_test/: Core testing library for agents
- src/agent_utils/: Utilities for agent orchestration and metadata
remoterunnable_utils.py,models/agent_info.py,models/api_mock_type.py,models/global_metadata.py
- common/: Logging and shared utilities
agent_test_logger.py
- fixture/: Test fixtures and API mocks
fixture_class.py,mock_api/(various protocol mocks)
- test/: Unit tests for all modules
test_remoterunnable_utils.py,test_agent_info.py,test_api_mock_type.py,test_global_metadata.py,test_agent_test_logger.py,test_fixture_class.py
- src/agent_utils/: Utilities for agent orchestration and metadata
-
examples/: Practical agentic workflow examples
- common/: Shared example code
api1/api_code.py,worker1/main.py,worker2/main.py,worker3/main.py
- crewai/: CrewAI orchestration example
orchestrator/orchestrator_code.py
- langgraph/: LangGraph agentic workflows
prompt_agentic/asynchronous/orchestrator_code.py,prompt_agentic/asynchronous/test_orchestrator.pyprompt_agentic/synchronous/orchestrator_code.py,prompt_agentic/synchronous/test_orchestrator.pysimple_graph/orchestrator_code.py,simple_graph/test_orchestrator.py
- common/: Shared example code
Examples Section
The examples/ directory demonstrates how to build and orchestrate agentic workflows using different frameworks and patterns. Below are direct code snippets from key example files:
common/api1/api_code.py
def api_call(input_data):
# Simulate API logic
return {"result": f"Processed {input_data}"}
common/worker1/main.py
from common.api1.api_code import api_call
def worker1_task(data):
response = api_call(data)
print("Worker1 received:", response)
crewai/orchestrator/orchestrator_code.py
def orchestrate_agents(agent_list, task):
results = []
for agent in agent_list:
result = agent.run(task)
results.append(result)
return results
langgraph/prompt_agentic/asynchronous/orchestrator_code.py
import asyncio
async def async_orchestrate(agents, task):
tasks = [agent.run_async(task) for agent in agents]
return await asyncio.gather(*tasks)
langgraph/prompt_agentic/synchronous/orchestrator_code.py
def sync_orchestrate(agents, task):
return [agent.run(task) for agent in agents]
langgraph/simple_graph/orchestrator_code.py
def simple_graph_orchestrate(nodes, input_data):
output = input_data
for node in nodes:
output = node.process(output)
return output
Testing
Unit tests are provided in the agent_test/test/ directory. Run all tests with:
pytest agent_test/test
License
See LICENSE for details.
Future Work
Agentic Framework Alternatives (besides langgraph):
CrewAI (multi-agent orchestration) Autogen (Microsoft’s multi-agent framework) LangChain (chains, agents, tools) Haystack (for RAG and agent pipelines) OpenAI Function Calling (tool-using agents) Semantic Kernel (Microsoft’s orchestration) Custom agent frameworks (your own classes) HuggingFace Transformers Agents LlamaIndex (for agentic workflows) DSPy (for programmatic LLM pipelines) PromptChainer (open-source agentic framework) Direct function/callback-based agents
Release files for agents-multiproject 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agents_multiproject-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / agents_multiproject-0.1.0-py3-none-any.whl
| Download URL | agents_multiproject-0.1.0-py3-none-any.whl |
|---|---|
| Size | 35.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2a90fb8ad03ab39f64b76ff016c407666c01fc8f08ebc9ada560670f2aa2b6cd
|
|
BLAKE2b-256 checksum How to use checksums |
7f720226f672fa6140fcd2a94dbedcdd99a9ee85d742c3b3cf8c215a3c04d683
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|