Multi-Session Agent Development Guide
Overview​
This guide explains how to run multiple AI agent sessions in parallel without conflicts using CODITECT's agent system and CODI monitoring.
Agent Types​
🎯 CODITECT Agents (Primary - Strategic)​
Located in agents/coditect/:
- orchestrator - Multi-agent coordination, task distribution, quality gates
- rust-developer - Rust backend, API implementation, business logic
- frontend-developer - React/TypeScript UI, components, state management
- database-specialist - FoundationDB schemas, multi-tenant patterns
- cloud-architect - GCP infrastructure, CI/CD, deployment
- security-specialist - Authentication, hardening, vulnerability assessment
- testing-specialist - Test coverage (95%), TDD, integration tests
- monitoring-specialist - Observability, metrics, logging infrastructure
- qa-reviewer - Documentation quality, ADR compliance (40/40)
- ai-specialist - AI provider integration, MCP, routing
🤖 Claude Sub-Agents (Tactical - Deep Analysis)​
Located in agents/claude-subagents/:
Used by CODITECT agents for specialized analysis via Task tool delegation.
Starting Multiple Sessions​
1. Session Naming Convention​
# Format: [AGENT-TYPE]-SESSION-[DATE]-[SEQUENCE/PURPOSE]
export SESSION_ID="ORCHESTRATOR-SESSION-2025-09-21-01"
export SESSION_ID="RUST-DEVELOPER-SESSION-2025-09-21-API"
export SESSION_ID="FRONTEND-DEVELOPER-SESSION-2025-09-21-UI"
2. terminal Setup (Each Session)​
# terminal 1: Orchestrator
cd /home/halcasteel/v4
export SESSION_ID="ORCHESTRATOR-SESSION-$(date +%Y-%m-%d)-01"
source .codi/scripts/infrastructure/session-start-hook.sh
source .codi/scripts/set-session-identity.sh "$SESSION_ID"
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Starting orchestration session" "SESSION_START"
# terminal 2: Rust Developer
cd /home/halcasteel/v4
export SESSION_ID="RUST-DEVELOPER-SESSION-$(date +%Y-%m-%d)-API"
source .codi/scripts/set-session-identity.sh "$SESSION_ID"
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Starting API development" "SESSION_START"
# terminal 3: Frontend Developer
cd /home/halcasteel/v4
export SESSION_ID="FRONTEND-DEVELOPER-SESSION-$(date +%Y-%m-%d)-UI"
source .codi/scripts/set-session-identity.sh "$SESSION_ID"
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Starting UI development" "SESSION_START"
3. Preventing Collisions​
File Ownership Claims​
Each agent should claim their working files:
# Rust Developer claims API files
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID claiming src/api/ for development" "FILE_CLAIM"
# Frontend Developer claims UI files
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID claiming src/frontend/ for development" "FILE_CLAIM"
Check Active Sessions​
# See who's working where
grep "FILE_CLAIM" .codi/logs/codi-ps.log | tail -20
grep "SESSION_START" .codi/logs/codi-ps.log | tail -10
Coordination Protocol​
# Before modifying shared files
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Requesting coordination for shared file X" "COORDINATE"
# Hand off work
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: API endpoints complete, ready for frontend integration" "HANDOFF"
# Report conflicts
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: CONFLICT detected in shared config file" "CONFLICT"
Orchestrator Usage​
Starting an Orchestrator Session​
# The orchestrator coordinates other agents
export SESSION_ID="ORCHESTRATOR-SESSION-$(date +%Y-%m-%d)-MAIN"
source .codi/scripts/infrastructure/session-start-hook.sh
source .codi/scripts/set-session-identity.sh "$SESSION_ID"
# Log orchestration start
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Starting multi-agent orchestration" "ORCHESTRATE"
Task Distribution Example​
# Orchestrator assigns tasks
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Assigning authentication module to RUST-DEVELOPER-SESSION-01" "TASK_ASSIGN"
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Assigning login UI to FRONTEND-DEVELOPER-SESSION-01" "TASK_ASSIGN"
# Monitor progress
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Monitoring integration between API and UI teams" "MONITOR"
# Quality gates
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Enforcing 95% test coverage requirement" "QUALITY_GATE"
Delegation to Claude Sub-Agents​
When CODITECT agents need deep analysis:
# Example: Rust developer needs security review
Task(
description="Security audit of authentication module",
prompt="Review src/api/auth/ for OWASP compliance and multi-tenant isolation",
subagent_type="security-specialist"
)
Session Lifecycle​
1. Session Start​
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Starting work on [specific task]" "SESSION_START"
2. Progress Updates (Every 30 mins)​
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Progress update - completed X, working on Y" "PROGRESS"
3. Session Handoff​
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Handing off to [NEXT-SESSION] - [summary]" "HANDOFF"
4. Session End​
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Session complete - [summary]" "SESSION_END"
Monitoring Tools​
Real-time Activity​
# Watch all agent activity
tail -f .codi/logs/codi-ps.log | jq '. | select(.actor.type == "agent")'
# Filter by session
tail -f .codi/logs/codi-ps.log | jq '. | select(.sessionId == "RUST-DEVELOPER-SESSION-01")'
Web Dashboard​
# Start web interface (if not already running)
cd .codi/tools && node api-server.js > server.log 2>&1 &
# Access tools
open http://localhost:8080/agent-dashboard.html
open http://localhost:8080/activity-timeline.html
Best Practices​
- Always Set Session Identity - Every terminal needs a unique SESSION_ID
- Claim Files Early - Prevent conflicts by claiming ownership
- Log Regularly - Progress updates every 30 minutes minimum
- Coordinate Shared Resources - Use COORDINATE action for shared files
- Use Orchestrator for Complex Tasks - Let orchestrator manage multi-agent workflows
- Delegate Specialized Analysis - Use Claude sub-agents for deep dives
Example: Three-Agent Workflow​
# terminal 1: Orchestrator plans the work
ORCHESTRATOR: "Breaking down user authentication feature into tasks"
ORCHESTRATOR: "Assigning backend to RUST-DEVELOPER"
ORCHESTRATOR: "Assigning frontend to FRONTEND-DEVELOPER"
# terminal 2: Rust Developer implements API
RUST-DEVELOPER: "Claiming src/api/auth/"
RUST-DEVELOPER: "Implementing JWT authentication"
RUST-DEVELOPER: "Tests passing, 96% coverage"
# terminal 3: Frontend Developer builds UI
FRONTEND-DEVELOPER: "Claiming src/frontend/pages/auth/"
FRONTEND-DEVELOPER: "Building login/register forms"
FRONTEND-DEVELOPER: "Integrating with API endpoints"
# Orchestrator monitors and coordinates
ORCHESTRATOR: "Integration test between API and UI"
ORCHESTRATOR: "Quality gate passed - ready for review"
Troubleshooting​
Session Conflicts​
# Check who owns a file
grep "FILE_CLAIM.*filename" .codi/logs/codi-ps.log | tail -5
# Request coordination
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Requesting ORCHESTRATOR coordination for conflict" "HELP"
Lost Session​
# Recover session identity
export SESSION_ID="[YOUR-PREVIOUS-SESSION-ID]"
./.codi/scripts/logging/actors/codi-log-ai.sh "$SESSION_ID: Session recovered, resuming work" "SESSION_RECOVER"
For individual agent capabilities, see the specific guides in agents/coditect/ and agents/claude-subagents/.