场景与事件¶
场景 Scene¶
场景用于标记Span事件发生的位置,一般定义是某个TFRobot基础类,比如Robot/Brain/Chain/LLM等。
目前支持的场景有:["Robot", "Brain", "Drive", "Memory", "MemoryStore", "Chain", "Tool", "LLM"] 相关定义如下:
class BaseEventContext(BaseModel):
scene: Literal["Robot", "Brain", "Drive", "Memory", "MemoryStore", "Chain", "Tool", "LLM"]
entity_id: str # 发送事件的实体ID
desc: Optional[str] = None # 发送事件的描述信息。Desc往往与scene+action有关,并非具体内容,旨在帮助程序员了解信息而非用户
info: str # 事件的详细信息,一般可以用于打印日志,旨在帮助用户了解具体信息而非程序员,每个事件的info都不同
Robot¶
记录发生在Robot内的相关事件,目前主要记录Robot run 与 async_run 运行前后的状态。
Brain¶
记录发生在Brain内的相关事件,目前主要记录Brain run 与 async_run 运行前后的状态。
Drive¶
当前尚未记录,预留此场景,未来会按需开发对应的记录。
事件 Event¶
事件是指OpenTelemetry的Span的类型,比如 BEFORE_ROBOT_RUN 表示在Robot运行之前,AFTER_ROBOT_RUN 表示在Robot运行之后。
目前TFRobot已经实现的场景枚举如下:
class SpanEvent(Enum):
BEFORE_ROBOT_RUN = "before_robot_run"
AFTER_ROBOT_RUN = "after_robot_run"
BEFORE_BRAIN_RUN = "before_brain_run"
AFTER_BRAIN_RUN = "after_brain_run"
BEFORE_CHAIN_RUN = "before_chain_run"
AFTER_CHAIN_RUN = "after_chain_run"
BEFORE_LLM_GENERATE = "before_llm_generate"
AFTER_LLM_GENERATE = "after_llm_generate"
BEFORE_LLM_STREAMING = "before_llm_streaming"
LLM_STREAMING = "llm_streaming"
AFTER_LLM_STREAMING = "after_llm_streaming"
BEFORE_TOOL_RUN = "before_tool_run"
AFTER_TOOL_RUN = "after_tool_run"
BEFORE_MEMORY_RECALL = "before_memory_recall"
AFTER_MEMORY_RECALL = "after_memory_recall"
BEFORE_MEMORY_REFRESH = "before_memory_refresh"
AFTER_MEMORY_REFRESH = "after_memory_refresh"
BEFORE_MEMORY_ENRICH = "before_memory_enrich"
AFTER_MEMORY_ENRICH = "after_memory_enrich"
BEFORE_MEMORY_STORE_GET = "before_memory_store_get"
AFTER_MEMORY_STORE_GET = "after_memory_store_get"
BEFORE_MEMORY_STORE_ADD = "before_memory_store_add"
AFTER_MEMORY_STORE_ADD = "after_memory_store_add"
BEFORE_MEMORY_STORE_DELETE = "before_memory_store_delete"
AFTER_MEMORY_STORE_DELETE = "after_memory_store_delete"
BEFORE_MEMORY_STORE_SERIALIZATION = "before_memory_store_serialization"
AFTER_MEMORY_STORE_SERIALIZATION = "after_memory_store_serialization"
BEFORE_MEMORY_STORE_CLEAR = "before_memory_store_clear"
AFTER_MEMORY_STORE_CLEAR = "after_memory_store_clear"
Notes: 如果用户需要扩展自己的事件,只需要在Span事件相应的函数内自行添加字符串表达即可,不需要修改此枚举类。不过一般情况下用户不需要扩展事件。而且扩展 事件虽然不需要修改此枚举,但如果要实现严格的监控,需要扩展的点会比较多。详情参考 event_extension.md。
BEFORE_ROTOT_RUN¶
此场景记录Robot-run方法调用前的上下文内容。