HintBlock 的形式注入上下文,由 Agent(...) 的 injection_config 参数控制。
注入覆盖四个维度,各自有独立的触发时机:
其中上下文用量的缓冲区
context_buffer_ratio 定义在上下文配置中,其余三个维度由 InjectionConfig 控制。
注入机制
每个注入字段包装为<key>value</key>,拼接后填入 template(默认是一个 <system-reminder> 包裹模板)。一条典型的注入提示如下:
注入提示示例
- 注入不是临时的:它会追加到持久化上下文中,让智能体感知时间的流逝和每一步做了什么,建立时间感。
- 提示以
HintBlock形式附加,而不是修改系统提示,因此提示词缓存依然有效,同时智能体持续感知变化的状态。 - 只有会话中会变化的信息才会被注入。固定信息(智能体身份、长期指令)应写入系统提示。
emit_hint_event 开启时,reply_stream 会额外产出一个 HintBlockEvent,方便前端渲染注入的提示。
配置注入
向智能体构造函数传入InjectionConfig 即可调整注入行为:
InjectionConfig 的字段如下:
InjectionConfig 上的 context_buffer_ratio 已废弃,请改用上下文配置中的同名字段。此处仍然可以传入,会覆盖上下文配置中的取值,同时发出 DeprecationWarning。注入自定义字段
除内置维度外,extra_fields 可以注入开发者自定义的信息,例如传感器读数、部署元数据:
自定义模板
template 字段控制注入内容呈现给大模型的方式。它必须包含 {runtime_state} 占位符,占位符会被替换为拼接后的 <key>value</key> 字段: