回合生命周期事件 + 指标挂点(designs/runtime-borrow.md §11;借 Keelson
AgentEvents.cs / AgentMetrics.cs,它们又借 Codex 的 TurnStarted / TokenCount /
codex.turn.ttft)。
一个封闭的小集合:UI / 遥测从一处拿到回合、轮次、LLM、工具始末与用量,不必
各自从零散回调里拼。出口是 callbacks 的 :on-event (fn [event])——react 在关键节点
直接触发(react/emit-event!),simple-agent 的 :callbacks 原样透传。
:type | 键 |
|---|---|
:turn/started | :resumed? |
:iteration/started | :index |
:llm/finished | :index :elapsed-ms :ttft-ms(仅流式) :usage :finish-reason |
:usage | :index :round :total(本轮 / 本回合累计) |
:tool/started | :index :call-id :name :args |
:tool/finished | :index :call-id :name :status :error-class? :elapsed-ms |
:turn/finished | :status :elapsed-ms :usage :stopped-by? :error? |
每个事件都带 :type :ts(毫秒),以及回调元数据里的 :conversation-id / :run-id。
:tool/finished 的 :status ∈ :ok :error :rejected :replied(gate 拒绝 / 答复即结果
也有始末)。⚠️ 并发引擎下工具事件可能来自不同线程;出口抛的异常被吞掉(UI 的问题
不打断回合)。零依赖:要接 OpenTelemetry / Micrometer 自己在 :on-event 里转。
回合生命周期事件 + 指标挂点(designs/runtime-borrow.md §11;借 Keelson `AgentEvents.cs` / `AgentMetrics.cs`,它们又借 Codex 的 TurnStarted / TokenCount / `codex.turn.ttft`)。 **一个封闭的小集合**:UI / 遥测从一处拿到回合、轮次、LLM、工具始末与用量,不必 各自从零散回调里拼。出口是 callbacks 的 `:on-event (fn [event])`——react 在关键节点 直接触发(`react/emit-event!`),simple-agent 的 `:callbacks` 原样透传。 | `:type` | 键 | |---|---| | `:turn/started` | `:resumed?` | | `:iteration/started` | `:index` | | `:llm/finished` | `:index :elapsed-ms :ttft-ms(仅流式) :usage :finish-reason` | | `:usage` | `:index :round :total`(本轮 / 本回合累计) | | `:tool/started` | `:index :call-id :name :args` | | `:tool/finished` | `:index :call-id :name :status :error-class? :elapsed-ms` | | `:turn/finished` | `:status :elapsed-ms :usage :stopped-by? :error?` | 每个事件都带 `:type` `:ts`(毫秒),以及回调元数据里的 `:conversation-id` / `:run-id`。 `:tool/finished` 的 `:status` ∈ `:ok :error :rejected :replied`(gate 拒绝 / 答复即结果 也有始末)。⚠️ 并发引擎下工具事件可能来自不同线程;出口抛的异常被吞掉(UI 的问题 不打断回合)。零依赖:要接 OpenTelemetry / Micrometer 自己在 `:on-event` 里转。
封闭事件集——新增类型须同步改本 ns 文档与 designs/runtime-borrow.md §11。
封闭事件集——新增类型须同步改本 ns 文档与 designs/runtime-borrow.md §11。
(metrics-collector)现成的指标聚合器(零依赖):{:on-event f :snapshot (fn [] -> map) :reset! (fn [])}。
snapshot: {:turns n :llm-calls n :tool-calls n :tool-errors n :llm-ms {:count :sum :max} :ttft-ms {...} :tool-ms {...} :tokens {:input-tokens n :output-tokens n ...} :by-tool {"name" {:calls n :errors n :ms {...}}}}
现成的指标聚合器(零依赖):`{:on-event f :snapshot (fn [] -> map) :reset! (fn [])}`。
snapshot:
{:turns n :llm-calls n :tool-calls n :tool-errors n
:llm-ms {:count :sum :max} :ttft-ms {...} :tool-ms {...}
:tokens {:input-tokens n :output-tokens n ...}
:by-tool {"name" {:calls n :errors n :ms {...}}}}cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |