← ClaudeAtlas

arifos-langfuselisted

Instrument arifOS constitutional AI kernel with Langfuse LLM tracing. Use when (1) adding Langfuse tracing to arifOS tool calls, (2) wiring arifOS telemetry to Langfuse cloud or self-hosted, (3) querying arifOS trace data from Langfuse, (4) migrating arifOS mind_reason/heart_critique calls to Langfuse spans. DITEMPA BUKAN DIBERI — Forged, Not Given.
ariffazil/arifos · ★ 45 · AI & Automation · score 77
Install: claude install-skill ariffazil/arifos
# arifOS-Langfuse Skill Instrument arifOS constitutional AI operations with Langfuse LLM tracing. ## Architecture ``` arifOS Kernel (Python) └── arifosmcp/runtime/telemetry.py ← Telemetry wrapper ├── Prometheus metrics (counters, histograms) └── Langfuse v3 span tracing ← HERE ├── context manager: with lf.start_as_current_observation() as span ├── span.update(input={...}, output={...}) └── lf.flush() ``` arifOS uses Langfuse Python SDK v3 with **context manager pattern** — spans auto-close on exit. ## Credentials arifOS → Langfuse (cloud Japan): ```bash export LANGFUSE_PUBLIC_KEY=pk-lf-bbe515cf-c1f7-46f3-badc-14cc172554ef export LANGFUSE_SECRET_KEY=sk-lf-ed6da0eb-23c7-4ccb-a4f9-6d3bac1179d9 export LANGFUSE_HOST=https://jp.cloud.langfuse.com ``` arifOS → Langfuse (self-hosted on VPS): ```bash export LANGFUSE_HOST=http://langfuse-web:3000 # same keys ``` ## Key Patterns ### Correct span creation (v3 context manager) ```python from langfuse import Langfuse lf = Langfuse( public_key=os.getenv("LANGFUSE_PUBLIC_KEY"), secret_key=os.getenv("LANGFUSE_SECRET_KEY"), host=os.getenv("LANGFUSE_HOST", "https://jp.cloud.langfuse.com") ) # WRONG — detached span, no active context lf.start_as_current_observation(as_type="span", name="arifOS::tool-name") lf.update_current_span(...) # CORRECT — context manager, span auto-closes with lf.start_as_current_observation(as_type="span", name="arifOS::tool-name", m