observe

package
v0.0.0-...-1c978d5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

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 Handler

func Handler(logger *slog.Logger) callbacks.Handler

Handler 返回一个把组件执行日志写入 slog 的 callbacks.Handler。

func Progress

func Progress(w io.Writer) callbacks.Handler

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

func ProgressEvents() callbacks.Handler

ProgressEvents 返回进度事件发射 Handler。只发射 ChatModel(模型 轮次与框架辅助生成);能力事件由 loop.ProgressTools 在能力层发射。

func Trajectory

func Trajectory(path string) (callbacks.Handler, error)

Trajectory 返回把执行轨迹写入 JSONL 文件的 callbacks.Handler。 每个组件(模型、工具、图节点)的开始/结束/耗时/用量一条记录。

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 是轨迹里的一条记录。改提示词、换工具描述后跑回归评测, 以及"某次坏回答对应哪个版本"的回溯,都以这份数据为底座。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL