Skip to main content

A production-ready, observable, and reliable AI agent orchestration framework.

Project description

FreePalestine.Dev image

PyPI - Version CI License

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

  1. PlannerAgent - Generates multi-step plans from natural language
  2. Orchestrator - Executes plans with parallel steps and Saga rollback
  3. ToolAgent - ReAct reasoning loop with tool execution
  4. ExecutionTracer - Captures every decision for observability
  5. 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


Star us on GitHub if AgentHelm helps you build production-ready agents!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agenthelm-0.3.0.tar.gz (51.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agenthelm-0.3.0-py3-none-any.whl (49.9 kB view details)

Uploaded Python 3

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

Hashes for agenthelm-0.3.0.tar.gz
Algorithm Hash digest
SHA256 43f0d365843ce982f9f835de41ecab1081d52f676ec13b2d00e44b0e53848677
MD5 eab44d1c58da78ea31bc41ca9de26074
BLAKE2b-256 a48a7ca573d8a5b395b8d802add34c5ad2b60652d2521931efce7d1226d779ba

See more details on using hashes here.

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

Hashes for agenthelm-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0076c9c60476bb373b4a1e69a428f1613fbe84a5b6a1ad10c2e1f33f0d5cbb8
MD5 1d7d44753ee0f39c462010c12f082f7e
BLAKE2b-256 0f4f8bb522d01b36e015f95a35efa8b082a0ce2f85afc8960c4e45623e75d735

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page