chore: uv for all
This commit is contained in:
@@ -107,7 +107,7 @@ Creates the complete agent architecture:
|
|||||||
- ✅ 1-5 constraints defined
|
- ✅ 1-5 constraints defined
|
||||||
- ✅ 5-10 nodes specified in nodes/__init__.py
|
- ✅ 5-10 nodes specified in nodes/__init__.py
|
||||||
- ✅ 8-15 edges connecting workflow
|
- ✅ 8-15 edges connecting workflow
|
||||||
- ✅ Validated structure (passes `python -m agent_name validate`)
|
- ✅ Validated structure (passes `uv run python -m agent_name validate`)
|
||||||
- ✅ README.md with usage instructions
|
- ✅ README.md with usage instructions
|
||||||
- ✅ CLI commands (info, validate, run, shell)
|
- ✅ CLI commands (info, validate, run, shell)
|
||||||
|
|
||||||
@@ -345,7 +345,7 @@ agent-workflow (meta-skill)
|
|||||||
- Check node IDs match between nodes/__init__.py and agent.py
|
- Check node IDs match between nodes/__init__.py and agent.py
|
||||||
- Verify all edges reference valid node IDs
|
- Verify all edges reference valid node IDs
|
||||||
- Ensure entry_node exists in nodes list
|
- Ensure entry_node exists in nodes list
|
||||||
- Run: `PYTHONPATH=core:exports python -m agent_name validate`
|
- Run: `PYTHONPATH=exports uv run python -m agent_name validate`
|
||||||
|
|
||||||
### "Agent has structure but won't run"
|
### "Agent has structure but won't run"
|
||||||
|
|
||||||
@@ -371,7 +371,7 @@ Run these checks:
|
|||||||
ls exports/my_agent/agent.py
|
ls exports/my_agent/agent.py
|
||||||
|
|
||||||
# Check if it validates
|
# Check if it validates
|
||||||
PYTHONPATH=core:exports python -m my_agent validate
|
PYTHONPATH=exports uv run python -m my_agent validate
|
||||||
|
|
||||||
# Check if tests exist
|
# Check if tests exist
|
||||||
ls exports/my_agent/tests/
|
ls exports/my_agent/tests/
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ initialize → list → identify → check
|
|||||||
### Step 5: Finalize
|
### Step 5: Finalize
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ PYTHONPATH=core:exports python -m file_monitor_agent validate
|
$ PYTHONPATH=exports uv run python -m file_monitor_agent validate
|
||||||
✓ Agent is valid
|
✓ Agent is valid
|
||||||
|
|
||||||
$ PYTHONPATH=core:exports python -m file_monitor_agent info
|
$ PYTHONPATH=exports uv run python -m file_monitor_agent info
|
||||||
Agent: File Monitor & Copy Agent
|
Agent: File Monitor & Copy Agent
|
||||||
Nodes: 7
|
Nodes: 7
|
||||||
Edges: 8
|
Edges: 8
|
||||||
@@ -131,7 +131,7 @@ Tests approved incrementally by user.
|
|||||||
### Step 3: Run Tests
|
### Step 3: Run Tests
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ PYTHONPATH=core:exports pytest exports/file_monitor_agent/tests/
|
$ PYTHONPATH=exports uv run pytest exports/file_monitor_agent/tests/
|
||||||
|
|
||||||
test_constraints.py::test_preserves_originals PASSED
|
test_constraints.py::test_preserves_originals PASSED
|
||||||
test_constraints.py::test_handles_errors PASSED
|
test_constraints.py::test_handles_errors PASSED
|
||||||
@@ -162,7 +162,7 @@ test_edge_cases.py::test_large_files PASSED
|
|||||||
./RUN_AGENT.sh
|
./RUN_AGENT.sh
|
||||||
|
|
||||||
# Or manually
|
# Or manually
|
||||||
PYTHONPATH=core:exports:tools/src python -m file_monitor_agent run
|
PYTHONPATH=exports uv run python -m file_monitor_agent run
|
||||||
```
|
```
|
||||||
|
|
||||||
**Capabilities:**
|
**Capabilities:**
|
||||||
|
|||||||
@@ -287,8 +287,8 @@ This returns JSON with all the goal, nodes, edges, and MCP server configurations
|
|||||||
>
|
>
|
||||||
> ```bash
|
> ```bash
|
||||||
> cd /home/timothy/oss/hive
|
> cd /home/timothy/oss/hive
|
||||||
> PYTHONPATH=core:exports python -m AGENT_NAME validate
|
> PYTHONPATH=exports uv run python -m AGENT_NAME validate
|
||||||
> PYTHONPATH=core:exports python -m AGENT_NAME info
|
> PYTHONPATH=exports uv run python -m AGENT_NAME info
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -298,7 +298,7 @@ This returns JSON with all the goal, nodes, edges, and MCP server configurations
|
|||||||
**RUN validation:**
|
**RUN validation:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /home/timothy/oss/hive && PYTHONPATH=core:exports python -m AGENT_NAME validate
|
cd /home/timothy/oss/hive && PYTHONPATH=exports uv run python -m AGENT_NAME validate
|
||||||
```
|
```
|
||||||
|
|
||||||
- If valid: Agent is complete!
|
- If valid: Agent is complete!
|
||||||
|
|||||||
+4
-4
@@ -18,16 +18,16 @@ Deep-dive research agent that searches 10+ sources and produces comprehensive na
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Show agent info
|
# Show agent info
|
||||||
python -m online_research_agent info
|
uv run python -m online_research_agent info
|
||||||
|
|
||||||
# Validate structure
|
# Validate structure
|
||||||
python -m online_research_agent validate
|
uv run python -m online_research_agent validate
|
||||||
|
|
||||||
# Run research on a topic
|
# Run research on a topic
|
||||||
python -m online_research_agent run --topic "impact of AI on healthcare"
|
uv run python -m online_research_agent run --topic "impact of AI on healthcare"
|
||||||
|
|
||||||
# Interactive shell
|
# Interactive shell
|
||||||
python -m online_research_agent shell
|
uv run python -m online_research_agent shell
|
||||||
```
|
```
|
||||||
|
|
||||||
### Python API
|
### Python API
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ When agent is complete, transition to testing phase:
|
|||||||
|
|
||||||
### Pre-Testing Checklist
|
### Pre-Testing Checklist
|
||||||
|
|
||||||
- [ ] Agent structure validates: `python -m agent_name validate`
|
- [ ] Agent structure validates: `uv run python -m agent_name validate`
|
||||||
- [ ] All nodes defined in nodes/__init__.py
|
- [ ] All nodes defined in nodes/__init__.py
|
||||||
- [ ] All edges connect valid nodes with correct priorities
|
- [ ] All edges connect valid nodes with correct priorities
|
||||||
- [ ] Feedback edge targets have `max_node_visits > 1`
|
- [ ] Feedback edge targets have `max_node_visits > 1`
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ jobs:
|
|||||||
for agent_dir in "${agent_dirs[@]}"; do
|
for agent_dir in "${agent_dirs[@]}"; do
|
||||||
if [ -f "$agent_dir/agent.json" ]; then
|
if [ -f "$agent_dir/agent.json" ]; then
|
||||||
echo "Validating $agent_dir"
|
echo "Validating $agent_dir"
|
||||||
python -c "import json; json.load(open('$agent_dir/agent.json'))"
|
uv run python -c "import json; json.load(open('$agent_dir/agent.json'))"
|
||||||
validated=$((validated + 1))
|
validated=$((validated + 1))
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
+2
-2
@@ -125,7 +125,7 @@ feat(component): add new feature description
|
|||||||
> **Note:** When testing agents in `exports/`, always set PYTHONPATH:
|
> **Note:** When testing agents in `exports/`, always set PYTHONPATH:
|
||||||
>
|
>
|
||||||
> ```bash
|
> ```bash
|
||||||
> PYTHONPATH=core:exports python -m agent_name test
|
> PYTHONPATH=exports uv run python -m agent_name test
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -139,7 +139,7 @@ make test
|
|||||||
cd core && pytest tests/ -v
|
cd core && pytest tests/ -v
|
||||||
|
|
||||||
# Run tests for a specific agent
|
# Run tests for a specific agent
|
||||||
PYTHONPATH=core:exports python -m agent_name test
|
PYTHONPATH=exports uv run python -m agent_name test
|
||||||
```
|
```
|
||||||
|
|
||||||
> **CI also validates** that all exported agent JSON files (`exports/*/agent.json`) are well-formed JSON. Ensure your agent exports are valid before submitting.
|
> **CI also validates** that all exported agent JSON files (`exports/*/agent.json`) are well-formed JSON. Ensure your agent exports are valid before submitting.
|
||||||
|
|||||||
+16
-16
@@ -111,12 +111,12 @@ This installs agent-related Claude Code skills:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Verify package imports
|
# Verify package imports
|
||||||
python -c "import framework; print('✓ framework OK')"
|
uv run python -c "import framework; print('✓ framework OK')"
|
||||||
python -c "import aden_tools; print('✓ aden_tools OK')"
|
uv run python -c "import aden_tools; print('✓ aden_tools OK')"
|
||||||
python -c "import litellm; print('✓ litellm OK')"
|
uv run python -c "import litellm; print('✓ litellm OK')"
|
||||||
|
|
||||||
# Run an agent (after building one via /building-agents-construction)
|
# Run an agent (after building one via /building-agents-construction)
|
||||||
PYTHONPATH=core:exports python -m your_agent_name validate
|
PYTHONPATH=exports uv run python -m your_agent_name validate
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -256,7 +256,7 @@ claude> /testing-agent
|
|||||||
4. **Validate the Agent**
|
4. **Validate the Agent**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
PYTHONPATH=core:exports python -m your_agent_name validate
|
PYTHONPATH=exports uv run python -m your_agent_name validate
|
||||||
```
|
```
|
||||||
|
|
||||||
5. **Test the Agent**
|
5. **Test the Agent**
|
||||||
@@ -302,19 +302,19 @@ If you prefer to build agents manually:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Validate agent structure
|
# Validate agent structure
|
||||||
PYTHONPATH=core:exports python -m agent_name validate
|
PYTHONPATH=exports uv run python -m agent_name validate
|
||||||
|
|
||||||
# Show agent information
|
# Show agent information
|
||||||
PYTHONPATH=core:exports python -m agent_name info
|
PYTHONPATH=exports uv run python -m agent_name info
|
||||||
|
|
||||||
# Run agent with input
|
# Run agent with input
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{
|
PYTHONPATH=exports uv run python -m agent_name run --input '{
|
||||||
"ticket_content": "My login is broken",
|
"ticket_content": "My login is broken",
|
||||||
"customer_id": "CUST-123"
|
"customer_id": "CUST-123"
|
||||||
}'
|
}'
|
||||||
|
|
||||||
# Run in mock mode (no LLM calls)
|
# Run in mock mode (no LLM calls)
|
||||||
PYTHONPATH=core:exports python -m agent_name run --mock --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --mock --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -338,17 +338,17 @@ This generates and runs:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run all tests for an agent
|
# Run all tests for an agent
|
||||||
PYTHONPATH=core:exports python -m agent_name test
|
PYTHONPATH=exports uv run python -m agent_name test
|
||||||
|
|
||||||
# Run specific test type
|
# Run specific test type
|
||||||
PYTHONPATH=core:exports python -m agent_name test --type constraint
|
PYTHONPATH=exports uv run python -m agent_name test --type constraint
|
||||||
PYTHONPATH=core:exports python -m agent_name test --type success
|
PYTHONPATH=exports uv run python -m agent_name test --type success
|
||||||
|
|
||||||
# Run with parallel execution
|
# Run with parallel execution
|
||||||
PYTHONPATH=core:exports python -m agent_name test --parallel 4
|
PYTHONPATH=exports uv run python -m agent_name test --parallel 4
|
||||||
|
|
||||||
# Fail fast (stop on first failure)
|
# Fail fast (stop on first failure)
|
||||||
PYTHONPATH=core:exports python -m agent_name test --fail-fast
|
PYTHONPATH=exports uv run python -m agent_name test --fail-fast
|
||||||
```
|
```
|
||||||
|
|
||||||
### Writing Custom Tests
|
### Writing Custom Tests
|
||||||
@@ -635,10 +635,10 @@ import logging
|
|||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
|
|
||||||
# Run with verbose output
|
# Run with verbose output
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}' --verbose
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}' --verbose
|
||||||
|
|
||||||
# Use mock mode to test without LLM calls
|
# Use mock mode to test without LLM calls
|
||||||
PYTHONPATH=core:exports python -m agent_name run --mock --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --mock --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
+27
-27
@@ -69,9 +69,9 @@ apk add bash git python3 py3-pip nodejs npm curl build-base python3-dev linux-he
|
|||||||
```
|
```
|
||||||
2. Set up Virtual Environment (Required for Python 3.12+):
|
2. Set up Virtual Environment (Required for Python 3.12+):
|
||||||
```
|
```
|
||||||
python3 -m venv venv
|
uv venv
|
||||||
source venv/bin/activate
|
source .venv/bin/activate
|
||||||
pip install --upgrade pip setuptools wheel
|
# uv handles pip/setuptools/wheel automatically
|
||||||
```
|
```
|
||||||
3. Run the Quickstart Script:
|
3. Run the Quickstart Script:
|
||||||
```
|
```
|
||||||
@@ -86,29 +86,29 @@ If you prefer to set up manually or the script fails:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd core
|
cd core
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Install Tools Package
|
### 2. Install Tools Package
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd tools
|
cd tools
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Upgrade OpenAI Package
|
### 3. Upgrade OpenAI Package
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# litellm requires openai >= 1.0.0
|
# litellm requires openai >= 1.0.0
|
||||||
pip install --upgrade "openai>=1.0.0"
|
uv pip install --upgrade "openai>=1.0.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Verify Installation
|
### 4. Verify Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python -c "import framework; print('✓ framework OK')"
|
uv run python -c "import framework; print('✓ framework OK')"
|
||||||
python -c "import aden_tools; print('✓ aden_tools OK')"
|
uv run python -c "import aden_tools; print('✓ aden_tools OK')"
|
||||||
python -c "import litellm; print('✓ litellm OK')"
|
uv run python -c "import litellm; print('✓ litellm OK')"
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Windows Tip:**
|
> **Windows Tip:**
|
||||||
@@ -149,7 +149,7 @@ All agent commands must be run from the project root with `PYTHONPATH` set:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# From /hive/ directory
|
# From /hive/ directory
|
||||||
PYTHONPATH=core:exports python -m agent_name COMMAND
|
PYTHONPATH=exports uv run python -m agent_name COMMAND
|
||||||
```
|
```
|
||||||
|
|
||||||
Windows (PowerShell):
|
Windows (PowerShell):
|
||||||
@@ -163,18 +163,18 @@ python -m agent_name COMMAND
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Validate agent structure
|
# Validate agent structure
|
||||||
PYTHONPATH=core:exports python -m your_agent_name validate
|
PYTHONPATH=exports uv run python -m your_agent_name validate
|
||||||
|
|
||||||
# Show agent information
|
# Show agent information
|
||||||
PYTHONPATH=core:exports python -m your_agent_name info
|
PYTHONPATH=exports uv run python -m your_agent_name info
|
||||||
|
|
||||||
# Run agent with input
|
# Run agent with input
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{
|
||||||
"task": "Your input here"
|
"task": "Your input here"
|
||||||
}'
|
}'
|
||||||
|
|
||||||
# Run in mock mode (no LLM calls)
|
# Run in mock mode (no LLM calls)
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --mock --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --mock --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Building New Agents and Run Flow
|
## Building New Agents and Run Flow
|
||||||
@@ -279,7 +279,7 @@ This workflow orchestrates all agent-building skills to take you from idea → p
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Create virtual environment
|
# Create virtual environment
|
||||||
python3 -m venv .venv
|
uv venv
|
||||||
|
|
||||||
# Activate it
|
# Activate it
|
||||||
source .venv/bin/activate # macOS/Linux
|
source .venv/bin/activate # macOS/Linux
|
||||||
@@ -293,7 +293,7 @@ Always activate the venv before running agents:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
PYTHONPATH=core:exports python -m your_agent_name demo
|
PYTHONPATH=exports uv run python -m your_agent_name demo
|
||||||
```
|
```
|
||||||
|
|
||||||
### PowerShell: “running scripts is disabled on this system”
|
### PowerShell: “running scripts is disabled on this system”
|
||||||
@@ -309,7 +309,7 @@ Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
|
|||||||
**Solution:** Install the core package:
|
**Solution:** Install the core package:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd core && pip install -e .
|
cd core && uv pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
### "ModuleNotFoundError: No module named 'aden_tools'"
|
### "ModuleNotFoundError: No module named 'aden_tools'"
|
||||||
@@ -317,7 +317,7 @@ cd core && pip install -e .
|
|||||||
**Solution:** Install the tools package:
|
**Solution:** Install the tools package:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd tools && pip install -e .
|
cd tools && uv pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
Or run the setup script:
|
Or run the setup script:
|
||||||
@@ -339,7 +339,7 @@ Windows:
|
|||||||
**Solution:** Upgrade openai:
|
**Solution:** Upgrade openai:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install --upgrade "openai>=1.0.0"
|
uv pip install --upgrade "openai>=1.0.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
### "No module named 'your_agent_name'"
|
### "No module named 'your_agent_name'"
|
||||||
@@ -351,7 +351,7 @@ pip install --upgrade "openai>=1.0.0"
|
|||||||
Linux/macOS:
|
Linux/macOS:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
PYTHONPATH=core:exports python -m your_agent_name validate
|
PYTHONPATH=exports uv run python -m your_agent_name validate
|
||||||
```
|
```
|
||||||
|
|
||||||
Windows:
|
Windows:
|
||||||
@@ -369,7 +369,7 @@ python -m support_ticket_agent validate
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Remove broken installations
|
# Remove broken installations
|
||||||
pip uninstall -y framework tools
|
uv pip uninstall framework tools
|
||||||
|
|
||||||
# Reinstall correctly
|
# Reinstall correctly
|
||||||
./quickstart.sh
|
./quickstart.sh
|
||||||
@@ -429,12 +429,12 @@ If you need to use both packages in a single script (e.g., for testing), you hav
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Option 1: Install both in a shared environment
|
# Option 1: Install both in a shared environment
|
||||||
python -m venv .venv
|
uv venv
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
pip install -e core/ -e tools/
|
uv pip install -e core/ -e tools/
|
||||||
|
|
||||||
# Option 2: Use PYTHONPATH (for quick testing)
|
# Option 2: Use PYTHONPATH (for quick testing)
|
||||||
PYTHONPATH=core:tools/src python your_script.py
|
PYTHONPATH=tools/src uv run python your_script.py
|
||||||
```
|
```
|
||||||
|
|
||||||
### MCP Server Configuration
|
### MCP Server Configuration
|
||||||
@@ -460,7 +460,7 @@ This ensures each MCP server runs with its correct dependencies.
|
|||||||
|
|
||||||
### Why PYTHONPATH is Required
|
### Why PYTHONPATH is Required
|
||||||
|
|
||||||
The packages are installed in **editable mode** (`pip install -e`), which means:
|
The packages are installed in **editable mode** (`uv pip install -e`), which means:
|
||||||
|
|
||||||
- `framework` and `aden_tools` are globally importable (no PYTHONPATH needed)
|
- `framework` and `aden_tools` are globally importable (no PYTHONPATH needed)
|
||||||
- `exports` is NOT installed as a package (PYTHONPATH required)
|
- `exports` is NOT installed as a package (PYTHONPATH required)
|
||||||
@@ -495,7 +495,7 @@ Enter goal: "Build an agent that processes customer support tickets"
|
|||||||
### 3. Validate Agent
|
### 3. Validate Agent
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
PYTHONPATH=core:exports python -m your_agent_name validate
|
PYTHONPATH=exports uv run python -m your_agent_name validate
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Test Agent
|
### 4. Test Agent
|
||||||
@@ -507,7 +507,7 @@ claude> /testing-agent
|
|||||||
### 5. Run Agent
|
### 5. Run Agent
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
## IDE Setup
|
## IDE Setup
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ check: ## Run all checks without modifying files (CI-safe)
|
|||||||
cd tools && ruff format --check .
|
cd tools && ruff format --check .
|
||||||
|
|
||||||
test: ## Run all tests
|
test: ## Run all tests
|
||||||
cd core && python -m pytest tests/ -v
|
cd core && uv run python -m pytest tests/ -v
|
||||||
|
|
||||||
install-hooks: ## Install pre-commit hooks
|
install-hooks: ## Install pre-commit hooks
|
||||||
pip install pre-commit
|
uv pip install pre-commit
|
||||||
pre-commit install
|
pre-commit install
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Run your agent
|
# Run your agent
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**[📖 Complete Setup Guide](ENVIRONMENT_SETUP.md)** - Detailed instructions for agent development
|
**[📖 Complete Setup Guide](ENVIRONMENT_SETUP.md)** - Detailed instructions for agent development
|
||||||
@@ -207,7 +207,7 @@ flowchart LR
|
|||||||
Aden Hive provides a list of featured agents that you can use and build on top of.
|
Aden Hive provides a list of featured agents that you can use and build on top of.
|
||||||
|
|
||||||
### Run an agent shared by others
|
### Run an agent shared by others
|
||||||
Put the agent in `exports/` and run `PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'`
|
Put the agent in `exports/` and run `PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'`
|
||||||
|
|
||||||
|
|
||||||
For building and running goal-driven agents with the framework:
|
For building and running goal-driven agents with the framework:
|
||||||
@@ -228,7 +228,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Run agents
|
# Run agents
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
See [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) for complete setup instructions.
|
See [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) for complete setup instructions.
|
||||||
|
|||||||
+10
-10
@@ -14,7 +14,7 @@ Framework provides a runtime framework that captures **decisions**, not just act
|
|||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
## MCP Server Setup
|
## MCP Server Setup
|
||||||
@@ -45,13 +45,13 @@ If you prefer manual setup:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Install framework
|
# Install framework
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
|
|
||||||
# Install MCP dependencies
|
# Install MCP dependencies
|
||||||
pip install mcp fastmcp
|
uv pip install mcp fastmcp
|
||||||
|
|
||||||
# Test the server
|
# Test the server
|
||||||
python -m framework.mcp.agent_builder_server
|
uv run python -m framework.mcp.agent_builder_server
|
||||||
```
|
```
|
||||||
|
|
||||||
### Using with MCP Clients
|
### Using with MCP Clients
|
||||||
@@ -86,13 +86,13 @@ Run an LLM-powered calculator:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Single calculation
|
# Single calculation
|
||||||
python -m framework calculate "2 + 3 * 4"
|
uv run python -m framework calculate "2 + 3 * 4"
|
||||||
|
|
||||||
# Interactive mode
|
# Interactive mode
|
||||||
python -m framework interactive
|
uv run python -m framework interactive
|
||||||
|
|
||||||
# Analyze runs with Builder
|
# Analyze runs with Builder
|
||||||
python -m framework analyze calculator
|
uv run python -m framework analyze calculator
|
||||||
```
|
```
|
||||||
|
|
||||||
### Using the Runtime
|
### Using the Runtime
|
||||||
@@ -136,13 +136,13 @@ Tests are generated using MCP tools (`generate_constraint_tests`, `generate_succ
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run tests against an agent
|
# Run tests against an agent
|
||||||
python -m framework test-run <agent_path> --goal <goal_id> --parallel 4
|
uv run python -m framework test-run <agent_path> --goal <goal_id> --parallel 4
|
||||||
|
|
||||||
# Debug failed tests
|
# Debug failed tests
|
||||||
python -m framework test-debug <agent_path> <test_name>
|
uv run python -m framework test-debug <agent_path> <test_name>
|
||||||
|
|
||||||
# List tests for a goal
|
# List tests for a goal
|
||||||
python -m framework test-list <goal_id>
|
uv run python -m framework test-list <goal_id>
|
||||||
```
|
```
|
||||||
|
|
||||||
For detailed testing workflows, see the [testing-agent skill](../.claude/skills/testing-agent/SKILL.md).
|
For detailed testing workflows, see the [testing-agent skill](../.claude/skills/testing-agent/SKILL.md).
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ for understanding the core runtime loop:
|
|||||||
Setup -> Graph definition -> Execution -> Result
|
Setup -> Graph definition -> Execution -> Result
|
||||||
|
|
||||||
Run with:
|
Run with:
|
||||||
PYTHONPATH=core python core/examples/manual_agent.py
|
uv run python core/examples/manual_agent.py
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class BaseOAuth2Provider(CredentialProvider):
|
|||||||
self._client = httpx.Client(timeout=self.config.request_timeout)
|
self._client = httpx.Client(timeout=self.config.request_timeout)
|
||||||
except ImportError as e:
|
except ImportError as e:
|
||||||
raise ImportError(
|
raise ImportError(
|
||||||
"OAuth2 provider requires 'httpx'. Install with: pip install httpx"
|
"OAuth2 provider requires 'httpx'. Install with: uv pip install httpx"
|
||||||
) from e
|
) from e
|
||||||
return self._client
|
return self._client
|
||||||
|
|
||||||
|
|||||||
@@ -136,7 +136,8 @@ class EncryptedFileStorage(CredentialStorage):
|
|||||||
from cryptography.fernet import Fernet
|
from cryptography.fernet import Fernet
|
||||||
except ImportError as e:
|
except ImportError as e:
|
||||||
raise ImportError(
|
raise ImportError(
|
||||||
"Encrypted storage requires 'cryptography'. Install with: pip install cryptography"
|
"Encrypted storage requires 'cryptography'. "
|
||||||
|
"Install with: uv pip install cryptography"
|
||||||
) from e
|
) from e
|
||||||
|
|
||||||
self.base_path = Path(base_path or self.DEFAULT_PATH).expanduser()
|
self.base_path = Path(base_path or self.DEFAULT_PATH).expanduser()
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
HashiCorp Vault storage adapter.
|
HashiCorp Vault storage adapter.
|
||||||
|
|
||||||
Provides integration with HashiCorp Vault for enterprise secret management.
|
Provides integration with HashiCorp Vault for enterprise secret management.
|
||||||
Requires the 'hvac' package: pip install hvac
|
Requires the 'hvac' package: uv pip install hvac
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
@@ -66,7 +66,7 @@ class HashiCorpVaultStorage(CredentialStorage):
|
|||||||
- AWS IAM auth method
|
- AWS IAM auth method
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
pip install hvac
|
uv pip install hvac
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@@ -97,7 +97,7 @@ class HashiCorpVaultStorage(CredentialStorage):
|
|||||||
import hvac
|
import hvac
|
||||||
except ImportError as e:
|
except ImportError as e:
|
||||||
raise ImportError(
|
raise ImportError(
|
||||||
"HashiCorp Vault support requires 'hvac'. Install with: pip install hvac"
|
"HashiCorp Vault support requires 'hvac'. Install with: uv pip install hvac"
|
||||||
) from e
|
) from e
|
||||||
|
|
||||||
self._url = url
|
self._url = url
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ class LiteLLMProvider(LLMProvider):
|
|||||||
|
|
||||||
if litellm is None:
|
if litellm is None:
|
||||||
raise ImportError(
|
raise ImportError(
|
||||||
"LiteLLM is not installed. Please install it with: pip install litellm"
|
"LiteLLM is not installed. Please install it with: uv pip install litellm"
|
||||||
)
|
)
|
||||||
|
|
||||||
def _completion_with_rate_limit_retry(self, **kwargs: Any) -> Any:
|
def _completion_with_rate_limit_retry(self, **kwargs: Any) -> Any:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ MCP Server for Agent Building Tools
|
|||||||
Exposes tools for building goal-driven agents via the Model Context Protocol.
|
Exposes tools for building goal-driven agents via the Model Context Protocol.
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
python -m framework.mcp.agent_builder_server
|
uv run python -m framework.mcp.agent_builder_server
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
|||||||
@@ -26,9 +26,9 @@ Testing tools are integrated into the main agent_builder_server.py:
|
|||||||
## CLI Commands
|
## CLI Commands
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python -m framework test-run <agent_path> --goal <goal_id>
|
uv run python -m framework test-run <agent_path> --goal <goal_id>
|
||||||
python -m framework test-debug <goal_id> <test_id>
|
uv run python -m framework test-debug <goal_id> <test_id>
|
||||||
python -m framework test-list <agent_path> --goal <goal_id>
|
uv run python -m framework test-list <agent_path> --goal <goal_id>
|
||||||
```
|
```
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ dependencies = [
|
|||||||
"litellm>=1.81.0",
|
"litellm>=1.81.0",
|
||||||
"mcp>=1.0.0",
|
"mcp>=1.0.0",
|
||||||
"fastmcp>=2.0.0",
|
"fastmcp>=2.0.0",
|
||||||
|
"textual>=1.0.0",
|
||||||
"pytest>=8.0",
|
"pytest>=8.0",
|
||||||
"pytest-asyncio>=0.23",
|
"pytest-asyncio>=0.23",
|
||||||
"pytest-xdist>=3.0",
|
"pytest-xdist>=3.0",
|
||||||
|
|||||||
+1
-1
@@ -143,7 +143,7 @@ def main():
|
|||||||
logger.info("The MCP server is now ready to use!")
|
logger.info("The MCP server is now ready to use!")
|
||||||
logger.info("")
|
logger.info("")
|
||||||
logger.info(f"{Colors.BLUE}To start the MCP server manually:{Colors.NC}")
|
logger.info(f"{Colors.BLUE}To start the MCP server manually:{Colors.NC}")
|
||||||
logger.info(" python -m framework.mcp.agent_builder_server")
|
logger.info(" uv run python -m framework.mcp.agent_builder_server")
|
||||||
logger.info("")
|
logger.info("")
|
||||||
logger.info(f"{Colors.BLUE}MCP Configuration location:{Colors.NC}")
|
logger.info(f"{Colors.BLUE}MCP Configuration location:{Colors.NC}")
|
||||||
logger.info(f" {mcp_config_path}")
|
logger.info(f" {mcp_config_path}")
|
||||||
|
|||||||
+4
-4
@@ -19,7 +19,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||||||
cd "$SCRIPT_DIR"
|
cd "$SCRIPT_DIR"
|
||||||
|
|
||||||
echo -e "${YELLOW}Step 1: Installing framework package...${NC}"
|
echo -e "${YELLOW}Step 1: Installing framework package...${NC}"
|
||||||
pip install -e . || {
|
uv pip install -e . || {
|
||||||
echo -e "${RED}Failed to install framework package${NC}"
|
echo -e "${RED}Failed to install framework package${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@@ -27,7 +27,7 @@ echo -e "${GREEN}✓ Framework package installed${NC}"
|
|||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo -e "${YELLOW}Step 2: Installing MCP dependencies...${NC}"
|
echo -e "${YELLOW}Step 2: Installing MCP dependencies...${NC}"
|
||||||
pip install mcp fastmcp || {
|
uv pip install mcp fastmcp || {
|
||||||
echo -e "${RED}Failed to install MCP dependencies${NC}"
|
echo -e "${RED}Failed to install MCP dependencies${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,7 @@ fi
|
|||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo -e "${YELLOW}Step 4: Testing MCP server...${NC}"
|
echo -e "${YELLOW}Step 4: Testing MCP server...${NC}"
|
||||||
python -c "from framework.mcp import agent_builder_server; print('✓ MCP server module loads successfully')" || {
|
uv run python -c "from framework.mcp import agent_builder_server; print('✓ MCP server module loads successfully')" || {
|
||||||
echo -e "${RED}Failed to import MCP server module${NC}"
|
echo -e "${RED}Failed to import MCP server module${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@@ -71,7 +71,7 @@ echo ""
|
|||||||
echo "The MCP server is now ready to use!"
|
echo "The MCP server is now ready to use!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "To start the MCP server manually:"
|
echo "To start the MCP server manually:"
|
||||||
echo " python -m framework.mcp.agent_builder_server"
|
echo " uv run python -m framework.mcp.agent_builder_server"
|
||||||
echo ""
|
echo ""
|
||||||
echo "MCP Configuration location:"
|
echo "MCP Configuration location:"
|
||||||
echo " $SCRIPT_DIR/.mcp.json"
|
echo " $SCRIPT_DIR/.mcp.json"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Run with:
|
Run with:
|
||||||
cd core
|
cd core
|
||||||
pip install litellm pytest
|
uv pip install litellm pytest
|
||||||
pytest tests/test_litellm_provider.py -v
|
pytest tests/test_litellm_provider.py -v
|
||||||
|
|
||||||
For live tests (requires API keys):
|
For live tests (requires API keys):
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Calls live LLM APIs and dumps stream events to JSON files for review.
|
|||||||
Results are saved to core/tests/stream_event_dumps/{provider}_{model}_{scenario}.json
|
Results are saved to core/tests/stream_event_dumps/{provider}_{model}_{scenario}.json
|
||||||
|
|
||||||
Run with:
|
Run with:
|
||||||
cd core && python -m pytest tests/test_litellm_streaming.py -v -s -k "RealAPI"
|
cd core && uv run python -m pytest tests/test_litellm_streaming.py -v -s -k "RealAPI"
|
||||||
|
|
||||||
Requires API keys set in environment:
|
Requires API keys set in environment:
|
||||||
ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY (or via credential store)
|
ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY (or via credential store)
|
||||||
|
|||||||
+4
-4
@@ -76,7 +76,7 @@ def main():
|
|||||||
success(f"installed at {framework_path}")
|
success(f"installed at {framework_path}")
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
error("framework package not found")
|
error("framework package not found")
|
||||||
logger.info(f" Run: pip install -e {script_dir}")
|
logger.info(f" Run: uv pip install -e {script_dir}")
|
||||||
all_checks_passed = False
|
all_checks_passed = False
|
||||||
|
|
||||||
# Check 2: MCP dependencies
|
# Check 2: MCP dependencies
|
||||||
@@ -90,7 +90,7 @@ def main():
|
|||||||
|
|
||||||
if missing_deps:
|
if missing_deps:
|
||||||
error(f"missing: {', '.join(missing_deps)}")
|
error(f"missing: {', '.join(missing_deps)}")
|
||||||
logger.info(f" Run: pip install {' '.join(missing_deps)}")
|
logger.info(f" Run: uv pip install {' '.join(missing_deps)}")
|
||||||
all_checks_passed = False
|
all_checks_passed = False
|
||||||
else:
|
else:
|
||||||
success("all installed")
|
success("all installed")
|
||||||
@@ -194,7 +194,7 @@ def main():
|
|||||||
logger.info("Your MCP server is ready to use.")
|
logger.info("Your MCP server is ready to use.")
|
||||||
logger.info("")
|
logger.info("")
|
||||||
logger.info(f"{Colors.BLUE}To start the server:{Colors.NC}")
|
logger.info(f"{Colors.BLUE}To start the server:{Colors.NC}")
|
||||||
logger.info(" python -m framework.mcp.agent_builder_server")
|
logger.info(" uv run python -m framework.mcp.agent_builder_server")
|
||||||
logger.info("")
|
logger.info("")
|
||||||
logger.info(f"{Colors.BLUE}To use with Claude Desktop:{Colors.NC}")
|
logger.info(f"{Colors.BLUE}To use with Claude Desktop:{Colors.NC}")
|
||||||
logger.info(" Add the configuration from .mcp.json to your")
|
logger.info(" Add the configuration from .mcp.json to your")
|
||||||
@@ -203,7 +203,7 @@ def main():
|
|||||||
logger.info(f"{Colors.RED}✗ Some checks failed{Colors.NC}")
|
logger.info(f"{Colors.RED}✗ Some checks failed{Colors.NC}")
|
||||||
logger.info("")
|
logger.info("")
|
||||||
logger.info("To fix issues, run:")
|
logger.info("To fix issues, run:")
|
||||||
logger.info(f" python {script_dir / 'setup_mcp.py'}")
|
logger.info(f" uv run python {script_dir / 'setup_mcp.py'}")
|
||||||
logger.info("")
|
logger.info("")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ Add to `.vscode/settings.json`:
|
|||||||
Install the core package:
|
Install the core package:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd core && pip install -e .
|
cd core && uv pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
### API key not found
|
### API key not found
|
||||||
@@ -184,7 +184,7 @@ $env:ANTHROPIC_API_KEY = "sk-ant-..."
|
|||||||
Run from the project root with PYTHONPATH:
|
Run from the project root with PYTHONPATH:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
PYTHONPATH=core:exports python -m my_agent validate
|
PYTHONPATH=exports uv run python -m my_agent validate
|
||||||
```
|
```
|
||||||
|
|
||||||
See [Environment Setup](../ENVIRONMENT_SETUP.md) for detailed installation instructions.
|
See [Environment Setup](../ENVIRONMENT_SETUP.md) for detailed installation instructions.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Hive uses [Ruff](https://docs.astral.sh/ruff/) for all Python linting and format
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Install dev dependencies
|
# 1. Install dev dependencies
|
||||||
cd core && pip install -e ".[dev]"
|
cd core && uv pip install -e ".[dev]"
|
||||||
|
|
||||||
# 2. Install pre-commit hooks (runs ruff automatically before each commit)
|
# 2. Install pre-commit hooks (runs ruff automatically before each commit)
|
||||||
make install-hooks
|
make install-hooks
|
||||||
@@ -142,7 +142,7 @@ The single source of truth for lint rules is the `[tool.ruff]` section in each p
|
|||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
**Q: Do I need to install anything beyond `pip install -e ".[dev]"`?**
|
**Q: Do I need to install anything beyond `uv pip install -e ".[dev]"`?**
|
||||||
Only if you want pre-commit hooks: `make install-hooks`. Everything else (VS Code settings, editorconfig) works automatically.
|
Only if you want pre-commit hooks: `make install-hooks`. Everything else (VS Code settings, editorconfig) works automatically.
|
||||||
|
|
||||||
**Q: Can I use a different formatter (black, autopep8)?**
|
**Q: Can I use a different formatter (black, autopep8)?**
|
||||||
|
|||||||
@@ -1202,7 +1202,7 @@ class HashiCorpVaultStorage(CredentialStorage):
|
|||||||
"""
|
"""
|
||||||
HashiCorp Vault storage adapter.
|
HashiCorp Vault storage adapter.
|
||||||
|
|
||||||
Requires: pip install hvac
|
Requires: uv pip install hvac
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
- KV v2 secrets engine support
|
- KV v2 secrets engine support
|
||||||
@@ -1243,7 +1243,7 @@ class HashiCorpVaultStorage(CredentialStorage):
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
raise ImportError(
|
raise ImportError(
|
||||||
"HashiCorp Vault support requires 'hvac'. "
|
"HashiCorp Vault support requires 'hvac'. "
|
||||||
"Install with: pip install hvac"
|
"Install with: uv pip install hvac"
|
||||||
)
|
)
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|||||||
+13
-13
@@ -22,7 +22,7 @@ cd hive
|
|||||||
./quickstart.sh
|
./quickstart.sh
|
||||||
|
|
||||||
# 3. Verify installation (optional, quickstart.sh already verifies)
|
# 3. Verify installation (optional, quickstart.sh already verifies)
|
||||||
python -c "import framework; import aden_tools; print('✓ Setup complete')"
|
uv run python -c "import framework; import aden_tools; print('✓ Setup complete')"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Building Your First Agent
|
## Building Your First Agent
|
||||||
@@ -55,7 +55,7 @@ cd exports/my_agent
|
|||||||
# Create agent.json, tools.py, README.md (see DEVELOPER.md for structure)
|
# Create agent.json, tools.py, README.md (see DEVELOPER.md for structure)
|
||||||
|
|
||||||
# Validate the agent
|
# Validate the agent
|
||||||
PYTHONPATH=core:exports python -m my_agent validate
|
PYTHONPATH=exports uv run python -m my_agent validate
|
||||||
```
|
```
|
||||||
|
|
||||||
### Option 3: Manual Code-First (Minimal Example)
|
### Option 3: Manual Code-First (Minimal Example)
|
||||||
@@ -67,7 +67,7 @@ If you prefer to start with code rather than CLI wizards, check out the manual a
|
|||||||
cat core/examples/manual_agent.py
|
cat core/examples/manual_agent.py
|
||||||
|
|
||||||
# Run it (no API keys required)
|
# Run it (no API keys required)
|
||||||
PYTHONPATH=core python core/examples/manual_agent.py
|
uv run python core/examples/manual_agent.py
|
||||||
```
|
```
|
||||||
|
|
||||||
This demonstrates the core runtime loop using pure Python functions, skipping the complexity of LLM setup and file-based configuration.
|
This demonstrates the core runtime loop using pure Python functions, skipping the complexity of LLM setup and file-based configuration.
|
||||||
@@ -116,18 +116,18 @@ hive/
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Validate agent structure
|
# Validate agent structure
|
||||||
PYTHONPATH=core:exports python -m my_agent validate
|
PYTHONPATH=exports uv run python -m my_agent validate
|
||||||
|
|
||||||
# Show agent information
|
# Show agent information
|
||||||
PYTHONPATH=core:exports python -m my_agent info
|
PYTHONPATH=exports uv run python -m my_agent info
|
||||||
|
|
||||||
# Run agent with input
|
# Run agent with input
|
||||||
PYTHONPATH=core:exports python -m my_agent run --input '{
|
PYTHONPATH=exports uv run python -m my_agent run --input '{
|
||||||
"task": "Your input here"
|
"task": "Your input here"
|
||||||
}'
|
}'
|
||||||
|
|
||||||
# Run in mock mode (no LLM calls)
|
# Run in mock mode (no LLM calls)
|
||||||
PYTHONPATH=core:exports python -m my_agent run --mock --input '{...}'
|
PYTHONPATH=exports uv run python -m my_agent run --mock --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
## API Keys Setup
|
## API Keys Setup
|
||||||
@@ -153,11 +153,11 @@ Get your API keys:
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Or manually
|
# Or manually
|
||||||
PYTHONPATH=core:exports python -m my_agent test
|
PYTHONPATH=exports uv run python -m my_agent test
|
||||||
|
|
||||||
# Run with specific test type
|
# Run with specific test type
|
||||||
PYTHONPATH=core:exports python -m my_agent test --type constraint
|
PYTHONPATH=exports uv run python -m my_agent test --type constraint
|
||||||
PYTHONPATH=core:exports python -m my_agent test --type success
|
PYTHONPATH=exports uv run python -m my_agent test --type success
|
||||||
```
|
```
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
@@ -175,7 +175,7 @@ PYTHONPATH=core:exports python -m my_agent test --type success
|
|||||||
```bash
|
```bash
|
||||||
# Reinstall framework package
|
# Reinstall framework package
|
||||||
cd core
|
cd core
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
### ModuleNotFoundError: No module named 'aden_tools'
|
### ModuleNotFoundError: No module named 'aden_tools'
|
||||||
@@ -183,7 +183,7 @@ pip install -e .
|
|||||||
```bash
|
```bash
|
||||||
# Reinstall tools package
|
# Reinstall tools package
|
||||||
cd tools
|
cd tools
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
### LLM API Errors
|
### LLM API Errors
|
||||||
@@ -193,7 +193,7 @@ pip install -e .
|
|||||||
echo $ANTHROPIC_API_KEY
|
echo $ANTHROPIC_API_KEY
|
||||||
|
|
||||||
# Run in mock mode to test without API
|
# Run in mock mode to test without API
|
||||||
PYTHONPATH=core:exports python -m my_agent run --mock --input '{...}'
|
PYTHONPATH=exports uv run python -m my_agent run --mock --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
### Package Installation Issues
|
### Package Installation Issues
|
||||||
|
|||||||
+2
-2
@@ -95,7 +95,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Ejecutar tu agente
|
# Ejecutar tu agente
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**[📖 Guía de Configuración Completa](ENVIRONMENT_SETUP.md)** - Instrucciones detalladas para desarrollo de agentes
|
**[📖 Guía de Configuración Completa](ENVIRONMENT_SETUP.md)** - Instrucciones detalladas para desarrollo de agentes
|
||||||
@@ -241,7 +241,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Ejecutar agentes
|
# Ejecutar agentes
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
Consulta [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) para instrucciones de configuración completas.
|
Consulta [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) para instrucciones de configuración completas.
|
||||||
|
|||||||
+2
-2
@@ -104,7 +104,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# अपने एजेंट को चलाएँ
|
# अपने एजेंट को चलाएँ
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**[📖 पूर्ण कॉन्फ़िगरेशन गाइड](ENVIRONMENT_SETUP.md)** - एजेंट विकास के लिए विस्तृत निर्देश
|
**[📖 पूर्ण कॉन्फ़िगरेशन गाइड](ENVIRONMENT_SETUP.md)** - एजेंट विकास के लिए विस्तृत निर्देश
|
||||||
@@ -250,7 +250,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# एजेंट चलाएँ
|
# एजेंट चलाएँ
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
पूरी कॉन्फ़िगरेशन निर्देशों के लिए ENVIRONMENT_SETUP.md देखें।
|
पूरी कॉन्फ़िगरेशन निर्देशों के लिए ENVIRONMENT_SETUP.md देखें।
|
||||||
|
|||||||
+2
-2
@@ -97,7 +97,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# エージェントを実行
|
# エージェントを実行
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**[📖 完全セットアップガイド](ENVIRONMENT_SETUP.md)** - エージェント開発の詳細な手順
|
**[📖 完全セットアップガイド](ENVIRONMENT_SETUP.md)** - エージェント開発の詳細な手順
|
||||||
@@ -243,7 +243,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# エージェントを実行
|
# エージェントを実行
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
完全なセットアップ手順については、[ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md)を参照してください。
|
完全なセットアップ手順については、[ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md)を参照してください。
|
||||||
|
|||||||
+2
-2
@@ -97,7 +97,7 @@ claude> /building-agents
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# 에이전트 실행
|
# 에이전트 실행
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**[📖 전체 설정 가이드](ENVIRONMENT_SETUP.md)** - 에이전트 개발을 위한 상세한 설명
|
**[📖 전체 설정 가이드](ENVIRONMENT_SETUP.md)** - 에이전트 개발을 위한 상세한 설명
|
||||||
@@ -254,7 +254,7 @@ claude> /building-agents
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# 에이전트 실행
|
# 에이전트 실행
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
전체 설정 방법은 [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) 를 참고하세요.
|
전체 설정 방법은 [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) 를 참고하세요.
|
||||||
|
|||||||
+2
-2
@@ -97,7 +97,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Executar seu agente
|
# Executar seu agente
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**[📖 Guia Completo de Configuração](ENVIRONMENT_SETUP.md)** - Instruções detalhadas para desenvolvimento de agentes
|
**[📖 Guia Completo de Configuração](ENVIRONMENT_SETUP.md)** - Instruções detalhadas para desenvolvimento de agentes
|
||||||
@@ -243,7 +243,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Executar agentes
|
# Executar agentes
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
Consulte [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) para instruções completas de configuração.
|
Consulte [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) para instruções completas de configuração.
|
||||||
|
|||||||
+2
-2
@@ -97,7 +97,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Запустить агента
|
# Запустить агента
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**[📖 Полное руководство по настройке](ENVIRONMENT_SETUP.md)** - Подробные инструкции для разработки агентов
|
**[📖 Полное руководство по настройке](ENVIRONMENT_SETUP.md)** - Подробные инструкции для разработки агентов
|
||||||
@@ -243,7 +243,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# Запустить агентов
|
# Запустить агентов
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
Обратитесь к [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) для полных инструкций по настройке.
|
Обратитесь к [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md) для полных инструкций по настройке.
|
||||||
|
|||||||
+2
-2
@@ -97,7 +97,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# 运行您的智能体
|
# 运行您的智能体
|
||||||
PYTHONPATH=core:exports python -m your_agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m your_agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
**[📖 完整设置指南](ENVIRONMENT_SETUP.md)** - 智能体开发的详细说明
|
**[📖 完整设置指南](ENVIRONMENT_SETUP.md)** - 智能体开发的详细说明
|
||||||
@@ -243,7 +243,7 @@ claude> /building-agents-construction
|
|||||||
claude> /testing-agent
|
claude> /testing-agent
|
||||||
|
|
||||||
# 运行智能体
|
# 运行智能体
|
||||||
PYTHONPATH=core:exports python -m agent_name run --input '{...}'
|
PYTHONPATH=exports uv run python -m agent_name run --input '{...}'
|
||||||
```
|
```
|
||||||
|
|
||||||
完整设置说明请参阅 [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md)。
|
完整设置说明请参阅 [ENVIRONMENT_SETUP.md](ENVIRONMENT_SETUP.md)。
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@ cp -r examples/templates/marketing_agent exports/my_agent
|
|||||||
# 2. Edit the goal, nodes, and edges in agent.py and nodes/__init__.py
|
# 2. Edit the goal, nodes, and edges in agent.py and nodes/__init__.py
|
||||||
|
|
||||||
# 3. Run it
|
# 3. Run it
|
||||||
PYTHONPATH=core python -m exports.my_agent --help
|
uv run python -m exports.my_agent --help
|
||||||
```
|
```
|
||||||
|
|
||||||
## How to use a recipe
|
## How to use a recipe
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ cp -r examples/templates/marketing_agent exports/my_marketing_agent
|
|||||||
# 3. Customize goal, nodes, edges, and prompts
|
# 3. Customize goal, nodes, edges, and prompts
|
||||||
|
|
||||||
# 4. Run it
|
# 4. Run it
|
||||||
PYTHONPATH=core python -m exports.my_marketing_agent --input '{"product_description": "..."}'
|
uv run python -m exports.my_marketing_agent --input '{"product_description": "..."}'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Available templates
|
## Available templates
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ A multi-channel marketing content generator. Given a product and audience, this
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# From the repo root
|
# From the repo root
|
||||||
PYTHONPATH=core python -m examples.templates.marketing_agent
|
uv run python -m examples.templates.marketing_agent
|
||||||
|
|
||||||
# With custom input
|
# With custom input
|
||||||
PYTHONPATH=core python -m examples.templates.marketing_agent --input '{
|
uv run python -m examples.templates.marketing_agent --input '{
|
||||||
"product_description": "A fitness tracking app",
|
"product_description": "A fitness tracking app",
|
||||||
"target_audience": "Health-conscious millennials",
|
"target_audience": "Health-conscious millennials",
|
||||||
"brand_voice": "Energetic and motivational",
|
"brand_voice": "Energetic and motivational",
|
||||||
|
|||||||
+83
-2
@@ -581,10 +581,76 @@ fi
|
|||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# Step 4: Verify Setup
|
# Step 5: Initialize Credential Store
|
||||||
# ============================================================
|
# ============================================================
|
||||||
|
|
||||||
echo -e "${YELLOW}⬢${NC} ${BLUE}${BOLD}Step 4: Verifying installation...${NC}"
|
echo -e "${YELLOW}⬢${NC} ${BLUE}${BOLD}Step 5: Initializing credential store...${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${DIM}The credential store encrypts API keys and secrets for your agents.${NC}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
HIVE_CRED_DIR="$HOME/.hive/credentials"
|
||||||
|
|
||||||
|
# Check if HIVE_CREDENTIAL_KEY already exists (from env or .env)
|
||||||
|
if [ -n "$HIVE_CREDENTIAL_KEY" ]; then
|
||||||
|
echo -e "${GREEN} ✓ HIVE_CREDENTIAL_KEY already set${NC}"
|
||||||
|
else
|
||||||
|
# Generate a new Fernet encryption key
|
||||||
|
echo -n " Generating encryption key... "
|
||||||
|
GENERATED_KEY=$(uv run python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" 2>/dev/null)
|
||||||
|
|
||||||
|
if [ -z "$GENERATED_KEY" ]; then
|
||||||
|
echo -e "${RED}failed${NC}"
|
||||||
|
echo -e "${YELLOW} ⚠ Credential store will not be available.${NC}"
|
||||||
|
echo -e "${YELLOW} You can set HIVE_CREDENTIAL_KEY manually later.${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN}ok${NC}"
|
||||||
|
|
||||||
|
# Save to .env file
|
||||||
|
if [ ! -f "$SCRIPT_DIR/.env" ]; then
|
||||||
|
touch "$SCRIPT_DIR/.env"
|
||||||
|
fi
|
||||||
|
echo "" >> "$SCRIPT_DIR/.env"
|
||||||
|
echo "# Encryption key for Hive credential store (~/.hive/credentials)" >> "$SCRIPT_DIR/.env"
|
||||||
|
echo "HIVE_CREDENTIAL_KEY=$GENERATED_KEY" >> "$SCRIPT_DIR/.env"
|
||||||
|
export HIVE_CREDENTIAL_KEY="$GENERATED_KEY"
|
||||||
|
|
||||||
|
echo -e "${GREEN} ✓ Encryption key saved to .env${NC}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create credential store directories
|
||||||
|
if [ -n "$HIVE_CREDENTIAL_KEY" ]; then
|
||||||
|
mkdir -p "$HIVE_CRED_DIR/credentials"
|
||||||
|
mkdir -p "$HIVE_CRED_DIR/metadata"
|
||||||
|
|
||||||
|
# Initialize the metadata index
|
||||||
|
if [ ! -f "$HIVE_CRED_DIR/metadata/index.json" ]; then
|
||||||
|
echo '{}' > "$HIVE_CRED_DIR/metadata/index.json"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${GREEN} ✓ Credential store initialized at ~/.hive/credentials/${NC}"
|
||||||
|
|
||||||
|
# Verify the store works
|
||||||
|
echo -n " Verifying credential store... "
|
||||||
|
if uv run python -c "
|
||||||
|
from framework.credentials.storage import EncryptedFileStorage
|
||||||
|
storage = EncryptedFileStorage()
|
||||||
|
print('ok')
|
||||||
|
" 2>/dev/null | grep -q "ok"; then
|
||||||
|
echo -e "${GREEN}ok${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}--${NC}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Step 6: Verify Setup
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
echo -e "${YELLOW}⬢${NC} ${BLUE}${BOLD}Step 6: Verifying installation...${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
ERRORS=0
|
ERRORS=0
|
||||||
@@ -628,6 +694,13 @@ else
|
|||||||
echo -e "${YELLOW}--${NC}"
|
echo -e "${YELLOW}--${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo -n " ⬡ credential store... "
|
||||||
|
if [ -n "$HIVE_CREDENTIAL_KEY" ] && [ -d "$HOME/.hive/credentials/credentials" ]; then
|
||||||
|
echo -e "${GREEN}ok${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}--${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
if [ $ERRORS -gt 0 ]; then
|
if [ $ERRORS -gt 0 ]; then
|
||||||
@@ -659,6 +732,14 @@ if [ -n "$SELECTED_PROVIDER_ID" ]; then
|
|||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Show credential store status
|
||||||
|
if [ -n "$HIVE_CREDENTIAL_KEY" ]; then
|
||||||
|
echo -e "${BOLD}Credential Store:${NC}"
|
||||||
|
echo -e " ${GREEN}⬢${NC} ${DIM}~/.hive/credentials/${NC} (encrypted)"
|
||||||
|
echo -e " ${DIM}Set up agent credentials with:${NC} ${CYAN}/setup-credentials${NC}"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
echo -e "${BOLD}Quick Start:${NC}"
|
echo -e "${BOLD}Quick Start:${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " 1. Open Claude Code in this directory:"
|
echo -e " 1. Open Claude Code in this directory:"
|
||||||
|
|||||||
@@ -227,17 +227,17 @@ Write-Host ""
|
|||||||
Write-Host "To run agents on Windows (PowerShell):"
|
Write-Host "To run agents on Windows (PowerShell):"
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "1. From the project root, set PYTHONPATH:"
|
Write-Host "1. From the project root, set PYTHONPATH:"
|
||||||
Write-Host " `$env:PYTHONPATH=`"core;exports`""
|
Write-Host " `$env:PYTHONPATH=`"exports`""
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "2. Run an agent command:"
|
Write-Host "2. Run an agent command:"
|
||||||
Write-Host " python -m agent_name validate"
|
Write-Host " uv run python -m agent_name validate"
|
||||||
Write-Host " python -m agent_name info"
|
Write-Host " uv run python -m agent_name info"
|
||||||
Write-Host " python -m agent_name run --input '{...}'"
|
Write-Host " uv run python -m agent_name run --input '{...}'"
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "Example (support_ticket_agent):"
|
Write-Host "Example (support_ticket_agent):"
|
||||||
Write-Host " python -m support_ticket_agent validate"
|
Write-Host " uv run python -m support_ticket_agent validate"
|
||||||
Write-Host " python -m support_ticket_agent info"
|
Write-Host " uv run python -m support_ticket_agent info"
|
||||||
Write-Host " python -m support_ticket_agent run --input '{""ticket_content"":""..."",""customer_id"":""..."",""ticket_id"":""...""}'"
|
Write-Host " uv run python -m support_ticket_agent run --input '{""ticket_content"":""..."",""customer_id"":""..."",""ticket_id"":""...""}'"
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "Notes:"
|
Write-Host "Notes:"
|
||||||
Write-Host " - Ensure the virtual environment is activated (.venv)"
|
Write-Host " - Ensure the virtual environment is activated (.venv)"
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ if $PYTHON_CMD -c "import playwright" > /dev/null 2>&1; then
|
|||||||
echo -e "${GREEN}✓${NC} Playwright Chromium installed"
|
echo -e "${GREEN}✓${NC} Playwright Chromium installed"
|
||||||
else
|
else
|
||||||
echo -e "${YELLOW}⚠${NC} Playwright browser install failed (web_scrape tool may not work)"
|
echo -e "${YELLOW}⚠${NC} Playwright browser install failed (web_scrape tool may not work)"
|
||||||
echo " Run manually: python -m playwright install chromium"
|
echo " Run manually: uv run python -m playwright install chromium"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "${YELLOW}⚠${NC} Playwright not found, skipping browser install"
|
echo -e "${YELLOW}⚠${NC} Playwright not found, skipping browser install"
|
||||||
@@ -290,14 +290,14 @@ echo ""
|
|||||||
echo "To run agents, use:"
|
echo "To run agents, use:"
|
||||||
echo ""
|
echo ""
|
||||||
echo " ${BLUE}# From project root:${NC}"
|
echo " ${BLUE}# From project root:${NC}"
|
||||||
echo " PYTHONPATH=core:exports ${PYTHON_CMD} -m agent_name validate"
|
echo " PYTHONPATH=exports uv run python -m agent_name validate"
|
||||||
echo " PYTHONPATH=core:exports ${PYTHON_CMD} -m agent_name info"
|
echo " PYTHONPATH=exports uv run python -m agent_name info"
|
||||||
echo " PYTHONPATH=core:exports ${PYTHON_CMD} -m agent_name run --input '{...}'"
|
echo " PYTHONPATH=exports uv run python -m agent_name run --input '{...}'"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Available commands for your new agent:"
|
echo "Available commands for your new agent:"
|
||||||
echo " PYTHONPATH=core:exports ${PYTHON_CMD} -m support_ticket_agent validate"
|
echo " PYTHONPATH=exports uv run python -m support_ticket_agent validate"
|
||||||
echo " PYTHONPATH=core:exports ${PYTHON_CMD} -m support_ticket_agent info"
|
echo " PYTHONPATH=exports uv run python -m support_ticket_agent info"
|
||||||
echo " PYTHONPATH=core:exports ${PYTHON_CMD} -m support_ticket_agent run --input '{\"ticket_content\":\"...\",\"customer_id\":\"...\",\"ticket_id\":\"...\"}'"
|
echo " PYTHONPATH=exports uv run python -m support_ticket_agent run --input '{\"ticket_content\":\"...\",\"customer_id\":\"...\",\"ticket_id\":\"...\"}'"
|
||||||
echo ""
|
echo ""
|
||||||
echo "To build new agents, use Claude Code skills:"
|
echo "To build new agents, use Claude Code skills:"
|
||||||
echo " • /building-agents - Build a new agent"
|
echo " • /building-agents - Build a new agent"
|
||||||
|
|||||||
+2
-2
@@ -5,13 +5,13 @@ Tool library for the Aden agent framework. Provides a collection of tools that A
|
|||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install -e tools
|
uv pip install -e tools
|
||||||
```
|
```
|
||||||
|
|
||||||
For development:
|
For development:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install -e "tools[dev]"
|
uv pip install -e "tools[dev]"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Environment Setup
|
## Environment Setup
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ def register_tools(mcp: FastMCP) -> None:
|
|||||||
return {
|
return {
|
||||||
"error": (
|
"error": (
|
||||||
"DuckDB not installed. Install with: "
|
"DuckDB not installed. Install with: "
|
||||||
"pip install duckdb or pip install tools[sql]"
|
"uv pip install duckdb or uv pip install tools[sql]"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ Use when you need to read the content of a specific URL, extract data from a web
|
|||||||
Requires Chromium browser binaries:
|
Requires Chromium browser binaries:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install playwright playwright-stealth
|
uv pip install playwright playwright-stealth
|
||||||
playwright install chromium
|
uv run playwright install chromium
|
||||||
```
|
```
|
||||||
|
|
||||||
## Environment Variables
|
## Environment Variables
|
||||||
|
|||||||
Reference in New Issue
Block a user