Подключить локальную трассировку Phoenix для запусков агента.

Добавлена инициализация Phoenix/OpenInference в CLI и AgentOS, а также обновлены зависимости и документация, чтобы трассировка включалась через переменные окружения.
This commit is contained in:
Barabashka
2026-04-21 15:09:55 +03:00
parent 196e9aaf27
commit d22db07b43
6 changed files with 69 additions and 2 deletions
+3
View File
@@ -7,3 +7,6 @@ AGENT_DEBUG_MODE=true
AGENT_INSTRUCTIONS=You are a helpful assistant. Answer briefly and clearly.
AGENT_OS_HOST=127.0.0.1
AGENT_OS_PORT=7777
PHOENIX_TRACING_ENABLED=false
PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006
PHOENIX_PROJECT_NAME=prisma-platform
+23 -1
View File
@@ -15,7 +15,8 @@ prisma_platform/
├── __init__.py
├── agent_os.py
├── agent_runner.py
── main.py
── main.py
└── observability.py
```
## Установка
@@ -69,4 +70,25 @@ python -m src.agent_os
- `AGENT_INSTRUCTIONS` (по умолчанию: `You are a helpful assistant. Answer briefly and clearly.`)
- `AGENT_OS_HOST` (по умолчанию: `127.0.0.1`)
- `AGENT_OS_PORT` (по умолчанию: `7777`)
- `PHOENIX_TRACING_ENABLED` (по умолчанию: `false`)
- `PHOENIX_COLLECTOR_ENDPOINT` (по умолчанию: `http://localhost:6006`)
- `PHOENIX_PROJECT_NAME` (по умолчанию: `prisma-platform`)
## Phoenix трассировка (локально)
1. Установите зависимости:
```bash
pip install -r requirements.txt
```
2. Поднимите Phoenix (см. `docker-service/docker-compose.yml`) и включите трассировку в `.env`:
```dotenv
PHOENIX_TRACING_ENABLED=true
PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006
PHOENIX_PROJECT_NAME=prisma-platform
```
3. Запустите приложение как обычно (`python -m src.main` или `python -m src.agent_os`).
+2
View File
@@ -5,3 +5,5 @@ python-dotenv
ollama
socksio
openai
arize-phoenix-otel
openinference-instrumentation-agno
+3 -1
View File
@@ -5,11 +5,13 @@ from dotenv import load_dotenv
from agno.os import AgentOS
from src.agent_runner import get_agent
from src.observability import init_phoenix_tracing
load_dotenv()
_tracing_enabled = init_phoenix_tracing()
_agent = get_agent()
_agent_os = AgentOS(agents=[_agent])
_agent_os = AgentOS(agents=[_agent], tracing=_tracing_enabled)
app = _agent_os.get_app()
+2
View File
@@ -4,6 +4,7 @@ import asyncio
from dotenv import load_dotenv
from src.agent_runner import run_agent
from src.observability import init_phoenix_tracing
def build_parser() -> argparse.ArgumentParser:
@@ -19,6 +20,7 @@ def build_parser() -> argparse.ArgumentParser:
async def _main() -> None:
load_dotenv()
init_phoenix_tracing()
args = build_parser().parse_args()
if args.message:
+36
View File
@@ -0,0 +1,36 @@
import os
from phoenix.otel import register
_initialized = False
def _env_bool(name: str, default: bool) -> bool:
value = os.getenv(name)
if value is None:
return default
return value.strip().lower() in {"1", "true", "yes", "on"}
def init_phoenix_tracing() -> bool:
global _initialized
enabled = _env_bool("PHOENIX_TRACING_ENABLED", False)
if not enabled:
return False
if _initialized:
return True
os.environ["PHOENIX_COLLECTOR_ENDPOINT"] = os.getenv(
"PHOENIX_COLLECTOR_ENDPOINT",
"http://localhost:6006",
)
project_name = os.getenv("PHOENIX_PROJECT_NAME", "prisma-platform")
register(
project_name=project_name,
auto_instrument=True,
)
_initialized = True
return True