Skip to main content
智能体通过运行时状态注入感知不断变化的环境:在每次推理之前,随对话变化的信息(当前时间、计划任务、上下文用量)会以 HintBlock 的形式注入上下文,由 Agent(...)injection_config 参数控制。 注入覆盖三个维度,各自有独立的触发时机:

注入机制

每个注入字段包装为 <key>value</key>,拼接后填入 template(默认是一个 <system-reminder> 包裹模板)。一条典型的注入提示如下:
注入提示示例
有三个设计要点值得了解:
  • 注入不是临时的:它会追加到持久化上下文中,让智能体感知时间的流逝和每一步做了什么,建立时间感。
  • 提示以 HintBlock 形式附加,而不是修改系统提示,因此提示词缓存依然有效,同时智能体持续感知变化的状态。
  • 只有会话中会变化的信息才会被注入。固定信息(智能体身份、长期指令)应写入系统提示。
当注入发生且 emit_hint_event 开启时,reply_stream 会额外产出一个 HintBlockEvent,方便前端渲染注入的提示。

配置注入

向智能体构造函数传入 InjectionConfig 即可调整注入行为:
InjectionConfig 的字段如下:
context_buffer_ratio 必须小于上下文配置trigger_ratio,以保证上下文用量在压缩发生之前注入。否则智能体构造函数会抛出 ValueError

注入自定义字段

除内置维度外,extra_fields 可以注入开发者自定义的信息,例如传感器读数、部署元数据:
自定义字段会附加到每一次注入中,但自身不会触发注入:只有当时间、任务或上下文维度触发时才会一并注入。

自定义模板

template 字段控制注入内容呈现给大模型的方式。它必须包含 {runtime_state} 占位符,占位符会被替换为拼接后的 <key>value</key> 字段: