diff --git a/web/agent/pyproject.toml b/web/agent/pyproject.toml index 771e892..aa48c46 100644 --- a/web/agent/pyproject.toml +++ b/web/agent/pyproject.toml @@ -12,4 +12,5 @@ dependencies = [ "ag-ui-protocol", "python-dotenv", "httpx", + "logfire>=4.16.0", ] diff --git a/web/agent/src/agent.py b/web/agent/src/agent.py index 504c226..c8247c0 100644 --- a/web/agent/src/agent.py +++ b/web/agent/src/agent.py @@ -5,6 +5,16 @@ PydanticAI agent with MCP tools from Cavepedia server. import os import logging import httpx +import logfire + +# Configure Logfire for observability +# Uses LOGFIRE_TOKEN in production, or local auth from `logfire auth` in dev +logfire.configure( + project_name='cavepediav2', + environment=os.getenv('ENVIRONMENT', 'development'), +) +logfire.instrument_pydantic_ai() +logfire.instrument_httpx() from pydantic_ai import Agent, ModelMessage, RunContext from pydantic_ai.settings import ModelSettings diff --git a/web/agent/uv.lock b/web/agent/uv.lock index 600916c..8ca536e 100644 --- a/web/agent/uv.lock +++ b/web/agent/uv.lock @@ -231,6 +231,7 @@ source = { virtual = "." } dependencies = [ { name = "ag-ui-protocol" }, { name = "httpx" }, + { name = "logfire" }, { name = "mcp" }, { name = "openai" }, { name = "pydantic-ai" }, @@ -243,6 +244,7 @@ dependencies = [ requires-dist = [ { name = "ag-ui-protocol" }, { name = "httpx" }, + { name = "logfire", specifier = ">=4.16.0" }, { name = "mcp" }, { name = "openai" }, { name = "pydantic-ai" },