A production-ready, observable, and reliable AI agent orchestration framework.
Project description
AgentHelm
Production-Ready Orchestration for AI Agents
AgentHelm is a lightweight Python framework for building AI agents with a focus on production-readiness. Built on DSPy, it provides plan-driven execution, full observability, and transactional safety guarantees.
✨ Key Features
🧠 DSPy-Native Agents
import dspy
from agenthelm import ToolAgent, tool
@tool()
def search(query: str) -> str:
"""Search the web."""
return f"Results for: {query}"
lm = dspy.LM("mistral/mistral-large-latest")
agent = ToolAgent(name="researcher", lm=lm, tools=[search])
result = agent.run("Find AI news")
📋 Plan-Driven Execution
# Generate a multi-step plan
agenthelm plan "Build a web scraper" -o plan.yaml
# Review and execute
agenthelm execute plan.yaml
🔍 Full Observability
# View execution traces
agenthelm traces list
# Filter and export
agenthelm traces filter --status failed
agenthelm traces export -o report.md -f md
🔗 MCP Protocol Support
# Connect to MCP servers
agenthelm mcp list-tools uvx mcp-server-time
agenthelm mcp run uvx mcp-server-time -t "What time is it?"
🛡️ Transactional Safety
@tool(compensating_tool="reverse_payment")
def process_payment(amount: float) -> dict:
"""Process payment - rolls back on failure."""
return payment_api.charge(amount)
@tool(requires_approval=True)
def delete_data(id: str) -> bool:
"""Dangerous operation - requires approval."""
return db.delete(id)
🚀 Quick Start
Installation
pip install agenthelm
CLI
# Initialize configuration
agenthelm init
# Run a simple task
agenthelm run "What is 2+2?"
# Interactive chat
agenthelm chat
# Generate and execute plans
agenthelm plan "Build a calculator" -o plan.yaml
agenthelm execute plan.yaml
Python SDK
import dspy
from agenthelm import ToolAgent, tool, ExecutionTracer
from agenthelm.core.storage import SqliteStorage
@tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
# Create agent with tracing
lm = dspy.LM("mistral/mistral-large-latest")
tracer = ExecutionTracer(storage=SqliteStorage("traces.db"))
agent = ToolAgent(
name="calculator",
lm=lm,
tools=[add],
tracer=tracer,
)
result = agent.run("What is 15 + 27?")
print(result.answer) # "42"
print(f"Cost: ${result.total_cost_usd:.4f}")
📦 What's Included
| Component | Description |
|---|---|
ToolAgent |
ReAct-style agent with tool execution |
PlannerAgent |
LLM-backed multi-step planning |
Orchestrator |
DAG execution with parallel steps |
ExecutionTracer |
Full observability with storage backends |
MCPToolAdapter |
Model Context Protocol integration |
MemoryHub |
Short-term and semantic memory |
@tool decorator |
Approval, retries, compensation, timeout |
| CLI | run, plan, execute, chat, traces, mcp |
| OpenTelemetry/Jaeger | Distributed tracing support |
🔧 CLI Commands
| Command | Description |
|---|---|
agenthelm run "task" |
Execute a task with ToolAgent |
agenthelm plan "task" |
Generate an execution plan |
agenthelm execute file |
Run a plan from YAML |
agenthelm chat |
Interactive REPL mode |
agenthelm traces list |
View execution traces |
agenthelm traces export |
Export to JSON/CSV/Markdown |
agenthelm mcp list-tools |
List MCP server tools |
agenthelm config set |
Configure settings |
📊 Observability
Trace Storage
Traces are automatically saved to ~/.agenthelm/traces.db:
# Custom storage path
agenthelm run "task" -s ./my_traces.db
# View traces
agenthelm traces list
agenthelm traces show 0
# Filter and export
agenthelm traces filter --tool search --status success
agenthelm traces export -o report.md -f md
OpenTelemetry / Jaeger
# Start Jaeger
docker run -d -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one
# Run with tracing
agenthelm run "task" --trace
# View in Jaeger UI: http://localhost:16686
🏗️ Architecture
graph TD
A[Task] --> B[PlannerAgent]
B --> C[Plan with Steps]
C --> D[Orchestrator]
D --> E[ToolAgent 1]
D --> F[ToolAgent 2]
E --> G[Tool Execution]
F --> G
G --> H[ExecutionTracer]
H --> I[Storage Backend]
Key Components
- PlannerAgent - Generates multi-step plans from natural language
- Orchestrator - Executes plans with parallel steps and Saga rollback
- ToolAgent - ReAct reasoning loop with tool execution
- ExecutionTracer - Captures every decision for observability
- MCPClient - Connects to external MCP servers
📚 Documentation
📖 Full Documentation: https://hadywalied.github.io/agenthelm/
🗺️ Roadmap
✅ v0.3.0 (Current)
- DSPy-native agents (ToolAgent, PlannerAgent)
- Plan-driven execution with YAML export
- Multi-agent orchestration with Saga pattern
- MCP protocol integration
- Full CLI with traces, chat, execute
- OpenTelemetry/Jaeger support
- Cost and token tracking
🔜 v0.4.0 (Planned)
- Budget enforcement (tokens, time, I/O)
- Checkpointing for resumable workflows
- Policy engine for constraints
- Web dashboard for trace visualization
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
- 🐛 Bug reports
- 💡 Feature requests
- 📖 Documentation improvements
- 🔧 Code contributions
📄 License
MIT License - see LICENSE file for details.
🔗 Links
- Documentation: hadywalied.github.io/agenthelm
- GitHub: github.com/hadywalied/agenthelm
- PyPI: pypi.org/project/agenthelm
- Author: Hady Walied | LinkedIn
⭐ Star us on GitHub if AgentHelm helps you build production-ready agents!
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 agenthelm-0.3.0.tar.gz.
File metadata
- Download URL: agenthelm-0.3.0.tar.gz
- Upload date:
- Size: 51.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43f0d365843ce982f9f835de41ecab1081d52f676ec13b2d00e44b0e53848677
|
|
| MD5 |
eab44d1c58da78ea31bc41ca9de26074
|
|
| BLAKE2b-256 |
a48a7ca573d8a5b395b8d802add34c5ad2b60652d2521931efce7d1226d779ba
|
File details
Details for the file agenthelm-0.3.0-py3-none-any.whl.
File metadata
- Download URL: agenthelm-0.3.0-py3-none-any.whl
- Upload date:
- Size: 49.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0076c9c60476bb373b4a1e69a428f1613fbe84a5b6a1ad10c2e1f33f0d5cbb8
|
|
| MD5 |
1d7d44753ee0f39c462010c12f082f7e
|
|
| BLAKE2b-256 |
0f4f8bb522d01b36e015f95a35efa8b082a0ce2f85afc8960c4e45623e75d735
|