Files
python-sdk/docs/tools/agent.md
T
zeekay b24f09e28c docs(tools): add comprehensive documentation for all tool packages
Add detailed documentation with examples for:
- hanzo-tools-fs: read, write, edit, tree, find, search, ast
- hanzo-tools-shell: cmd, ps, zsh, bash, auto-backgrounding
- hanzo-tools-browser: 70+ Playwright actions, device emulation
- hanzo-tools-memory: memories, facts, knowledge bases, scopes
- hanzo-tools-reasoning: think and critic tools
- hanzo-tools-lsp: go-to-definition, references, rename, hover
- hanzo-tools-refactor: rename, extract, inline, batch operations
- hanzo-tools-agent: multi-agent orchestration, consensus, swarm
- hanzo-tools-llm: unified LLM interface with 100+ models

Each doc includes:
- Installation instructions
- Quick start examples
- Full API reference
- Usage examples
- Best practices
2026-01-05 17:27:46 -08:00

364 lines
8.8 KiB
Markdown

# hanzo-tools-agent
Multi-agent orchestration with CLI spawning, DAG execution, swarm distribution, and Metastable consensus.
## Installation
```bash
pip install hanzo-tools-agent
```
With optional features:
```bash
pip install hanzo-tools-agent[api] # httpx for direct API mode
pip install hanzo-tools-agent[perf] # uvloop for high performance
pip install hanzo-tools-agent[full] # All features
```
## Overview
`hanzo-tools-agent` provides:
- **agent** - Multi-agent orchestration (run, dag, swarm, consensus, dispatch)
- **iching** - I Ching wisdom for engineering decisions
- **review** - Code review tool
## Quick Start
```python
# Run a single agent
agent(action="run", name="claude", prompt="Explain this code")
# List available agents
agent(action="list")
# Run consensus across multiple models
agent(action="consensus", prompt="Best approach for caching?", agents=["claude", "gemini", "codex"])
# Swarm pattern - distribute work
agent(action="swarm", items=["file1.py", "file2.py"], template="Review {item}")
# DAG execution with dependencies
agent(action="dag", tasks=[
{"id": "analyze", "prompt": "Analyze the codebase"},
{"id": "plan", "prompt": "Create implementation plan", "after": ["analyze"]}
])
```
## Available Agents
| Agent | Description | API Key Env |
|-------|-------------|-------------|
| `claude` | Anthropic Claude Code CLI | `ANTHROPIC_API_KEY` |
| `codex` | OpenAI Codex CLI | `OPENAI_API_KEY` |
| `gemini` | Google Gemini CLI | `GOOGLE_API_KEY` |
| `grok` | xAI Grok CLI | `XAI_API_KEY` |
| `qwen` | Alibaba Qwen CLI | `DASHSCOPE_API_KEY` |
| `vibe` | Vibe coding agent | - |
| `dev` | Hanzo Dev agent | - |
## Actions Reference
### run
Run a single agent with a prompt.
```python
# Default agent (claude in Claude Code environment)
agent(action="run", prompt="Explain this error")
# Specific agent
agent(action="run", name="gemini", prompt="Review this code")
# With working directory
agent(action="run", name="codex", prompt="Fix the tests", cwd="/project/path")
# With timeout
agent(action="run", name="claude", prompt="Complex task", timeout=300)
```
**Parameters:**
- `name`: Agent to use (default: auto-detect)
- `prompt` (required): Task for the agent
- `cwd`: Working directory
- `timeout`: Timeout in seconds (default: 300)
### dag
Execute tasks with dependencies using a DAG (Directed Acyclic Graph).
```python
agent(
action="dag",
tasks=[
{"id": "research", "prompt": "Research best practices for caching"},
{"id": "design", "prompt": "Design cache architecture", "after": ["research"]},
{"id": "implement", "prompt": "Implement the cache", "after": ["design"]},
{"id": "test", "prompt": "Write tests", "after": ["implement"]}
]
)
```
**Task format:**
- `id` (required): Unique task identifier
- `prompt` (required): Task description
- `after`: List of task IDs that must complete first
- `agent`: Specific agent for this task (optional)
### swarm
Distribute work across multiple agents in parallel.
```python
# Process multiple files
agent(
action="swarm",
items=["auth.py", "api.py", "models.py"],
template="Review {item} for security issues",
max_concurrent=5
)
# Multiple prompts
agent(
action="swarm",
items=["Add error handling", "Add logging", "Add tests"],
template="{item} to the authentication module"
)
```
**Parameters:**
- `items` (required): List of items to process
- `template` (required): Prompt template with `{item}` placeholder
- `max_concurrent`: Maximum parallel agents (default: 100)
### consensus
Run Metastable consensus across multiple models.
```python
agent(
action="consensus",
prompt="What's the best database for this use case?",
agents=["claude", "gemini", "codex"],
rounds=3, # Consensus rounds
k=3, # Sample size per round
alpha=0.6, # Agreement threshold
beta_1=0.5, # Preference threshold
beta_2=0.8 # Decision threshold
)
```
**Parameters:**
- `prompt` (required): Question for consensus
- `agents`: Models to participate (default: all available)
- `rounds`: Number of consensus rounds (default: 3)
- `k`: Sample size per round (default: 3)
- `alpha`: Agreement threshold (default: 0.6)
- `beta_1`: Phase I preference threshold (default: 0.5)
- `beta_2`: Phase II decision threshold (default: 0.8)
**Consensus Protocol:**
Based on [Metastable Consensus](https://github.com/luxfi/consensus):
- Phase I (Sampling): k-peer sampling, confidence accumulation
- Phase II (Finality): Threshold aggregation, winner synthesis
### dispatch
Route different tasks to different agents.
```python
agent(
action="dispatch",
tasks=[
{"agent": "claude", "prompt": "Review code quality"},
{"agent": "codex", "prompt": "Suggest optimizations"},
{"agent": "gemini", "prompt": "Check documentation"}
]
)
```
### list
List all available agents.
```python
agent(action="list")
```
**Response:**
```json
{
"agents": ["claude", "codex", "gemini", "grok", "qwen", "vibe", "dev"],
"available": ["claude", "gemini"],
"configured": ["claude", "codex", "gemini"]
}
```
### status
Check if a specific agent is available.
```python
agent(action="status", name="claude")
```
### config
Show agent configuration.
```python
agent(action="config")
```
## Agent Configuration
### Config Files
Configure agents via `~/.hanzo/agents/<name>.json`:
```json
{
"cmd": "claude",
"args": ["--print", "--dangerously-skip-permissions"],
"env_key": "ANTHROPIC_API_KEY",
"max_turns": 999,
"session": true,
"model": "claude-3-opus",
"system_prompt": "You are a helpful assistant"
}
```
### Environment Overrides
Override arguments via environment:
```bash
export HANZO_AGENT_CLAUDE_ARGS="--verbose --model claude-3-5-sonnet"
```
### API Mode
Configure direct API calls (no CLI needed):
```json
{
"endpoint": "https://api.openai.com/v1/chat/completions",
"api_type": "openai",
"model": "gpt-4",
"env_key": "OPENAI_API_KEY",
"system_prompt": "You are a helpful assistant"
}
```
## YOLO Mode
All agents are configured with autonomous operation flags:
| Agent | YOLO Flags |
|-------|------------|
| claude | `--dangerously-skip-permissions`, `--print`, `--output-format text` |
| codex | `--full-auto` |
| gemini | `-y`, `-q` |
| grok | `-y` |
| qwen | `--approval-mode yolo`, `-p` |
| vibe | `--auto-approve`, `--max-turns 999`, `-p` |
## Auto-Backgrounding
Long-running agents automatically background after timeout:
```python
# Long task - will auto-background
agent(action="run", name="claude", prompt="Complex refactoring task", timeout=300)
# Check status with ps tool
ps() # List all processes
ps(logs="agent_xxx") # View output
ps(kill="agent_xxx") # Stop process
```
## IChingTool
Apply I Ching wisdom to engineering challenges.
```python
iching(challenge="How should I approach refactoring this legacy codebase?")
```
**Response:**
- Hexagram interpretation
- Relevant Hanzo principles
- Actionable recommendations
## ReviewTool
Request balanced code review.
```python
review(
focus="FUNCTIONALITY",
work_description="Implemented auto-import feature for Go files",
code_snippets=["func AddImport(file string) error { ... }"],
file_paths=["/path/to/import_handler.go"],
context="This will be used to automatically fix missing imports"
)
```
**Focus areas:**
- `GENERAL` - Overall code quality
- `FUNCTIONALITY` - Does it work correctly?
- `READABILITY` - Is it easy to understand?
- `MAINTAINABILITY` - Is it easy to modify?
- `TESTING` - Is it well tested?
- `DOCUMENTATION` - Is it well documented?
- `ARCHITECTURE` - Is the design sound?
## Examples
### Multi-Agent Code Review
```python
# Get perspectives from multiple agents
agent(
action="consensus",
prompt="Review this pull request for issues",
agents=["claude", "gemini", "codex"]
)
```
### Parallel File Processing
```python
# Review all files in parallel
agent(
action="swarm",
items=["src/auth.py", "src/api.py", "src/models.py", "src/utils.py"],
template="Review {item} and suggest improvements",
max_concurrent=4
)
```
### Sequential Workflow
```python
# Plan → Implement → Test
agent(
action="dag",
tasks=[
{"id": "plan", "prompt": "Create implementation plan for user auth"},
{"id": "implement", "prompt": "Implement the plan", "after": ["plan"]},
{"id": "test", "prompt": "Write comprehensive tests", "after": ["implement"]},
{"id": "review", "prompt": "Review implementation", "after": ["test"]}
]
)
```
## Best Practices
1. **Use consensus for decisions** - Multiple perspectives reduce bias
2. **Use swarm for bulk operations** - Parallel processing is faster
3. **Use DAG for workflows** - Dependencies ensure correct ordering
4. **Configure timeouts appropriately** - Complex tasks need more time
5. **Check agent availability** - Use `status` before assuming an agent exists