内部 CMDC.Event.t() → 对外 JSON schema 翻译层。
字段命名统一 camelCase。SDK 和前端消费此格式。
对外事件列表
会话生命周期
| 事件类型 | 说明 |
|---|---|
agent_start | Agent 开始处理 |
agent_end | 本轮完成,含 tokenUsage |
agent_abort | Agent 被中止 |
prompt_received | 收到用户 prompt |
流式响应
| 事件类型 | 说明 |
|---|---|
message_start | LLM 开始生成 |
message_delta | 流式 token 片段 |
thinking_start | 思考链开始 |
thinking_delta | 思考链 token |
工具
| 事件类型 | 说明 |
|---|---|
tool_calls | 本轮工具调用数 |
tool_execution_start | 工具开始执行 |
tool_execution_end | 工具执行完成 |
tool_execution_metrics | 工具执行耗时指标 |
tool_blocked | 工具被 Plugin 拦截 |
tool_call_unknown | 未知工具被调用 |
tool_attached | 运行时挂载 |
tool_detached | 运行时卸载 |
tools_updated | 批量工具变更 |
HITL
| 事件类型 | 说明 |
|---|---|
approval_required | 等待人类审批 |
approval_resolved | 审批已决定 |
ask_user | Agent 向用户提问 |
v0.2 控制面
| 事件类型 | 说明 |
|---|---|
model_switched | (RFC C8) 模型切换 |
model_switch_failed | 模型切换失败 |
memory_flushed | Memory 落盘 |
plugin_opts_updated | Plugin 运行时配置更新 |
auto_checkpoint_saved | 自动 checkpoint 已保存 |
plugin_event | (RFC D14) 通用插件事件包络 |
steering | 中段注入 |
v0.5 RAG / AgentOps Trace
| 事件类型 | 说明 |
|---|---|
rag_retrieved | RAG/GraphRAG 检索摘要 |
rag_answered | RAG/Pipeline answer 摘要 |
rag_citation_used | citation provenance |
rag_pipeline_step | pipeline step timeline |
rag_ingestion_progress | ingestion 进度 |
rag_reembed_progress | reembed 进度 |
rag_graph_progress | GraphRAG maintenance/search 进度 |
rag_graph_audit | GraphRAG 只读查询审计 |
rag_eval_progress | RAG Eval / release gate 进度 |
错误
| 事件类型 | 说明 |
|---|---|
error | 运行时错误 |
Summary
Functions
心跳 SSE 注释行,保持连接。
将翻译后的事件编码为 SSE 格式字符串(含 event: 和 data: 行)。
将内部事件翻译为对外 JSON map。
带模式选项的事件翻译。
将 EventBus 事件投影为 AuditEvent JSON 事件。
Functions
@spec heartbeat() :: iodata()
心跳 SSE 注释行,保持连接。
将翻译后的事件编码为 SSE 格式字符串(含 event: 和 data: 行)。
@spec translate(CMDC.Event.t()) :: {:ok, String.t(), map()} | :skip
将内部事件翻译为对外 JSON map。
返回 {:ok, event_type, json_map} 或 :skip(不对外暴露的事件)。
@spec translate( CMDC.Event.t(), keyword() ) :: {:ok, String.t(), map()} | :skip
带模式选项的事件翻译。
支持 mode: :audit 输出 canonical audit 投影;默认与 translate/1
完全一致。
@spec translate_audit( CMDC.Event.t(), keyword() ) :: {:ok, String.t(), map()} | :skip
将 EventBus 事件投影为 AuditEvent JSON 事件。
未被 core CMDC.AuditEvent.from_event/3 覆盖的低价值事件返回 :skip。