A step up from Hello World, this example demonstrates agents with tools, memory, and more sophisticated interactions.
- Creating agents with custom tools
- Memory management and conversation history
- Tool integration and execution
- Template variables in system prompts
- Agent configuration options
simple-agent/
├── README.md # This guide
├── requirements.txt # Dependencies
├── .env.example # Environment template
├── main.py # Main application
├── config/
│ ├── agents.py # Agent definitions
│ └── tools.py # Tool definitions
├── data/
│ └── sample_data.json # Sample data for tools
└── docs/
├── setup.md # Setup instructions
└── usage.md # Usage examples
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your LLM settings
# Run the example
python main.py- Math calculations
- File operations
- Data processing
- API simulations
- Conversation history
- Context retention
- Memory limits
- Custom system prompts
- Template variables
- Tool assignments
@app.agent(
name="CalculatorAgent",
tools=["calculate", "save_result"],
system_prompt="You are a calculator assistant. Use tools to perform calculations and save results."
)
async def calculator_agent():
pass@app.tool(description="Performs mathematical calculations")
async def calculate(expression: str) -> str:
try:
result = eval(expression) # Note: Use safely in production
return f"Result: {result}"
except Exception as e:
return f"Error: {str(e)}"- Calculator agent for math operations
- File manager for data operations
- Personal assistant with memory
- Multi-turn conversations
- Tool Registration: Using
@app.tooldecorator - Agent-Tool Binding: Assigning tools to specific agents
- Memory Persistence: Maintaining conversation context
- Error Handling: Graceful tool failure management
- Explore Tool Integration for advanced tool usage
- Try Sequential Pattern for multi-agent workflows