CMDC.Agent.Emitter (cmdc v0.3.0)

Copy Markdown View Source

Agent 事件广播器。

将 Agent 内部事件统一通过 CMDC.EventBus 广播给外部订阅者。 可选在 debug 模式下记录至 ETS ring buffer,供调试查询。

使用方式

CMDC.Agent.Emitter.broadcast(state, {:stream_chunk, session_id, "hello"})
CMDC.Agent.Emitter.recent("session-id", 20)
CMDC.Agent.Emitter.clear("session-id")

Summary

Functions

广播事件至所有订阅者,并在 debug 模式下记录至 ETS。

清空指定会话的所有 debug 日志。

返回指定会话最近的事件列表(最新在前)。

Functions

broadcast(state, event)

@spec broadcast(CMDC.Agent.State.t(), term()) :: :ok

广播事件至所有订阅者,并在 debug 模式下记录至 ETS。

clear(session_id)

@spec clear(String.t()) :: :ok

清空指定会话的所有 debug 日志。

recent(session_id, limit \\ 50)

@spec recent(String.t(), pos_integer()) :: [%{timestamp_ms: integer(), event: term()}]

返回指定会话最近的事件列表(最新在前)。

limit 最大为 500,最小为 1。