Documentation
¶
Overview ¶
events.go:结构化进度事件的发射点(设计见 docs/channel-card-design.md §2.3)。
与 Progress(终端文本行)同源:同一个 eino callbacks 切面看见每次 模型/工具调用,这里把它们转成 runctx.ProgressEvent 发给 ctx 里的 订阅(runctx.WithProgress 安装;未安装零开销)。engine 零改动。
Package observe 基于 eino callbacks 提供开箱即用的可观测性: 每个组件(模型、工具、图节点)的开始/结束/耗时/错误统一打点。
本包只提供纯构造(Handler/Trajectory 返回 callbacks.Handler),不持有 任何进程级状态;"装没装过"的账本由装配层(config)持有——eino 全局 回调是进程级切面,幂等责任属于装配进程的一方,不属于库。接入 Langfuse / OTel 等平台时,参照 Handler 用对应 SDK 实现同样的五个时机。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EnsureProgressEvents ¶
func EnsureProgressEvents()
EnsureProgressEvents 把进度事件发射切面挂到全局 callbacks(幂等, 多次调用只挂一次)。dispatcher 构造时调用;直连 agent.Run 的宿主 需要事件时自行调用。
func Progress ¶
Progress 返回面向终端用户的进度提示 Handler,让用户看到 agent 正在做什么,而不只是"在跑":
⚙ get_weather({"city":"北京"})
✓ get_weather (1.4s) → 北京:晴,26 度
· 模型 (2.1s) → 决定调用 write_file
· 模型 (8.3s) → “报告已完成,主要结论是...”
同时覆盖 invoke 与 stream 两种执行范式(流式回调收到的是私有 流副本,消费后关闭)。callbacks 是全局切面,skill / plan-execute 内部的每一步同样可见。机器可读的完整轨迹见 Trajectory。
func ProgressEvents ¶
ProgressEvents 返回进度事件发射 Handler。只发射 ChatModel(模型 轮次与框架辅助生成);能力事件由 loop.ProgressTools 在能力层发射。
Types ¶
type Event ¶
type Event struct {
Time time.Time `json:"ts"`
Agent string `json:"agent,omitempty"`
Session string `json:"session,omitempty"`
Component string `json:"component"`
Name string `json:"name,omitempty"`
Phase string `json:"phase"` // start | end | error
CostMS int64 `json:"cost_ms,omitempty"`
Tokens int `json:"tokens,omitempty"`
Error string `json:"error,omitempty"`
}
Event 是轨迹里的一条记录。改提示词、换工具描述后跑回归评测, 以及"某次坏回答对应哪个版本"的回溯,都以这份数据为底座。