基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
编程提效2026-10-22 11:59

用决策关系图补上 Agent 的长期记忆

dev.to · AI#Agent#决策追溯#持续集成
Editor brief · 编辑速览

memgraph 是零依赖的本地 Node.js CLI,用节点和关系记录决策、事实、矛盾及替代原因,无需服务或嵌入模型。它能追溯决策依据、检查过期依赖和无来源结论,并通过退出码接入 CI。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

团队换掉一个队列方案后,旧实现却作为 fallback 留了下来,还依赖已经被替换的设计,最终在生产环境暴露问题。作者由此做了 memgraph:用本地关系图记录决策、证据、反驳和替代关系,让 AI 和开发者都能追溯「为什么这么选」。

它值得看的地方,是把决策之间的依赖变成可检查的数据。不过,检查关系是否自洽,与判断技术方案是否正确,是两回事。

为什么能搜到旧文档,还是会忘记决策

作者遇到的问题,不是找不到一句历史记录,而是没人能讲清:最初为什么选这个方案、依据是什么、谁同意了替换,以及哪些实现还依赖旧选择。

作者认为,Vector RAG 擅长找回文本,却没有自动维护这些决策关系。搜出两份互相冲突的 ADR(架构决策记录),并不等于知道哪份已经失效。

memgraph 的做法,是把决策和事实分别存成节点,再显式记录它们之间的关系。例如,一个事实可以反驳某项决策,新决策可以替代旧决策,某个实现也可以继续依赖旧决策。

决策变更后,需要保留的不只是新结论,还有旧结论为何失效。

工具是零依赖的 Node.js CLI,要求 Node.js 18+,采用 MIT 许可证。不需要网络、服务端或 embeddings(向量嵌入),数据保存在单个 JSON 文件里,可以跟代码一起提交。

把「旧方案已失效」变成 CI 能检查的规则

原文用队列选型演示了完整过程:先选 Postgres LISTEN/NOTIFY,再记录 NOTIFY payload 上限为 8000 bytes 的事实,最后改用 Redis Streams。

下面这组命令解决的是决策及其变更原因的留档问题:

memgraph init
memgraph add --type decision --title "Use Postgres LISTEN/NOTIFY for the queue" --source "ADR-014"
memgraph add --type fact --title "NOTIFY payloads cap at 8000 bytes" --source "Postgres docs"
memgraph link m-002 m-001 --relation contradicts
memgraph add --type decision --title "Switch the queue to Redis Streams" --source "ADR-019"
memgraph supersede m-001 m-003 --reason "payload cap makes NOTIFY the wrong tool"

要看最后一行:supersede 记录了替代关系和原因,旧节点仍然存在。--source 则负责留下依据来自哪里。

录入之后,有三个查询入口:

  • memgraph why m-003 用来查看来源、支持证据、矛盾和替代关系。
  • memgraph check 检查未解决的矛盾、仍依赖失效节点的有效节点,以及没有来源的主张。
  • memgraph list 列出全部节点,并标记已经被替代的节点。

memgraph check 发现错误时以退出码 1 结束,因此可以作为 CI 门禁:PR 引入了图中可识别的矛盾,或者保留了对旧决策的依赖,就会在合并前失败。

仓库还提供了一个小型团队决策图,可以用下面的命令运行演示:

sh examples/run-demo.sh

这里要关注演示中的 fallback reader:它仍然依赖旧设计,所以检查会报错。

作者报告,这张示例图恰好检出两个问题:fallback reader 依赖已被替代的决策,以及一个开放问题没有来源。8000 bytes 上限与旧方案之间的矛盾不会继续报错,因为旧方案已经被替代,这段冲突属于已解决的历史。

这比简单地「发现两句话冲突就报警」更有用。历史可以保留,当前规则也能保持清晰。

我的判断

我认同它把「找资料」和「维护决策状态」区分开来。相比只写 ADR,显式关系更方便检查跨决策依赖;相比只做向量检索,它提供了更明确的当前状态和替代路径。

但作者对 Vector RAG 的概括有边界。检索系统也可以结合状态字段、关系数据和过滤规则。原文没有提供对照实验,不能据此认定关系图在所有决策检索场景里都更好。

示例检出两个问题,也只是演示结果,没有说明真实团队能减少多少事故。尤其是,原文没有说明工具会自动分析代码、发现遗漏的 fallback。CI 能检查的范围,取决于团队录进图里的内容。

来源同样不等于真相。作者明确说,memgraph 无法判断来源是否可信,只能追踪出处、检查关系是否仍然自洽。队列为何必须放弃 LISTEN/NOTIFY,原文也没有展开具体负载和实现约束,不能把这次选型当成通用结论。

能拿来做什么

  • 在 Node.js 服务发生队列等基础方案变更时,把依据、替代原因和遗留依赖一起记录下来,重点检查 fallback 是否仍然有效。
  • 如果团队愿意持续维护决策图,可以把 JSON 随代码提交,并将 memgraph check 加入 CI,让已记录的关系问题在 PR 阶段暴露。
  • 在日常 AI 编程中,涉及方案沿革时先查询 memgraph why 和 memgraph list,再把结果交给 agent,帮助它区分当前决策与历史方案。
  • 决策被推翻时使用 supersede 保留历史,同时继续审查证据本身;有来源、关系自洽,都不能替代技术验证。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
用 Ollama 搭建可切换的本地模型开发环境
下一篇
生产级 RAG 如何持续同步源数据

资讯速览

dev.to · AI · 2026-10-22 11:59

AI 评分 8.0 / 10

相关标签

#Agent#决策追溯#持续集成

继续阅读

  • 金融智能体上线前必须补齐的治理工程
  • 用 Ollama 搭建可切换的本地模型开发环境
  • 生产级 RAG 如何持续同步源数据
  • Workspace MCP 接入将强制校验代理标记
  • 跨厂商编程 Agent 的运行状态如何统一展示