在用 LangGraph 图编排 LLM 智能体系统、并用 Pydantic AI 为智能体添加类型的参考实现仓库 agent-graph-engineering 中,2026 年 10 月 31 日的提交 6b195cce 改动的是追踪部分。它从每个节点都会附带的 graph.state 转储中移除了对话历史(messages_json),改为留下一段表示其内容位于别处的占位符字符串。
这个仓库的范围比单个智能体循环更广。仓库说明称,它用图声明流程,用带类型的结构定义智能体,生成 WebSocket 与 REST 契约,对不可逆操作加入人工审批,并把追踪与评估打包在一起。本次提交只动了其中的追踪一处。提交消息指出,状态转储在一次运行中会把同样的内容按节点重复 9 次,而对话历史在其中约占七成。由于实际发送的内容本来就保留在节点之下嵌套的模型调用记录中,于是这段历史只留下名字,指向别处。同一条消息还写明,以脚本运行为准,状态属性的字符数从 15,997 减到 6,868。
实现只落在 agent/assistant/tracing/nodes.py 和两个测试文件中。_as_json 把状态转成 JSON 字符串时,只把 messages_json 的值替换为 <on the model call spans>,其余字段不作细粒度缩减,原样整块保留。如果对话历史是空字符串,就保持为空,以免被读成「没有内容但在别处」。三个新测试固定了这一行为。
不过,15,997 字符到 6,868 字符这一数字,是提交 6b195cce 的消息所说明的脚本运行基准。它只提到在真实对话中间距会更大,没有其他测量数据。仅凭状态属性无法查看对话内容,要确认内容必须转到嵌套的模型调用记录中去看。改动范围很窄,最终为新增 45 行、删除 2 行;截至 2026 年 10 月 31 日的提交 6b195cce,没有给出发行版本标记。对于需要缩小留在追踪中的状态体积的环境来说,这是可以马上用上的改进;但对于以把对话历史保存在状态值为前提的流水线,则需要另行考察替代方案。