# Features Documentation ## Table of Contents - [Core Features](#core-features) - [Local LLM Support and Limits](#local-llm-support-and-limits) - [Agentic Infrastructure](#agentic-infrastructure) - [Agentic Team Features](#agentic-team-features) - [CLI Features](#cli-features) - [Web UI Features](#web-ui-features) - [Conversation Mode](#conversation-mode) - [Workflow System](#workflow-system) - [AI Agent Integration](#ai-agent-integration) - [Session Management](#session-management) - [File Management](#file-management) - [Security Features](#security-features) - [Monitoring & Metrics](#monitoring--metrics) - [Project-Scoped Context Graphs](#project-scoped-context-graphs) - [Graphify — Code Knowledge Graph Engine](#graphify--code-knowledge-graph-engine) - [Obsidian Vault Export](#obsidian-vault-export) - [Advanced Features](#advanced-features) - [Production Readiness](#production-readiness) ## Core Features ### Multi-Agent Collaboration The orchestrator coordinates multiple AI coding assistants to work together on complex tasks. ```mermaid graph LR A[Task] --> B[Codex
Implementation] B --> C[Gemini
Review] C --> D[Claude
Refinement] D --> E[Quality Code] ``` **Benefits:** - **Diverse Perspectives**: Each AI has unique strengths - **Quality Assurance**: Multiple review cycles - **Best Practices**: Automated code review - **Efficiency**: Parallel execution where possible **Supported AI Agents:** - **Claude Code** (Anthropic) - Refinement and documentation - **OpenAI Codex** - Code implementation - **Google Gemini** - Code review and analysis - **GitHub Copilot** - Suggestions and alternatives ### Configurable Workflows Define how agents collaborate for different scenarios. | Workflow | Agents | Iterations | Use Case | |----------|--------|------------|----------| | **default** | Codex → Gemini → Claude | 3 | Production code with quality assurance | | **quick** | Codex only | 1 | Fast prototyping | | **thorough** | Codex → Copilot → Gemini → Claude → Gemini | 5 | Mission-critical code | | **review-only** | Gemini → Claude | 2 | Existing code improvement | | **document** | Claude → Gemini | 2 | Documentation generation | **Custom Workflows:** ```yaml workflows: custom: max_iterations: 4 min_suggestions_threshold: 5 steps: - agent: "codex" task: "implement" - agent: "gemini" task: "security_review" - agent: "claude" task: "refine" ``` ### Local LLM Support and Limits The platform supports local model adapters alongside Claude, Codex, Gemini, and Copilot. Local adapters participate in workflow routing, offline execution, and cloud-to-local fallback. **Supported local adapter types:** - `ollama` - `llamacpp` - `localai` - `text-generation-webui` | Adapter Family | Execution Path | Direct Workspace File Edits | |----------|----------|----------| | CLI adapters (`claude`, `codex`, `gemini`, `copilot`) | CLI process with workspace execution | ✅ Yes | | Local adapters (`ollama`, `llamacpp`, `localai`, `text-generation-webui`) | HTTP completion APIs (`/api/generate`, `/v1/completions`) | ❌ No (text output only) | **Best use for local models:** - Offline drafting and analysis - Review/support roles in hybrid workflows - Continuity fallback when cloud agents are unavailable **Operational support:** - `./ai-orchestrator shell --offline` - `./ai-orchestrator models status|list|pull|remove` > [!IMPORTANT] > While it is possible to make local LLMs directly edit files (e.g., via a `file-editor` tool), this approach is currently disabled to prevent unintended destructive changes. Local adapters are advisory — they provide text output that the Orchestrator can use to inform the next steps, but they do not have direct write access to the workspace. This design choice prioritizes safety and predictability while still leveraging local models for their strengths in drafting and feedback. The hard part is not feasibility, it’s safety and reliability: permissions, diff constraints, validation/tests before write, rollback, and preventing bad edits. ## Agentic Infrastructure Beyond the core engines, the platform provides comprehensive infrastructure to empower AI agents: ### Specialized Agents 9 domain-expert agents available for both Claude and Codex: ```mermaid mindmap root((Specialized
Agents)) Web web-frontend React/Vue/Angular CSS/Tailwind Accessibility Backend backend-api REST/GraphQL Microservices database-architect Schema Design Query Optimization Security security-specialist OWASP Top 10 Secure Coding Infrastructure devops-infrastructure Docker/K8s CI/CD performance-engineer Profiling Optimization AI/ML ai-ml-engineer ML Pipelines RAG Systems Mobile mobile-developer React Native Flutter Documentation documentation-writer API Docs Architecture ``` **Usage:** ```bash # Claude with specialized agent claude -a security-specialist "Review this authentication code" claude -a backend-api "Design REST API for user management" # Codex with specialized agent codex --agent ai-ml-engineer "Build RAG pipeline" ``` ### Skills Library 22 reusable skills across 6 categories: | Category | Skills | Examples | |----------|--------|----------| | **Development** | 6 | react-components, rest-api-design, python-async | | **Testing** | 4 | unit-testing, integration-testing, tdd | | **Security** | 4 | input-validation, authentication, secure-coding | | **DevOps** | 3 | docker-containerization, ci-cd-pipelines, kubernetes | | **AI/ML** | 3 | embeddings-retrieval, llm-integration, rag-pipeline | | **Documentation** | 3 | api-documentation, architecture-docs | Skills activate automatically based on task context: ```bash claude "Create a React component with unit tests" # → Automatically uses: react-components, unit-testing skills ``` ### MCP Tools 34+ tools exposed via Model Context Protocol: ```mermaid graph LR subgraph "MCP Tools" subgraph "Code Analysis" CA[analyze_complexity] CP[find_patterns] CD[analyze_deps] end subgraph "Security" SS[scan_secrets] SI[scan_injection] SH[check_headers] end subgraph "Testing" TC[generate_tests] TS[generate_stubs] CO[analyze_coverage] end subgraph "DevOps" DF[analyze_dockerfile] DC[check_ci_config] DL[deploy_checklist] end subgraph "Context" ST[store_context] SR[search_context] LM[log_mistake] end end ``` ### Graph Context System Persistent memory with hybrid search for learning from past tasks: ```mermaid graph TB subgraph "Context System" STORE[(Graph Store
SQLite + FTS5)] BM25[BM25 Search] EMBED[Semantic Search
all-MiniLM-L6-v2] RRF[Hybrid Search
RRF Fusion] end subgraph "Node Types" CONV[Conversations] TASK[Tasks] MISTAKE[Mistakes] PATTERN[Patterns] end CONV & TASK & MISTAKE & PATTERN --> STORE STORE --> BM25 & EMBED BM25 & EMBED --> RRF ``` **Key Features:** - 7 node types (Conversation, Task, Mistake, Pattern, Decision, CodeSnippet, Preference) - 12 edge types for semantic relationships - Hybrid search combining BM25 + semantic embeddings - Automatic storage of completed tasks - Mistake logging for learning - **Obsidian vault export** — visualize context graphs in [Obsidian](https://obsidian.md)'s graph view with color-coded node types **Usage:** ```python from orchestrator.context import MemoryManager manager = MemoryManager() # Store task result manager.store_task("Implement auth", outcome="completed", success=True) # Log mistake for learning manager.log_mistake( error_description="Forgot input validation", context="User registration", correction="Always validate with Pydantic" ) # Search relevant context results = manager.search("authentication patterns", limit=5) ``` ### Domain Rules Best practices encoded as rules: | Category | Topics | |----------|--------| | **Security** | Input validation, authentication, secrets management | | **Database** | Schema design, indexing, query optimization | | **API Design** | REST conventions, versioning, error handling | | **Performance** | Profiling, caching, async patterns | | **AI/ML** | Data handling, embeddings, RAG pipelines | 📚 **[Full Agentic Infrastructure Documentation →](AGENTIC_INFRA.md)** ## Agentic Team Features `AGENTIC_TEAM` is a standalone runtime that is separate from predefined orchestrator workflows. It models a true role-based software team with open routing between roles. ### True Inter-Role Communication Roles pass messages and subtasks to each other dynamically on every turn. ```mermaid graph LR U[User Task] --> PM[Project Manager] PM --> SA[Software Architect] PM --> SD[Software Developer] PM --> QA[QA Engineer] PM --> DO[DevOps Engineer] SA --> SD SD --> QA SD --> DO QA --> PM DO --> PM ``` What this enables: - Runtime routing decisions instead of fixed step chains. - Cross-functional handoffs (for example developer -> QA -> PM). - Role-level context accumulation through transcript history. ### Team Lead Gatekeeping Only the lead role can finalize and return output to the user. ```mermaid flowchart TD A[Role Decision] --> B{Action = finalize?} B -->|No| C[Message routed to target role] B -->|Yes| D{Current role is lead?} D -->|Yes| E[Return final response to user] D -->|No| F[Normalize to message -> lead role] F --> C ``` Behavioral guarantees: - Non-lead finalize requests are rewritten to lead-directed messages. - Invalid `to_role` routes are normalized to lead role. - Team can run until lead finalization or max-turn cap. ### Model-Agnostic Role Mapping Every role can be bound to any available model adapter (cloud or local). ```mermaid flowchart TB R1[project_manager] --> A1[claude or gemini or codex or copilot] R2[software_architect] --> A2[Any enabled adapter] R3[software_developer] --> A3[Any enabled adapter] R4[qa_engineer] --> A4[Any enabled adapter] R5[devops_engineer] --> A5[Any enabled adapter] ``` Validation rules: - Run is blocked if any role maps to an unavailable agent. - Defaults are auto-populated when mappings are missing. - Guided config forms in UI keep values constrained. ### Live Communication Graph and Timeline Standalone Agentic Team UI streams communication events in real time. ```mermaid sequenceDiagram participant UI as Browser participant API as agentic_team/ui/app.py participant ENG as AgenticTeamEngine UI->>API: POST /api/execute API->>ENG: execute_task(turn_callback) loop per turn ENG-->>API: step payload API-->>UI: team_turn API-->>UI: team_communication API-->>UI: progress_log end API-->>UI: task_completed ``` ```mermaid flowchart LR T[team_turn events] --> TL[Timeline panel] C[team_communication events] --> G[Directed graph edges] L[progress_log events] --> R[Runtime logs] TL --> S[Selected turn] S --> G ``` UI capabilities: - Directed edge visualization for inter-role communication. - Edge aggregation counts for repeated routes. - Highlighting of latest and selected communication paths. - Guided config editor for `agents`, `workflows`, `settings`, and `agentic_team`. ### Standalone Agentic CLI REPL Agentic team mode is available in dedicated CLI mode: ```bash ./ai-orchestrator agentic-shell ./ai-orchestrator agentic-shell --max-turns 16 ./ai-orchestrator agentic-shell --offline ``` ```mermaid flowchart TD S[agentic-shell start] --> C[Load team config] C --> I[Show agents + role map] I --> P[Prompt task] P --> E[Execute team loop] E --> O[Render communication table + final output] O --> N{Next input?} N -->|yes| P N -->|no| X[Exit] ``` ## MCP Server (Model Context Protocol) Both systems are exposed as MCP tools via a FastMCP 3.x server, enabling integration with Claude Desktop, LLM agents, and any MCP-compatible client. ```mermaid graph TD subgraph "MCP Tools" OE[orchestrator_execute] AE[agentic_team_execute] OL[orchestrator_list_agents] AL[agentic_team_list_agents] OH[orchestrator_health] AH[agentic_team_health] OW[orchestrator_list_workflows] AC[agentic_team_config] AV[agentic_team_validate] LE[list_engines] end OE & OL & OH & OW --> O[Orchestrator Engine] AE & AL & AH & AC & AV --> A[Agentic Team Engine] LE --> O & A ``` ### Key MCP Features - **10 tools** covering both engines: execute, list, health, config, validate - **2 resources** serving live YAML configurations - **Input validation** via `Annotated[T, Field()]` with automatic JSON schema - **Dual transport**: stdio (Claude Desktop) and streamable HTTP (remote) - **In-memory client** for fast testing without subprocess overhead - **Python client wrappers**: `OrchestratorMCPClient` and `AgenticTeamMCPClient` - **Lifespan management**: engines initialised once at server startup ## CLI Features ### Interactive Shell

