49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
# Common Agentic Patterns
|
|
|
|
## Pattern 1: Sequential Workflow
|
|
|
|
Tools execute in sequence (search → book → confirm):
|
|
|
|
```python
|
|
# User: "Book a flight to Paris"
|
|
# Agent executes:
|
|
1. search_flights(origin="SF", destination="Paris", ...)
|
|
2. book_flight(flight_id="F1", passengers=[...])
|
|
3. send_confirmation(confirmation_id="ABC123")
|
|
```
|
|
|
|
## Pattern 2: Parallel Tool Execution
|
|
|
|
Multiple independent tools (flights + hotels):
|
|
|
|
```python
|
|
# User: "Find flights and hotels for Paris trip"
|
|
# Agent can call in parallel (if your implementation supports it):
|
|
1. search_flights(destination="Paris", ...)
|
|
2. search_hotels(city="Paris", ...)
|
|
```
|
|
|
|
## Pattern 3: Conditional Branching
|
|
|
|
Tool selection based on context:
|
|
|
|
```python
|
|
# User: "Plan my trip"
|
|
# Agent decides which tools to call based on conversation:
|
|
if budget_conscious:
|
|
search_flights(class="economy")
|
|
else:
|
|
search_flights(class="business")
|
|
```
|
|
|
|
## Important Reminders
|
|
|
|
1. **Always set `strict: true`** - This enables validation
|
|
2. **Require `additionalProperties: false`** - Enforced by strict mode
|
|
3. **Use enums for constrained values** - Better than free text
|
|
4. **Clear descriptions matter** - Claude uses these to decide when to call tools
|
|
5. **Tool inputs are guaranteed valid** - No validation needed in tool functions
|
|
6. **Handle tool execution failures** - External APIs can fail
|
|
7. **Test multi-step workflows** - Edge cases appear in tool composition
|
|
8. **Monitor agent behavior** - Track tool usage patterns and failures
|