| | --- |
| | 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 |