TDA Pattern
Top-Down Agent (TDA) is a pattern for coordinating multiple AI agents in a hierarchical structure.
Overview
┌─────────────┐
│ Manager │ Delegates tasks, monitors progress
└──────┬──────┘
│
┌───┴───┐
│ │
┌──▼──┐ ┌──▼──┐
│ W1 │ │ W2 │ Execute specific tasks
└─────┘ └─────┘
Roles
Manager
The Manager role:
- Receives high-level tasks from the user
- Breaks tasks into smaller pieces
- Assigns work to Workers
- Monitors progress and handles issues
- Does NOT write code directly
Worker
The Worker role:
- Receives specific tasks from Manager
- Executes tasks autonomously
- Reports completion/issues to Manager
- Focuses on implementation details
Setting Up TDA
1. Start Manager Session
ilogsession start project-mgr -p tda-manager -d /path/to/project
2. Start Worker Sessions
# In separate terminals
ilogsession start worker1 -p tda-worker -d /path/to/project
ilogsession start worker2 -p tda-worker -d /path/to/project
3. Manager Creates Workers
From the Manager session:
# Create a worker session
ilogsession start project-mgr-backend -p tda-worker -d /path/to/project
# Send task to worker
imessenger send project-mgr-backend "Implement user authentication API"
# Approve permissions when needed
imessenger approve project-mgr-backend
Communication
Workers and Managers communicate via imessenger:
# Manager sends task
imessenger send worker1 "Create login endpoint"
# Worker can ask questions
imessenger send project-mgr "Should I use JWT or sessions?"
# Manager responds
imessenger send worker1 "Use JWT with refresh tokens"
Naming Convention
Use consistent naming for sessions:
{project-name}-{role}
{project-name}-{role}-{specialty}
Examples:
myapp-mgr- Managermyapp-frontend- Frontend workermyapp-backend- Backend workermyapp-test- Testing worker
Best Practices
1. Clear Task Delegation
# Good: Specific task
imessenger send worker1 "Add email validation to /api/signup endpoint"
# Bad: Vague task
imessenger send worker1 "Fix the authentication"
2. Monitor Progress
# Check worker status
imonitor --session worker1
# View all active sessions
imonitor
3. Handle Blocks
When a worker needs help:
# Worker signals they're blocked
imessenger send project-mgr "BLOCKED: Need database schema for users"
# Manager provides guidance or reassigns
Example Workflow
# Terminal 1: Manager
ilogsession start myapp-mgr -p tda-manager -d ./myapp
# Manager receives: "Add user authentication"
# Manager creates workers and delegates:
ilogsession start myapp-auth -p tda-worker -d ./myapp
imessenger send myapp-auth "Implement JWT authentication"
# Terminal 2: Worker
# Worker receives task and implements it
# Worker commits changes and reports completion
imessenger send myapp-mgr "DONE: JWT auth implemented with tests"