Interactive Shell

A powerful REPL-style interface for natural conversations with AI agents. **Features:** - ✅ Multi-round conversations with context preservation - ✅ Smart follow-up detection - ✅ Full readline support (arrow keys, history, tab completion) - ✅ Session save/load - ✅ Real-time progress indicators - ✅ Colored output with Rich library - ✅ Command history across sessions - ✅ Auto-completion for commands and workflows **Example Session:** ```bash $ ./ai-orchestrator shell orchestrator (default) > create a REST API for blog posts ✓ Task completed successfully! 📁 Generated Files: 📄 api/blog.py 📄 api/models.py 📄 api/routes.py Workspace: ./workspace orchestrator (default) > add authentication with JWT 💡 Detected as follow-up to previous task ✓ Authentication added! 📁 Generated Files: 📄 api/auth.py 📄 api/middleware.py orchestrator (default) > also add rate limiting 💡 Detected as follow-up to previous task ✓ Rate limiting implemented! orchestrator (default) > /save blog-api-project ✓ Session saved to: sessions/blog-api-project.json orchestrator (default) > /exit Goodbye! ``` ### CLI Commands | Command | Description | Example | |---------|-------------|---------| | `/help` | Show all available commands | `/help` | | `/followup ` | Explicit follow-up to previous task | `/followup add tests` | | `/agents` | List all available agents and status | `/agents` | | `/workflows` | List all available workflows | `/workflows` | | `/switch ` | Switch to specific agent | `/switch claude` | | `/workflow ` | Change current workflow | `/workflow thorough` | | `/history` | Show conversation history | `/history` | | `/context` | Show current context | `/context` | | `/save [name]` | Save current session | `/save my-project` | | `/load ` | Load saved session | `/load my-project` | | `/reset` | Clear all context | `/reset` | | `/info` | Show system information | `/info` | | `/clear` | Clear screen | `/clear` | | `/exit`, `/quit` | Exit the shell | `/exit` | ### One-Shot Mode Execute single tasks without interactive shell: ```bash # Basic usage ./ai-orchestrator run "Create a Python calculator" # With workflow selection ./ai-orchestrator run "Build authentication system" --workflow default # With options ./ai-orchestrator run "Refactor database layer" \ --workflow thorough \ --max-iterations 5 \ --verbose # Dry run to see execution plan ./ai-orchestrator run "Add error handling" --dry-run # Custom output directory ./ai-orchestrator run "Generate CLI tool" --output ./my-output ``` ### Smart Follow-Up Detection The CLI automatically detects when messages should continue from previous tasks. **Auto-Detected Keywords:** - Action words: `add`, `also`, `now`, `then`, `next`, `improve`, `fix`, `change`, `update` - Request words: `can you`, `please`, `try`, `would you` **Behavior:** ```mermaid graph TD A[User Input] --> B{Has Previous Task?} B -->|No| C[Execute New Task] B -->|Yes| D{Contains Keywords?} D -->|Yes| E[Auto Follow-Up] D -->|No| F{Message Short?} F -->|Yes| G[Prompt User] F -->|No| H[Execute New Task] G --> I{User Choice} I -->|Continue| E I -->|New| H ``` ## Web UI Features

