chore: requires python3.11

This commit is contained in:
Timothy
2026-01-23 11:12:03 -08:00
parent 8504ad7c8c
commit f494c80051
6 changed files with 33 additions and 24 deletions
+22 -15
View File
@@ -20,12 +20,12 @@ This guide covers everything you need to know to develop with the Aden Agent Fra
Aden Agent Framework is a Python-based system for building goal-driven, self-improving AI agents.
| Package | Directory | Description | Tech Stack |
| ------------- | ---------- | -------------------------------------------- | ----------------- |
| **framework** | `/core` | Core runtime, graph executor, protocols | Python 3.11+ |
| **tools** | `/tools` | 19 MCP tools for agent capabilities | Python 3.11+ |
| **exports** | `/exports` | Agent packages and examples | Python 3.11+ |
| **skills** | `.claude` | Claude Code skills for building/testing | Markdown |
| Package | Directory | Description | Tech Stack |
| ------------- | ---------- | --------------------------------------- | ------------ |
| **framework** | `/core` | Core runtime, graph executor, protocols | Python 3.11+ |
| **tools** | `/tools` | 19 MCP tools for agent capabilities | Python 3.11+ |
| **exports** | `/exports` | Agent packages and examples | Python 3.11+ |
| **skills** | `.claude` | Claude Code skills for building/testing | Markdown |
### Key Principles
@@ -69,7 +69,7 @@ cd hive
The setup script performs these actions:
1. Checks Python version (3.10+ required, 3.11+ recommended)
1. Checks Python version (3.11+)
2. Installs `framework` package from `/core` (editable mode)
3. Installs `aden_tools` package from `/tools` (editable mode)
4. Fixes package compatibility (upgrades openai for litellm)
@@ -87,6 +87,7 @@ export BRAVE_SEARCH_API_KEY="your-key-here" # Optional, for web search tool
```
Get API keys:
- **Anthropic**: [console.anthropic.com](https://console.anthropic.com/)
- **OpenAI**: [platform.openai.com](https://platform.openai.com/)
- **Brave Search**: [brave.com/search/api](https://brave.com/search/api/)
@@ -99,6 +100,7 @@ Get API keys:
```
This installs:
- `/building-agents` - Build new goal-driven agents
- `/testing-agent` - Test agents with evaluation framework
@@ -220,21 +222,25 @@ claude> /testing-agent
### Agent Development Workflow
1. **Define Your Goal**
```
claude> /building-agents
Enter goal: "Build an agent that processes customer support tickets"
```
2. **Design the Workflow**
- The skill guides you through defining nodes
- Each node is a unit of work (LLM call, function, router)
- Edges define how execution flows
3. **Generate the Agent**
- The skill generates a complete Python package in `exports/`
- Includes: `agent.json`, `tools.py`, `README.md`
4. **Validate the Agent**
```bash
PYTHONPATH=core:exports python -m your_agent_name validate
```
@@ -309,6 +315,7 @@ claude> /testing-agent
```
This generates and runs:
- **Constraint tests** - Verify agent respects constraints
- **Success tests** - Verify agent achieves success criteria
- **Integration tests** - End-to-end workflows
@@ -407,14 +414,14 @@ my_agent/
### File Naming
| Type | Convention | Example |
| ------------------- | ------------------------ | --------------------------- |
| Modules | snake_case | `ticket_handler.py` |
| Classes | PascalCase | `TicketHandler` |
| Functions/Variables | snake_case | `process_ticket()` |
| Constants | UPPER_SNAKE_CASE | `MAX_RETRIES = 3` |
| Test files | `test_` prefix | `test_ticket_handler.py` |
| Agent packages | snake_case | `support_ticket_agent/` |
| Type | Convention | Example |
| ------------------- | ---------------- | ------------------------ |
| Modules | snake_case | `ticket_handler.py` |
| Classes | PascalCase | `TicketHandler` |
| Functions/Variables | snake_case | `process_ticket()` |
| Constants | UPPER_SNAKE_CASE | `MAX_RETRIES = 3` |
| Test files | `test_` prefix | `test_ticket_handler.py` |
| Agent packages | snake_case | `support_ticket_agent/` |
### Import Order
+2 -2
View File
@@ -11,7 +11,7 @@ Complete setup guide for building and running goal-driven agents with the Aden A
This will:
- Check Python version (requires 3.10+, recommends 3.11+)
- Check Python version (requires 3.11+)
- Install the core framework package (`framework`)
- Install the tools package (`aden_tools`)
- Fix package compatibility issues (openai + litellm)
@@ -54,7 +54,7 @@ python -c "import litellm; print('✓ litellm OK')"
### Python Version
- **Minimum:** Python 3.10
- **Minimum:** Python 3.11
- **Recommended:** Python 3.11 or 3.12
- **Tested on:** Python 3.11, 3.12, 3.13
+4 -1
View File
@@ -7,10 +7,13 @@ requires-python = ">=3.11"
dependencies = [
"pydantic>=2.0",
"anthropic>=0.40.0",
"httpx>=0.27.0",
"litellm>=1.81.0",
"mcp>=1.0.0",
"fastmcp>=2.0.0",
"pytest>=8.0",
"pytest-asyncio>=0.23",
"pytest-xdist>=3.0",
"litellm>=1.81.0",
]
[project.optional-dependencies]
+2 -2
View File
@@ -56,8 +56,8 @@ PYTHON_MINOR=$($PYTHON_CMD -c 'import sys; print(sys.version_info.minor)')
echo -e " Detected Python: ${GREEN}$PYTHON_VERSION${NC}"
if [ "$PYTHON_MAJOR" -lt 3 ] || ([ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 10 ]); then
echo -e "${RED}Error: Python 3.10+ is required (found $PYTHON_VERSION)${NC}"
if [ "$PYTHON_MAJOR" -lt 3 ] || ([ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 11 ]); then
echo -e "${RED}Error: Python 3.11+ is required (found $PYTHON_VERSION)${NC}"
echo "Please upgrade your Python installation"
exit 1
fi
+2 -2
View File
@@ -45,8 +45,8 @@ PYTHON_MINOR=$($PYTHON_CMD -c 'import sys; print(sys.version_info.minor)')
echo -e "${BLUE}Detected Python:${NC} $PYTHON_VERSION"
if [ "$PYTHON_MAJOR" -lt 3 ] || ([ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 10 ]); then
echo -e "${RED}Error: Python 3.10+ is required (found $PYTHON_VERSION)${NC}"
if [ "$PYTHON_MAJOR" -lt 3 ] || ([ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 11 ]); then
echo -e "${RED}Error: Python 3.11+ is required (found $PYTHON_VERSION)${NC}"
echo "Please upgrade your Python installation"
exit 1
fi
+1 -2
View File
@@ -3,7 +3,7 @@ name = "tools"
version = "0.1.0"
description = "Tools library for the Aden agent framework"
readme = "README.md"
requires-python = ">=3.10"
requires-python = ">=3.11"
license = { text = "Apache-2.0" }
authors = [
{ name = "Aden", email = "team@aden.ai" }
@@ -14,7 +14,6 @@ classifiers = [
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]