Skip to content

obs ​

观测与审计——Langfuse 追踪客户端/敏感操作结构化审计(不引 eino 框架)

概况 ​

项值
层tier 2 · 集成层(依赖 tier 0/1 + 重第三方地板)
oekit 对应metrics
仓内依赖guardx
被依赖—(矩阵叶子)
第三方地板零
包数2

安装 ​

bash
go get github.com/oagentkit/obs@latest

源码与该仓 AGENTS.md:oagentkit/obs

包 ​

包说明
langfuseLangfuse Public API 只读客户端(v3 self-hosted 契约面)
audit敏感操作的结构化审计留痕(自 guardx/audit 迁入):字段值统一经 logredact 打码

本仓硬规则 ​

以下约束出自该仓 AGENTS.md。改代码前先读仓库根目录的 AGENTS.md,此处是摘要,不是替代。

trace 复用约束(不可自建) ​

必须复用 oekit/tracing 的 Provider 和 oekit/logx 的 trace 提取器 (logx.ExtractTrace/SetTraceExtractor),不自建一套 trace。 否则 agentkit 日志里的 trace_id 会与 OTel 的对不上,跨服务链路断裂。

与 oekit 的边界 ​

本仓是矩阵里唯一直接做 eino callbacks 适配的仓 —— oekit 作为微服务工具链不会做 LLM 场景。 oekit/tracing(3 个导出)提供 Provider,本仓提供「把 LLM 调用挂上去」的适配层。两者互补,不重叠。

  • audit 自 guardx/audit 迁入(v0.8.0):它依赖 oekit/logx,而 guardx 是 tier 0 零依赖底层,依赖面按 module 结算。包名与职责不变,只是 import 路径变了。
  • 层位 t1 → t2:带 eino 地板(obsx 是 eino callbacks 适配层)——属集成层。重定位后 tier0/tier1 = 零重量级第三方地板的层(可被零依赖核心安全依赖)。
  • obsx 已迁至 github.com/oagentkit/llm/obsx(v0.9.0):它是 eino callbacks 适配层,在本仓时把 langfuse / audit 这两个轻包拖进 27 个第三方模块。迁走后本仓的 eino 依赖消失。

日志约定 ​

  • 日志走 oekit/logx,组件 logger 用 logx.Delegating("oagentkit-obs")。
  • 观测数据不得携带凭据原文,落盘前过 guardx/logredact。
  • audit 包的 logger 为 nil 时回退 logx.NewAuditLogger(级别锁 Info、不受 LOG_LEVEL 降级、SetLevel 到 WARN/ERROR 被拒)—— 这是刻意设计,别改回普通 logger。

相关 ​

MIT License