Web UI

### Modern Interface Built with Vue 3, the Web UI provides a rich visual experience: **Technology Stack:** - **Frontend**: Vue 3 (Composition API), Vite, TailwindCSS - **State**: Pinia for reactive state management - **Editor**: Monaco Editor (VS Code engine) - **Real-time**: Socket.IO for live updates - **Backend**: Flask with Flask-SocketIO ### Main Interface Components **Left Sidebar:** - Task input (multi-line textarea) - Workflow selector dropdown - Max iterations slider (1-10) - Execute/Send Message button - Agent status indicators (live) - Generated files list (clickable) **Main Content Area:** - **Output Tab**: Full AI response with syntax highlighting - **Code Editor Tab**: Monaco editor with VS Code features - **Iterations Tab**: Detailed progress tracking **Header:** - Status badge (Idle/Running/Completed/Error) - Conversation mode toggle - Clear button ### Real-Time Features ```mermaid sequenceDiagram participant U as User Browser participant F as Flask Server participant O as Orchestrator U->>F: Submit Task (HTTP) F->>O: Execute Task loop Progress Updates O->>F: Progress Event F->>U: Socket.IO Update U->>U: Update UI end O->>F: Task Complete F->>U: Final Result U->>U: Display Output ``` **Real-time Updates:** - Agent status changes - Progress indicators - File creation notifications - Error alerts - Completion notifications ### Monaco Code Editor Full-featured code editor integrated into the UI: **Features:** - Syntax highlighting for 100+ languages - Line numbers and minimap - Search and replace - Multiple themes - Keyboard shortcuts - IntelliSense-style completion - Error highlighting - Code folding **File Operations:** - Open generated files with click - Edit code in-place - Download files individually - Syntax-aware highlighting - Auto-detection of language ### Conversation Mode Toggle Enable ChatGPT-like continuous conversations: ```mermaid stateDiagram-v2 [*] --> ConversationOff ConversationOff --> ConversationOn: Enable Toggle ConversationOn --> ConversationOff: Disable Toggle ConversationOff: Each message = New Task ConversationOn: Messages continue previous task ``` **When Enabled:** - All messages automatically continue from previous task - Button changes to "Send Message" - Green indicator shows conversation is active - Full context preserved across messages - Visual hints show what you're continuing **When Disabled:** - Each message starts fresh task - Button shows "Execute Task" - No automatic context carryover ### Follow-Up Section Separate green section for quick additions after task completion: **Features:** - Appears after any successful task - Input box for follow-up message - "Go" button to execute - Works independently of conversation mode - Shows previous task context **Use Cases:** - "add tests" - "add error handling" - "improve performance" - "add documentation" ## Conversation Mode ### How It Works **CLI Implementation:** ```mermaid graph TD A[User Message] --> B{Analyze Message} B --> C{Short + Keywords?} C -->|Yes| D[Auto Follow-Up] C -->|No| E{Ambiguous?} E -->|Yes| F[Prompt User] E -->|No| G[New Task] F --> H{User Choice} H -->|Continue| D H -->|New| G ``` **UI Implementation:** - Toggle checkbox controls mode - Visual indicators show status - Separate follow-up section - Context preservation automatic ### Context Preservation What gets preserved in conversation mode: ```yaml context: previous_task: "create a REST API" previous_output: "Full AI response..." generated_files: - "api/routes.py" - "api/models.py" workspace: "./workspace" workflow: "default" timestamp: "2024-01-15T10:30:00Z" ``` ### Best Practices **Use Conversation Mode For:** - ✅ Iterative feature development - ✅ Multi-step refactoring - ✅ Progressive enhancement - ✅ Debug-and-fix cycles - ✅ Building complex features **Don't Use For:** - ❌ Completely unrelated tasks - ❌ Switching between projects - ❌ One-off questions - ❌ Starting fresh implementations ## Workflow System ### Workflow Execution Flow ```mermaid graph TD START[Start] --> LOAD[Load Workflow Config] LOAD --> VALIDATE[Validate Configuration] VALIDATE --> INIT[Initialize Agents] INIT --> ITER{Iteration < Max?} ITER -->|Yes| EXEC[Execute Workflow Steps] EXEC --> AGENT1[Agent 1] AGENT1 --> AGENT2[Agent 2] AGENT2 --> AGENT3[Agent 3] AGENT3 --> COLLECT[Collect Feedback] COLLECT --> CHECK{Sufficient
Suggestions?} CHECK -->|Yes| UPDATE[Update Context] UPDATE --> ITER CHECK -->|No| AGG[Aggregate Results] ITER -->|No| AGG AGG --> REPORT[Generate Report] REPORT --> END[End] ``` ### Iteration Control Workflows can iterate until quality thresholds are met: **Iteration Triggers:** - Review produces significant suggestions - Code quality metrics below threshold - Manual iteration request - Maximum iterations not reached **Stop Conditions:** - Fewer than `min_suggestions_threshold` suggestions - Maximum iterations reached - All quality checks pass - Manual stop requested **Example:** ```yaml settings: max_iterations: 3 min_suggestions_threshold: 5 quality_threshold: 0.8 ``` ## AI Agent Integration ### Agent Status Monitoring ```mermaid graph TD A[Check Agent] --> B{Command Exists?} B -->|Yes| C{Authenticated?} B -->|No| D[Not Available] C -->|Yes| E[Available] C -->|No| F[Auth Required] E --> G[Test Execution] G --> H{Success?} H -->|Yes| I[Ready] H -->|No| J[Error State] ``` **Status Indicators:** - ✅ **Available** - Ready to use - ⚠️ **Auth Required** - Needs authentication - ❌ **Not Found** - CLI not installed - 🔴 **Error** - Configuration or execution error ### Agent Capabilities **Codex (OpenAI):** - Primary implementation agent - Excellent at code generation - Pattern recognition - Quick iterations - Best for: Initial implementations, boilerplate **Gemini (Google):** - Code review specialist - SOLID principles analysis - Security vulnerability detection - Performance optimization - Best for: Code review, architecture analysis **Claude (Anthropic):** - Refinement and improvement - Documentation generation - Code explanation - Context-aware modifications - Best for: Refinement, documentation **Copilot (GitHub):** - Alternative suggestions - Multiple implementation options - Pattern-based recommendations - Best for: Ideation, alternatives **Local adapters (Ollama/OpenAI-compatible):** - Execute through local HTTP completion endpoints - Work in offline and fallback routing paths - Best for: Offline drafting, review, and continuity support - **Limitation**: return text responses and do not directly edit workspace files ## Session Management ### Save and Load Sessions Persist entire conversation contexts for later: **What Gets Saved:** - Complete conversation history - All generated files - Workspace state - Active workflow - Agent configurations - Timestamps and metadata **CLI Usage:** ```bash # Save session orchestrator > /save my-project # Load session ./ai-orchestrator shell --load my-project # Or within shell orchestrator > /load my-project # List saved sessions ./ai-orchestrator sessions ``` **File Format (JSON):** ```json { "session_id": "uuid-here", "created_at": "2024-01-15T10:00:00Z", "workflow": "default", "conversation_history": [ { "role": "user", "content": "create a REST API", "timestamp": "2024-01-15T10:00:00Z" }, { "role": "assistant", "content": "API created...", "files": ["api.py", "models.py"], "timestamp": "2024-01-15T10:01:30Z" } ], "workspace": "./workspace", "metadata": {} } ``` ## File Management ### Workspace Organization ``` workspace/ ├── session-uuid/ │ ├── api/ │ │ ├── routes.py │ │ ├── models.py │ │ └── __init__.py │ ├── tests/ │ │ └── test_api.py │ └── docs/ │ └── README.md ``` ### File Tracking The orchestrator tracks all generated files: ```mermaid graph LR A[Agent Response] --> B[Extract Code Blocks] B --> C[Parse File Paths] C --> D[Validate Paths] D --> E{Exists?} E -->|Yes| F[Create Backup] E -->|No| G[Create File] F --> G G --> H[Register File] H --> I[Update UI] ``` **Features:** - Automatic file extraction from AI responses - Backup of existing files - Path validation and sanitization - File registry for tracking - Click-to-open in UI ### File Operations **CLI:** ```bash # Files listed after task completion 📁 Generated Files: 📄 api/routes.py 📄 api/models.py 📄 tests/test_api.py Workspace: ./workspace/session-abc123 ``` **UI:** - Click file to view in Monaco editor - Edit and save changes - Download individual files - Syntax highlighting based on extension - Line-by-line diff view ## Security Features ### Input Validation All user inputs are validated and sanitized: ```python class SecurityValidator: def validate_task(self, task: str) -> bool: # Command injection prevention if self._contains_shell_metacharacters(task): raise SecurityError("Potential command injection") # Path traversal prevention if self._contains_path_traversal(task): raise SecurityError("Path traversal detected") # Length validation if len(task) > MAX_TASK_LENGTH: raise ValidationError("Task too long") return True ``` **Protected Against:** - Command injection - Path traversal attacks - SQL injection (if using database) - XSS attacks in UI - Malicious code execution ### Rate Limiting Token bucket algorithm prevents abuse: ```mermaid graph LR A[Request] --> B{Tokens Available?} B -->|Yes| C[Consume Token] B -->|No| D[Rate Limit Error] C --> E[Process Request] E --> F[Refill Tokens Over Time] ``` **Configuration:** ```yaml rate_limiting: enabled: true requests_per_minute: 10 burst_size: 20 per_user: true ``` ### Audit Logging All security-relevant events are logged: ```python logger.info( "security_event", event_type="task_execution", user_id="user-123", task_hash="abc...", timestamp="2024-01-15T10:00:00Z", success=True ) ``` **Logged Events:** - Authentication attempts - Authorization failures - Rate limit violations - Input validation failures - Suspicious activities ## Reports & Analytics ### Automated Report Generation The orchestrator generates reports automatically after each task execution (when `create_reports: true` in config). Reports are written to `reports/` as JSON files and an interactive HTML dashboard. ```mermaid graph TD EXEC[Task Execution] --> RG[ReportGenerator] RG --> ES[Execution Summary JSON] RG --> AP[Agent Performance JSON] RG --> WA[Workflow Analytics JSON] RG --> SH[System Health JSON] RG --> CA[Config Audit JSON] RG --> HD[HTML Dashboard] RG --> IDX[INDEX.json Catalog] ``` **Report Types:** | Type | File Pattern | Contents | |---|---|---| | **Execution Summary** | `exec_*.json` | Per-task steps, agents, fallbacks, suggestions, duration | | **Agent Performance** | `perf_*.json` | Aggregated success rates, call counts, task type distribution | | **Workflow Analytics** | `workflow_*.json` | Per-workflow runs, success rates, average iterations | | **System Health** | `health_*.json` | Health checks, disk/memory, Python version, platform | | **Config Audit** | `config_*.json` | Agent availability, workflow structure, settings snapshot | | **HTML Dashboard** | `dashboard_*.html` | Interactive Chart.js dashboard with 4 charts and KPI cards | **HTML Dashboard Charts:** - Daily Task Volume & Success (bar chart) - Agent Success vs Failure (stacked bar chart) - Average Duration trend (line chart) - Workflow Distribution (doughnut chart) **Programmatic Usage:** ```python from orchestrator.observability import ReportGenerator gen = ReportGenerator(reports_dir="./reports") # Generate all report types with sample data gen.seed_reports(config=config) # Generate individual reports gen.generate_execution_report(task, workflow, results, duration, agents) gen.generate_health_report() gen.generate_config_audit(config) gen.generate_agent_performance_report(execution_history) gen.generate_workflow_analytics(execution_history) gen.generate_html_dashboard() ``` ## Monitoring & Metrics ### Prometheus Metrics Comprehensive metrics for production monitoring: **Task Metrics:** ```python orchestrator_tasks_total orchestrator_task_duration_seconds orchestrator_task_failures_total orchestrator_task_success_rate ``` **Agent Metrics:** ```python orchestrator_agent_calls_total orchestrator_agent_errors_total orchestrator_agent_response_time_seconds orchestrator_agent_availability ``` **System Metrics:** ```python orchestrator_cache_hits_total orchestrator_cache_misses_total orchestrator_active_sessions orchestrator_memory_usage_bytes ``` ### Health Checks **Endpoints:** - `/health` - Overall system health - `/ready` - Readiness for traffic - `/metrics` - Prometheus metrics **Health Check Response:** ```json { "status": "healthy", "version": "1.0.0", "agents": { "claude": "available", "codex": "available", "gemini": "available" }, "uptime_seconds": 3600, "active_sessions": 5 } ``` ## Project-Scoped Context Graphs Both the Orchestrator and Agentic Team support project-scoped context graphs, enabling agents to build and leverage deep understanding of the user's codebase. ### Project Registration and Scanning When users point the system at their project directory, a `ProjectScanner` automatically analyzes the codebase: | Capability | Description | |-----------|-------------| | **Language Detection** | 30+ languages via file extension mapping | | **Framework Detection** | 20+ frameworks via indicator files (package.json, Cargo.toml, etc.) | | **Structure Analysis** | Top-level directory categorization and project topology | | **File Cataloging** | Source file metadata including path, size, language, and framework | | **Safety Limits** | Max 5,000 files per scan to handle large repositories | ### Multi-Project Isolation Each registered project gets a unique, deterministic `project_id` (SHA-256 prefix of the path). All project nodes are tagged with this ID, guaranteeing: - **Zero cross-contamination** between different projects' knowledge - **Global knowledge sharing** — universal patterns (project_id="") are accessible from any project context - **Clean removal** — `delete_project_graph()` atomically removes only that project's data ### Portability The system is fully portable. Configure via: ```bash # Environment variable export PROJECT_PATH=/path/to/project # Or YAML config settings: project_path: "/path/to/project" ``` ### Context Graph Builder Skill A dedicated skill (`.claude/skills/context-graph-builder/SKILL.md`) guides agents to automatically build and maintain context graphs as they work. Agents can: - Register new projects and trigger scans - Store patterns, decisions, and mistakes learned during task execution - Link related nodes with typed edges - Query project-scoped context before starting new tasks - Rescan projects after significant changes ### Generic Seed Data The seed script (`scripts/seed_context_graphs.py`) populates both context databases with generic reference knowledge only — patterns, common mistakes, and architectural decisions that are universally applicable regardless of the user's project. No fake tasks or conversations are seeded, preventing agent hallucination about non-existent prior work. ## Graphify — Code Knowledge Graph Engine The `graphify/` system turns any project directory into a deep, queryable knowledge graph: | Feature | Description | |---------|-------------| | **6 Language Analyzers** | Python (AST), JS/TS, Markdown, YAML/JSON/TOML, Go/Rust/Java/C++ | | **16 Node Types** | FILE, CLASS, FUNCTION, METHOD, IMPORT, VARIABLE, MODULE, PACKAGE, TEST, DECORATOR, etc. | | **14 Edge Types** | CONTAINS, IMPORTS, CALLS, INHERITS, IMPLEMENTS, DEPENDS_ON, TESTS, etc. | | **FTS5 Search** | Fast full-text search across all node metadata | | **Intelligence** | God node analysis, community detection, BFS path finding, complexity hotspots | | **SHA-256 Cache** | Content-addressable cache for incremental scans | | **File Watching** | watchdog + polling fallback with debounced change aggregation | | **Snapshots & Diffs** | Track graph evolution over time | | **Scan Metrics** | Duration, cache rates, per-analyzer timing, historical trends | | **REST API** | 25+ endpoints with CORS, structured errors, metrics/diff support | | **Export** | JSON, DOT (Graphviz), Markdown, GraphML, interactive HTML (vis.js), **Obsidian vault** | | **Schema Migrations** | v1 → v2 (confidence) → v3 (metrics/snapshots), decorator-based registry | | **Security** | Path traversal protection, input sanitization, bounded parameters | ```mermaid graph LR PROJECT[Your Project] --> GRAPHIFY[Graphify Scanner] GRAPHIFY --> GRAPH[(SQLite + FTS5)] GRAPH --> CLI[CLI: 10 commands] GRAPH --> API[REST API: 25+ endpoints] GRAPH --> VIZ[Interactive HTML] GRAPH --> EXPORT[JSON / DOT / GraphML / Obsidian] ``` With `graphify`, agents can query deep structural information about the user's codebase, enabling informed decision-making, pattern recognition, and context-aware modifications. ### Obsidian Vault Export All three graph systems — **Graphify**, **Orchestrator Context**, and **Agentic Team Context** — can export their data as [Obsidian](https://obsidian.md)-compatible vaults. Open the generated directory in Obsidian and use the built-in graph view (**Ctrl/Cmd + G**) to explore relationships visually. ```mermaid graph TB subgraph "Three Graph Systems → Obsidian" G[Graphify
Code Structure] --> GV[Code Vault] O[Orchestrator
Context Memory] --> OV[Context Vault] A[Agentic Team
Context Memory] --> AV[Team Vault] end subgraph "Obsidian Vault Contents" GV & OV & AV --> FM[YAML Frontmatter
type, tags, metadata] GV & OV & AV --> WL["[[Wikilinks]]
→ outgoing / ← incoming"] GV & OV & AV --> IDX[_Index.md
Map of Content] GV & OV & AV --> CFG[.obsidian/
graph.json colors] end style GV fill:#4CAF50,color:#fff style OV fill:#2196F3,color:#fff style AV fill:#FF9800,color:#fff style CFG fill:#7C3AED,color:#fff ``` | System | Exporter | Node Types Visualized | CLI | |--------|----------|-----------------------|-----| | **Graphify** | `GraphExporter.to_obsidian()` | Classes, Functions, Files, Tests, Imports, Dependencies | `graphify export obsidian` | | **Orchestrator** | `ContextExporter.export_obsidian()` | Tasks, Decisions, Patterns, Mistakes, Conversations | Python API | | **Agentic Team** | `ContextExporter.export_obsidian()` | Tasks, Decisions, Patterns, Agent Outputs, Conversations | Python API | **Each vault includes:** - **Folder-per-type layout** — `Classes/`, `Tasks/`, `Decisions/`, etc. - **YAML frontmatter** — type, tags, importance, timestamps, language, project_id - **`[[Wikilinks]]`** — relationships grouped by edge type (Contains, Calls, Caused By, etc.) - **`_Index.md`** — Map of Content with stats table and category links - **`.obsidian/graph.json`** — Color groups per node type, pre-configured for graph view - **Dark theme** — `.obsidian/appearance.json` with Obsidian dark mode ## Advanced Features ### Caching System Multi-layer caching for performance: **Cache Layers:** 1. **In-Memory** - Fast, 5-minute TTL 2. **File-Based** - Persistent, 24-hour TTL 3. **Distributed** - Redis (optional) **Cache Strategy:** ```mermaid graph TD A[Request] --> B{Memory Cache?} B -->|Hit| C[Return Result] B -->|Miss| D{File Cache?} D -->|Hit| E[Load to Memory] E --> C D -->|Miss| F[Execute Task] F --> G[Cache Result] G --> C ``` ### Async Execution Parallel execution where possible: ```python async def execute_parallel_agents(agents, task): results = await asyncio.gather( *[agent.execute_async(task) for agent in agents], return_exceptions=True ) return [r for r in results if not isinstance(r, Exception)] ``` ### Retry Logic Automatic retry with exponential backoff: ```python @retry( stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10), retry=retry_if_exception_type(TransientError) ) def execute_with_retry(agent, task): return agent.execute(task) ``` ### Circuit Breaker Prevent cascading failures: ```mermaid stateDiagram-v2 [*] --> Closed Closed --> Open: Failure Threshold Open --> HalfOpen: Timeout HalfOpen --> Closed: Success HalfOpen --> Open: Failure Closed: Normal Operation Open: Reject Requests HalfOpen: Test Recovery ``` ## Production Readiness The codebase underwent a comprehensive production-readiness overhaul, achieving a **perfect 10.00/10 pylint score** with zero warnings — up from 9.39/10 with 520 warnings. ### Code Quality Metrics | Metric | Before | After | |--------|--------|-------| | **Pylint Score** | 9.39 / 10 | **10.00 / 10** | | **Total Warnings** | 520 | **0** | | **Pre-commit Hooks** | — | **15 / 15 passing** | | **Tests Passing** | — | **386** | ### Production Hardening - **Lazy Logging** — All logging uses `%s` formatting (no f-string overhead unless the log level is enabled) - **Explicit Encoding** — Every `open()` call specifies `encoding="utf-8"` for cross-platform consistency - **Idiomatic Abstract Methods** — Docstring-only bodies instead of unnecessary `pass` statements - **No Stray Output** — All `print()` calls in library code replaced with proper `logger` calls - **Subprocess Safety** — All `subprocess.Popen` calls documented with context manager considerations - **Clean Imports** — No unused imports, no redundant reimports - **Optimized Patterns** — Dictionary iteration, string splits, and comparisons use idiomatic Python ### Pylint Configuration Enterprise-ready pylint configuration with intentional suppressions for legitimate design patterns: - `R0801` (duplicate-code) — Suppressed across architecturally independent subsystems (`orchestrator/` and `agentic_team/`) - `R0902` (too-many-instance-attributes) — Suppressed for dataclass-style configuration objects - `max-line-length` set to 120 to accommodate strings that black cannot break ### Enforced Pre-commit Hooks (15) black · isort · flake8 · pylint · mypy · bandit · pyupgrade · trailing-whitespace · end-of-file-fixer · check-yaml · check-json · check-toml · check-merge-conflict · debug-statements · detect-private-key --- For more information: - [Architecture Documentation](ARCHITECTURE.md) - [Agentic Team Documentation](AGENTIC_TEAM.md) - [Setup Guide](SETUP.md) - [Adding Agents Guide](ADD_AGENTS.md) > **Easter egg:** Go to our [wiki page](https://hoangsonww.github.io/AI-Agents-Orchestrator/) and enter Konami code (↑ ↑ ↓ ↓ ← → ← → B A) for a surprise!