我是如何用确定性脚本构建 AI 输出质量的机械反馈环的

5 阅读3分钟

我是如何用确定性脚本构建 AI 输出质量的机械反馈环的

问题:AI 输出不可靠,prompt 调优有天花板

大模型的输出是概率性的。不管你提示词写得多好,边界情况一定会出错——幻觉、遗漏、格式漂移、自圆其说的合理化。

我在用 Claude Code 做日常开发时发现一个现象:AI 说"已完成"但文件根本没写入,AI 声称"已更新日志"但时间戳还是三天前的。不是 AI 在骗人——是概率性输出天然就不稳定。

纯提示词工程是用概率对抗概率,终极防线一定是确定性的、机械的校验。

方案:5 步中 4 步是脚本,只有 1 步需要 AI

我搭建了一套 Agent 配置系统,核心是一个闭环反馈机制:

self-model.md(当前自我认知)
    ↓
会话执行(AI 基于配置工作)
    ↓
成长数据积累(做了什么、翻了什么车)
    ↓
quality-gate.py 检测过期(文件时间戳 + exit code,纯 Python 脚本)
    ↓
写入 .self-model-stale 标记到磁盘
    ↓
下次启动:health-check.py 检测标记 → 触发 AI 再生 self-model
    ↓ (闭环)

4 步是机械脚本:文件时间戳检查、退出码判断、JSONL 审计日志、标记文件读写。 1 步需要 AI:内容再生——基于积累的成长数据重新生成自我认知。

机器做检查,人和 AI 做判断。这不是哲学,是工程。

关键设计决策

1. 零依赖,纯标准库

所有脚本只依赖 Python stdlib。没装任何第三方包也能跑。因为质量检查工具本身不能引入新的依赖风险。

2. 双层门禁:软提醒 + 硬拦截

  • 进程层(软):规则执行率低?提醒但不阻断。可能只是在探索。
  • 输出层(硬):学习日志没更新?exit 2 硬阻断。交付必须完整。

分界线不是"重不重要",而是"能不能事后补救"。

3. 文件系统即数据库

不用向量数据库、不用云服务。所有身份数据、成长日志、审计记录全是本地 Markdown + JSON 文件。Git 可审计,离线可用,数据完全自主。

外部验证:提交到 100K Star 项目的真实反馈

这套系统的一个模块(delivery-gate)被我从自用系统里提取出来,提交给了 ECC(100K+ Star 的开源 AI 工具项目)。

结果:维护者 daltino 审查通过并留言赞扬,affaan-m 亲自合并了后续两个相关 PR。一个 200 行的 Python 脚本,经过了 4 轮社区 bot 审查 + 维护者人工审查,发现了 9 个我自测没发现的问题。

开源社区的免费 QA 比任何自测都狠。 这也是我后来总结的"开源飞轮"方法论:自用系统 → 提取模块 → 找社区缺口 → PR 打磨 → 合并后反哺回自用系统。

如果你也想做类似的事

  1. 先在自己身上跑通。我的系统在 50+ 个真实 session 里验证过,才敢提给别人用。
  2. 脚本而非 prompt。能在 Python 里用 if/else 判断的,绝不用自然语言描述。
  3. 小步提交。给大项目提 PR,100-300 行是最优区间——维护者审查成本低,通过率高。
  4. 用 daltino 模板写 PR 描述:"Repo 有 X 和 Y,但没有 Z。本 PR 填补这个空白。"

写在最后

我今年大三,代码量可能不如科班卷王。但我认准一件事:AI 时代的核心竞争力不是逐行敲代码的速度,是判断什么该让 AI 做、什么必须用确定性规则兜底。

这个认知差,是我目前最大的求职资产。