为防 agent 删库,他给 Postgres 加了分支合并机制并复盘踩坑
Antique-Willow-5841 · reddit · 2026-10-17
作者的 LLM agent 因有写权限误删了 CRM 全部线索列表,促使他构建一个让 agent 安全写库的方案(源码可用,BSL 许可,4 年后转 Apache 2.0)。
设计:不迁移生产库,而是旁挂在现有 Postgres 旁——复制 agent 要操作的表,agent 在自己的分支上工作,合并时在单个事务里写回。社区反馈重塑了项目:分支容易,可信任的合并才是难点(Databricks Lakebase 自己都承认分支数据调和「很快变得不现实」)。
合并是否放行的机制:
- 每行三方合并,生产库与 agent 都改过的行视为冲突,一律不写
- 读取追踪:agent 读过的行若在期间被改,合并挂起
- 对合并结果跑 SQL 检查,捕捉「各自没问题、合起来出错」的变更
- 人工规则:禁止删除、行数上限、指定表必须审查;限额按整个 run 计,防止拆分大删除
- webhook/邮件等副作用只在合并落地后才触发
- LLM 自己的「我只改了 3 行」不作数,以数据库实际记录为准
工程踩坑:「这行变了吗」比想象难(时区/浮点格式/触发器时间戳造成假冲突,解法是让 Postgres 在固定事务设置下按文本比较);serial id 是陷阱(从生产 sequence 按块预留 id);PgBouncer transaction 模式下所有设置须 SET LOCAL;用预写 merge id 处理「Postgres 已提交但记录未写」的崩溃窗口。
现状:beta,单次合并最多 1 万行,尚无外部真实用户。
所属事件:AI 误删 CRM 数据后,开发者打造类 Git 分支式 Postgres(3 条相关)→
「编程与Agent」频道最新
- 大学生实习记:把会议记录喂给 Claude 当导师复用职场技能 — beglen · 2026-10-17
- 用户吐槽 Grok Bot 长上下文管理差,只能反复重建机器人 — alexcovo_eth · 2026-10-17
- 后端工程师业余做语音催收 agent,签下首个月费 6000 美元客户 — retarded_raj · 2026-10-17
- 开源 NotebookLM 替代品 Notestack 新增 MCP 服务器,可直接挂进 Claude 生成报告播客 — phicreative1997 · 2026-10-17
- Qwen Flash 量化等级实测:低量化更慢,温度 0 更稳 — Dreeew84 · 2026-10-17
- 从 SDLC 到 ADLC:Limestone 详解 agent 开发生命周期七步法 — alex_verem · 2026-10-17