| --- |
| title: Template Final Assignment |
| emoji: π΅π»ββοΈ |
| colorFrom: indigo |
| colorTo: indigo |
| sdk: gradio |
| sdk_version: 5.25.2 |
| app_file: app.py |
| pinned: false |
| hf_oauth: true |
| |
| hf_oauth_expiration_minutes: 480 |
| --- |
| |
| # LangGraph Multi-Agent System with Langfuse v3 Observability |
|
|
| A sophisticated multi-agent system built with LangGraph that follows best practices for state management, tracing, and iterative workflows. Features comprehensive Langfuse v3 observability with OpenTelemetry integration. |
|
|
| ## Architecture Overview |
|
|
| The system implements an iterative research/code loop with specialized agents: |
|
|
| ``` |
| User Query β Lead Agent β Research Agent β Code Agent β Lead Agent (loop) β Answer Formatter β Final Answer |
| ``` |
|
|
| ## Key Features |
|
|
| - **π€ Multi-Agent Workflow**: Specialized agents for research, computation, and formatting |
| - **π Langfuse v3 Observability**: Complete tracing with OTEL integration and predictable span naming |
| - **π Iterative Processing**: Intelligent routing between research and computational tasks |
| - **π― GAIA Compliance**: Exact-match answer formatting for benchmark evaluation |
| - **πΎ Memory System**: Vector store integration for learning and caching |
| - **π οΈ Tool Integration**: Web search, Wikipedia, ArXiv, calculations, and code execution |
|
|
| ## Quick Start |
|
|
| ### Environment Setup |
|
|
| Create an `env.local` file with required API keys: |
|
|
| ```bash |
| # LLM API |
| GROQ_API_KEY=your_groq_api_key |
| |
| # Search Tools |
| TAVILY_API_KEY=your_tavily_api_key |
| |
| # Observability (Langfuse v3) |
| LANGFUSE_PUBLIC_KEY=your_langfuse_public_key |
| LANGFUSE_SECRET_KEY=your_langfuse_secret_key |
| LANGFUSE_HOST=https://cloud.langfuse.com |
| |
| # Memory (Optional) |
| SUPABASE_URL=your_supabase_url |
| SUPABASE_SERVICE_KEY=your_supabase_service_key |
| ``` |
|
|
| ### Running the System |
|
|
| **Important**: Use `uv run` for proper dependency management: |
|
|
| ```bash |
| # Run the multi-agent system test |
| uv run python test_new_multi_agent_system.py |
| |
| # Test Langfuse v3 observability |
| uv run python test_observability.py |
| |
| # Run the main application |
| uv run python app.py |
| ``` |
|
|
| ### Basic Usage |
|
|
| ```python |
| import asyncio |
| from langgraph_agent_system import run_agent_system |
| |
| async def main(): |
| result = await run_agent_system( |
| query="What is the capital of Maharashtra?", |
| user_id="user_123", |
| session_id="session_456" |
| ) |
| print(f"Answer: {result}") |
| |
| asyncio.run(main()) |
| ``` |
|
|
| ## Observability Dashboard |
|
|
| After running queries, check your traces at: **https://cloud.langfuse.com** |
|
|
| The system provides: |
| - π― **Predictable Span Naming**: `agent/<role>`, `tool/<name>`, `llm/<model>` |
| - π **Session Tracking**: User and session continuity across conversations |
| - π **Cost & Latency Metrics**: Automatic aggregation by span type |
| - π **OTEL Integration**: Automatic trace correlation across services |
|
|
| ## Deployment |
|
|
| ### For Hugging Face Spaces |
|
|
| To generate a `requirements.txt` file compatible with **Python 3.10** for deployment: |
|
|
| ```bash |
| uv pip compile pyproject.toml --python 3.10 -o requirements.txt |
| |
| # Remove Windows-specific packages |
| # Linux / macOS (bash) |
| sed -i '/^pywin32==/d' requirements.txt |
| |
| # Windows (PowerShell) |
| (Get-Content requirements.txt) -notmatch '^pywin32==' | Set-Content requirements.txt |
| ``` |
|
|
| ### Environment Variables for Production |
|
|
| Set these in your deployment environment: |
| - `GROQ_API_KEY` - Required for LLM inference |
| - `TAVILY_API_KEY` - Required for web search |
| - `LANGFUSE_PUBLIC_KEY` - Required for observability |
| - `LANGFUSE_SECRET_KEY` - Required for observability |
| - `LANGFUSE_HOST` - Langfuse endpoint (default: https://cloud.langfuse.com) |
|
|
| ## Documentation |
|
|
| For detailed architecture, configuration, and usage instructions, see: |
| - **[Multi-Agent System Guide](README_MULTI_AGENT_SYSTEM.md)** - Complete system documentation |
| - **[Supabase Setup](README_SUPABASE.md)** - Memory system configuration |
|
|
| ## Configuration Reference |
|
|
| Check out the Hugging Face Spaces configuration reference at https://huggingface.co/docs/hub/spaces-config-reference |