爱意满满的作品展示区。
dengnan

让 AI Agent 改数据库之前,先开个分支:我们在 MatrixOne 里做了 Snapshot / Branch / Diff / Merge

  •  
  •   dengnan · 2h 41m ago · 141 views

    最近在做 agent 落地时一直被一个问题困扰:让 agent 查数据很容易,让它写数据就很吓人。

    提示词里写"不要乱改生产数据"没什么用。agent 拿到一个有写权限的连接,一句 WHERE 条件写宽了,几千行就被悄悄改掉了,事后连改了哪些行都说不清楚。

    我们的思路是把 Git 那套工作流搬到表上,做成数据库原生的 SQL 能力( MatrixOne ,开源,兼容 MySQL 协议):

    • Snapshot:agent 动手前给表打个快照。只记元数据,不复制数据,随时可以对比或回退
    • Branch:给 agent 开一个可写的表分支,它的增删改都在分支上,不碰主表
    • Diff:行级对比分支和主表,改了哪些行、改成什么一目了然
    • Merge:审核通过后按明确的冲突策略合并回主表;不满意就直接丢掉分支

    简单说就是给表提 PR:隔离 → 审查 → 批准 → 合并。

    先说清楚边界,免得被喷:

    • 这是底层原语,不是完整的安全方案。校验规则、审批流程、权限、审计还得你自己的系统来做,我们提供的是一条"可以被卡住"的写入路径
    • 教程里的示例是演示场景,不是客户案例

    想试的话,教程是可以直接跑的 SQL:

    利益相关:我是 MatrixOrigin 的,做这个产品。

    想听听大家的看法:

    1. 你们现在让 agent 写数据库,是怎么兜底的?只给只读权限、人工审 SQL ,还是别的办法?
    2. 行级 diff 审核这种方式,在你们的场景里实际用得上吗,还是太重了?
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2234 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:37 · PVG 12:37 · LAX 21:37 · JFK 00:37
    ♥ Do have faith in what you're doing.