Devotd Github
新发现AI 智能体

huynguyengl99/agent-graph-engineering — 从状态转储中排除对话

基于 LangGraph 和 Pydantic AI 的智能体参考实现 agent-graph-engineering,在逐节点的状态转储中用占位符替换了对话历史,减小了追踪记录的体积。

仓库信息huynguyengl99/agent-graph-engineering ↗

基于 LangGraph 和 Pydantic AI 的智能体参考实现 agent-graph-engineering,在逐节点的状态转储中用占位符替换了对话历史,减小了追踪记录的体积。

GitHub 项目说明: A production-grade reference implementation for LLM agent systems: flow declared as a LangGraph graph, Pydantic AI for typed agents, generated WebSocket and REST contracts, human approval on irreversible actions, tracing and evals.

星标
★ 14
复刻
4
语言
Python
许可证
MIT
查看原始来源 ↗在 GitHub 查看 ↗

在用 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,没有给出发行版本标记。对于需要缩小留在追踪中的状态体积的环境来说,这是可以马上用上的改进;但对于以把对话历史保存在状态值为前提的流水线,则需要另行考察替代方案。