Architecture Overview
=====================
Pili implements a sophisticated **3-agent orchestration architecture** designed for scalability, maintainability, and intelligent request handling.
System Architecture
===================
The Pili architecture consists of multiple layers working together:
.. mermaid::
graph TB
%% Main API Layer
API["REST API Layer
FastAPI + Swagger UI"]
%% Orchestration Agent
ORCH["🎯 Orchestration Agent
Request Router & Coordinator"]
%% Specialized Agents
LOGGER["📝 Logger Agent
MCP Integration"]
COACH["🏃♀️ Coach Agent
AI Planning"]
%% External Services
MCP["MCP Server
Scaffold Shape"]
MEMORY["Memory Service
Conversation History"]
LLM["LLM Provider
OpenAI/Local/VLLM"]
%% Connections
API --> ORCH
ORCH --> LOGGER
ORCH --> COACH
LOGGER --> MCP
LOGGER --> MEMORY
COACH --> LLM
COACH --> MEMORY
%% Styling
classDef apiLayer fill:#e1f5fe,stroke:#01579b,stroke-width:2px
classDef agent fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef service fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
class API apiLayer
class ORCH,LOGGER,COACH agent
class MCP,MEMORY,LLM service
Core Components
===============
1. **Orchestration Agent** 🎯
- Entry point for all user requests
- Intelligent routing based on intent analysis
- Response coordination and formatting
- Conversation flow management
2. **Logger Agent** 📝
- Direct integration with MCP server
- Activity tracking and logging
- Club management operations
- Data retrieval and synchronization
3. **Coach Agent** 🏃♀️
- AI-powered workout planning
- Progress analysis and insights
- Motivational coaching
- Personalized recommendations
4. **Memory Service** 🧠
- Persistent conversation history
- User context maintenance
- Session management
- Cross-agent data sharing
Agent Interaction Patterns
===========================
Simple Request Flow
-------------------
For straightforward requests (e.g., "Log my run"):
.. code-block:: text
1. User sends message to REST API
2. Orchestration Agent analyzes intent
3. Routes to Logger Agent
4. Logger Agent calls MCP server
5. Response flows back through Orchestration Agent
6. Formatted response returned to user
Complex Request Flow
--------------------
For multi-step requests (e.g., "Analyze my progress and suggest improvements"):
.. code-block:: text
1. User sends message to REST API
2. Orchestration Agent identifies complex intent
3. Coordinates Logger Agent (data retrieval)
4. Coordinates Coach Agent (analysis & planning)
5. Orchestration Agent combines results
6. Formatted comprehensive response returned
Request Routing Logic
=====================
The Orchestration Agent uses sophisticated intent analysis:
**Intent Categories**
.. list-table::
:header-rows: 1
:widths: 25 25 25 25
* - Intent Type
- Keywords/Patterns
- Target Agent
- Examples
* - **Activity Logging**
- "ran", "did", "completed", "workout"
- Logger Agent
- "I ran 5k today"
* - **Data Retrieval**
- "show", "get", "history", "progress"
- Logger Agent
- "Show my activities"
* - **Planning**
- "plan", "schedule", "program", "routine"
- Coach Agent
- "Create a training plan"
* - **Analysis**
- "analyze", "insights", "trends", "compare"
- Logger + Coach
- "Analyze my progress"
* - **Motivation**
- "motivation", "encourage", "support"
- Coach Agent
- "I need motivation"
**Decision Tree**
.. code-block:: python
def analyze_intent(user_message: str) -> AgentRoute:
if contains_activity_data(user_message):
return Route.LOGGER_AGENT
elif contains_planning_request(user_message):
return Route.COACH_AGENT
elif contains_analysis_request(user_message):
return Route.LOGGER_AND_COACH
elif contains_motivation_request(user_message):
return Route.COACH_AGENT
else:
return Route.ORCHESTRATION_ONLY
Technology Stack
================
**Core Framework**
- **FastAPI**: High-performance REST API framework
- **Pydantic**: Data validation and serialization
- **Uvicorn**: ASGI server for production deployment
**AI/ML Stack**
- **LangChain**: Agent orchestration and LLM integration
- **LangGraph**: Multi-agent workflow management
- **LangSmith**: Monitoring and observability
**LLM Integration**
- **OpenAI**: Primary LLM provider
- **Local LLMs**: Ollama, VLLM support
- **Streaming**: Real-time response generation
**External Integration**
- **MCP Protocol**: Scaffold Your Shape integration
- **HTTP/REST**: External service communication
Data Flow Architecture
======================
**Memory Management**
.. code-block:: text
User Request → Memory Retrieval → Agent Processing → Memory Update → Response
**Conversation Context**
- Each user has isolated conversation history
- Agents share context through memory service
- Session-based memory management
- Automatic memory cleanup and optimization
**Error Handling**
- Graceful degradation on external service failures
- Retry logic with exponential backoff
- Fallback responses when agents are unavailable
- Comprehensive error logging and monitoring
Scalability Considerations
==========================
**Horizontal Scaling**
- Stateless agent design
- External memory service
- Load balancer compatible
- Container-ready architecture
**Performance Optimization**
- Async/await throughout
- Connection pooling
- Response caching where appropriate
- Memory usage optimization
**Monitoring & Observability**
- LangSmith integration for AI monitoring
- Structured logging
- Health check endpoints
- Metrics collection
Security Architecture
=====================
**API Security**
- Input validation and sanitization
- Rate limiting
- CORS configuration
- Environment-based secrets management
**External Service Security**
- Secure API key management
- TLS/HTTPS enforcement
- Request/response validation
- Timeout and retry limits
**Data Privacy**
- User data isolation
- Memory encryption options
- Audit logging
- GDPR compliance ready
Deployment Architecture
=======================
**Container Strategy**
- Docker containerization
- Docker Compose for development
- Production-ready Dockerfile
- Health check integration
**Environment Management**
- Development/staging/production configs
- Environment variable management
- Secrets management
- Configuration validation
**Monitoring & Logging**
- Centralized logging
- Application metrics
- Health monitoring
- Error tracking
Future Architecture Considerations
==================================
**Agent Extensibility**
- Plugin architecture for new agents
- Dynamic agent registration
- Agent-specific configuration
- Hot-reloading capabilities
**Advanced Features**
- Multi-language support
- Voice interface integration
- Real-time notifications
- Advanced analytics
**Integration Expansion**
- Additional fitness platform support
- Third-party service integrations
- Webhook support
- GraphQL API option
This architecture provides a solid foundation for Pili's current capabilities while maintaining flexibility for future enhancements and scaling requirements.