AI 垃圾代码泛滥?HashiCorp 创始人开源 Vouch:重构开源信任机制

本文永久链接 – https://tonybai.com/2026/02/12/ai-garbage-code-hashicorp-founder-vouch-rebuilding-open-source-trust

大家好,我是Tony Bai。

在生成式 AI 大模型以及AI Coding Agent(如Claude Code等)极大地降低了代码编写门槛的今天,开源维护者的防线正面临崩溃。当“看起来像样但毫无逻辑”的 AI 垃圾代码(AI Slop)充斥 PR 列表时,传统的“来者不拒”模式已不再适用。为此,HashiCorp 创始人 Mitchell Hashimoto 开源了新工具 Vouch,试图将开源治理从“验证代码”回归到“验证人”。

开源治理的新危机:当贡献变得太容易

在过去二十年的开源黄金时代,社区奉行的是“信任但验证(Trust and Verify)”的原则。这一原则建立在一个隐含的前提上:贡献代码是有成本的。理解代码库、编写逻辑、提交 PR,这些努力本身就是一个自然的过滤器,筛掉了大多数低质量的贡献。

然而,2024 年以来的 AI 浪潮打破了这一平衡。

Mitchell 在 Vouch 的发布文档中直言不讳地指出:

“不幸的是,随着 AI 工具的出现,人们可以轻而易举地创建出看起来合理但质量极低的贡献,而无需任何真正的理解。”

这种被称为 “AI Slop(AI 垃圾)” 的内容,正在消耗维护者宝贵的精力。维护者不再是在审核代码逻辑,而是在进行一场分辨“对方是不是人类”的图灵测试。

Vouch 的解法:重构信任机制

面对危机,Mitchell 没有选择更复杂的自动化测试,而是选择了一种复古且激进的社会学解法——Vouch(担保)。

Vouch 的核心逻辑非常简单:如果要参与项目(提交 PR、评论等),你必须先获得信任。

1. 显式信任白名单

Vouch 不再假设陌生人是善意的,而是要求显式授权。它通过一个扁平的文本文件(默认名为 VOUCHED.td),记录了所有被信任用户的列表。

  • Vouched(已担保):被允许参与项目的用户。
  • Denounced(已谴责):明确被屏蔽的用户(例如提交恶意代码或滥用 AI 的人)。

GitHub Actions 会自动检查 PR 提交者是否在名单中。如果不在,PR 可能会被自动关闭,并将那些“低成本的 AI 投机者”拒之门外。

2. 并非技术门槛,而是“社交投名状”

这是否会让新手望而却步?Mitchell 在 FAQ 中给出了否定的回答。

获取信任并不需要你先修复一个复杂的 Bug,你需要做的仅仅是像一个正常人类一样交流

“基本上:像在任何正常的人类社交环境中一样介绍你自己,你就能获得担保。”

一个真诚的 Issue 评论:“嗨,我是开发者 X,我想修复 Y 问题,我的思路是 Z”,远比一个冷冰冰的、由 AI 生成的一键 PR 更能赢得维护者的信任。

技术实现:Trustdown 与去中心化

Vouch 的设计体现了极简的 Unix 哲学和去中心化思想:

  • Trustdown (.td) 格式:信任列表不是数据库,而是一个简单的文本文件。它易于阅读,易于 Diff,完全基于 Git 进行版本控制。
  • 基于 Nushell:Vouch 的核心逻辑是用 Nushell 实现的,这意味着它没有复杂的依赖,是一个纯粹的 CLI 工具。
  • 信任网络(Web of Trust):这是 Vouch 最具野心的愿景。项目 A 可以配置 Vouch 去读取项目 B 的信任列表。这意味着,如果你在 Ghostty(Mitchell 的终端项目)中获得了信任,你在其他引用了 Ghostty 列表的项目中也将自动获得信任。

这种机制有望在开源界建立起一个跨项目的“信任联邦”,让优质贡献者畅通无阻,让 AI 垃圾制造者寸步难行。

小结

Vouch 的出现,标志着开源治理的一个转折点。在 AI 能够无限量生成代码的时代,“人”的信誉变得前所未有的重要。

Vouch 不是为了制造精英主义的壁垒,而是为了保护维护者的热情。它提醒我们:开源的本质不是代码的堆砌,而是人与人之间的协作与信任。

vouch开源项目仓库地址:https://github.com/mitchellh/vouch


你支持这种“验证人”的做法吗?

面对 AI 生成的代码洪流,你认为 Vouch 这种显式白名单模式是保护了维护者,还是会阻碍新手加入?在你的开源项目中,是否也曾遇到过让你头大的“AI 垃圾 PR”?

欢迎在评论区分享你的看法或应对策略!


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

从 P2H 到 P2A2H:软件架构的终极倒置——为智能体设计软件

本文永久链接 – https://tonybai.com/2026/02/12/p2h-to-p2a2h-software-architecture-inversion-designing-for-agents

大家好,我是Tony Bai。

回顾过去 50 年的软件工程史,无论技术栈如何更迭——从汇编到 C,从 Web 到 Mobile,从单体到微服务——其核心的生产关系从未改变。

这种关系被称为 P2H (Programmer to Human):即程序员(Programmer)揣摩人类(Human)的需求,将其固化为代码,构建成功能确定的软件产品,最后交付给用户使用。

在这个模型中,程序员是“权威”。我们决定了按钮在左边还是右边,决定了业务流程是三步还是五步。用户必须削足适履,去学习和适应软件的逻辑。

然而,这种模式正面临前所未有的危机。

人类的需求是无限且流动的(“我想分析一下上个月买咖啡的钱占总支出的比例”),但程序员编写的代码是有限且刚性的(“抱歉,App 只有‘按类别查看支出’的功能”)。

这个供需矛盾,导致了无穷无尽的需求变更、功能堆砌,最终造就了难以维护的“软件屎山”。

但是,AI Agent 的出现,打破了这个死结。

我们在程序员和用户之间,插入了一个拥有无限耐心、通晓所有 API、且具备动态生成能力的“超级中间商”——智能体(Agent)

软件架构正在经历一场“哥白尼时刻”般的倒置:我们不再直接为人类编写软件,我们正在进入 P2A2H (Programmer to Agent to Human) 的新纪元。

定义 P2A2H:供应链的重构

P2A2H 不仅仅是工作流的变化,它是软件产业链的彻底重组。

1. Programmer (P):工具制造者

在 P2A2H 模型中,程序员退守到了基础设施层。我们不再直接编写面向最终用户的业务逻辑(Business Logic),而是编写原子能力(Atomic Capabilities)、工具(Tools)、规则(Rules)和护栏(Guardrails)。我们是“造物主”,负责定义物理定律,而不是搭建具体的房子。

2. Agent (A):运行时环境与超级工人

Agent 成了新的 Runtime。它接收 Human 的模糊意图,实时调用 P 提供的工具,即时生成(Just-in-time) 或 动态编排 出满足特定需求的解决方案。它是“超级工人”,也是“软件本身”。

3. Human (H):指挥官

用户不再是被动的操作者,而是主动的指挥官。他们不再需要学习“如何使用软件”,因为软件会根据他们的意图自动重组。

这意味着,软件工程的重心,正在从“人机交互 (HCI)”转移到“机机交互 (M2M)”与“智能体体验 (AX)”。

P2A (Programmer to Agent):什么是“智能体体验 (AX)”?

过去,我们谈论 UX(用户体验),我们关注的是按钮是否好点、颜色是否悦目、文案是否感人。因为人类是感性的、迟钝的、容易犯错的。

现在,我们需要谈论 AX (Agent Experience)

因为你的代码的第一用户不再是人,而是 AI。AI 是理性的、极速的、但也是极其依赖上下文的。

为了实现高效的 P2A,我们需要对现有的软件架构进行三大重构:

1. API 的重构:从“简洁”到“自描述”

在 P2H 时代,我们追求 API 的简洁。如果出错了,返回一个 404 Not Found 或者一段给人看的 User not authorized 就足够了。

但在 P2A 时代,这种 API 是不合格的。Agent 是一个黑盒,当它收到一个错误时,如果缺乏上下文,它会陷入“幻觉”或死循环。

Agent-Friendly API 的设计原则:

  • Verbose Error (详尽报错):错误信息不仅要说是错的,还要说为什么错以及怎么改。

    // Bad for Agent
    { "error": "Invalid Input" }
    
    // Good for Agent (AX)
    {
      "error": "InvalidDateRange",
      "message": "Start date cannot be later than end date.",
      "schema_ref": "#/definitions/DateRange",
      "suggestion": "Swap the start_date and end_date parameters."
    }
    

    只有这样,Agent 才能利用其推理能力实现Self-Correction(自我修复)。

  • Hypermedia / HATEOAS (Hypermedia as the Engine of Application State) 的回归:API 应该告诉 Agent 下一步能做什么。这种在 Web 2.0 时代被嫌弃的繁琐设计,在 Agent 时代可能迎来复兴,因为这为 Agent 提供了导航图。

2. 文档的重构:从 Readme 到 Spec

以前写文档是为了让同事看懂,充满了“请注意”、“通常情况下”这种模糊词汇,甚至还配了大量截图。

Agent 看不懂截图,也讨厌模糊。

未来的文档将演变为 Spec(规范说明书)和 Schema(模式定义)。

  • OpenClaw (原Moltbot) 的启示:为什么 Moltbot 强调“要连接 xx,就写一个 CLI”?因为 CLI 的 –help 文档就是最标准、最结构化的 Prompt。
  • MCP (Model Context Protocol):为什么 MCP 会火?因为它本质上就是一种 P2A 协议。它强制程序员用 JSON Schema 清晰地定义资源(Resources)、提示词(Prompts)和工具(Tools)。这实际上是在为 Agent 建立世界模型。

3. 工具的重构:Headless First

图形界面(GUI)是给人类的“降维打击”,而命令行(CLI)和 API 才是机器的“母语”。

在 P2A2H 架构中,所有的功能必须优先实现 Headless(无头模式)。

  • 反模式:想要查询数据,必须登录网页后台,点击三次菜单,导出 CSV。Agent 很难操作(需要调用昂贵的视觉模型)。
  • AX 模式:提供一个 query_data 的 CLI 或 API。Agent 可以通过管道(Pipe)直接处理数据流。

程序员的新格言:不要构建只能用鼠标点击的功能。如果它不能被脚本调用,它就不存在。

A2H (Agent to Human):软件的“液态化”

当 P 为 A 准备好了完美的工具箱,A 将如何为 H 服务?

这将导致软件形态的终极质变——从“固态产品”变成“液态服务”。

1. 一次性软件 (Disposable Software)

想象这样一个场景:

用户(H)对 Agent 说:“我想统计一下家里两只猫过去三年的医疗花费,并对比一下猫粮价格的波动,生成一个图表。”

  • P2H 模式:用户需要去 App Store 找一个“宠物记账 App”,如果 App 没有“猫粮价格对比”功能,用户就没辙了。
  • P2A2H 模式:
    1. Agent 理解意图。
    2. Agent 调用 P 提供的“数据库工具”抓取账单,“OCR 工具”识别发票,“搜索工具”抓取历史粮价。
    3. Agent 现场编写 一个 Python 脚本,进行数据清洗和绘图。
    4. Agent 运行脚本,把图表展示给用户。
    5. 任务结束,脚本销毁。

这个“软件”(Python 脚本)只存在了 5 分钟。它不是为了 100 万人设计的,它是为了这 1 个用户在这一刻的特定需求设计的。

软件不再是名词,而变成了动词。

2. 生成式 UI (Generative UI)

既然功能是动态的,界面为什么必须是静态的?

在 P2A2H 架构中,程序员不再纠结按钮放左边还是右边。程序员只提供 Design System(设计系统)和 UI Components(组件库)。

Agent 会根据用户当前的设备(手机/VR眼镜)、视力状况、使用习惯,动态渲染 出最适合当下交互的界面。

  • 对于老人,Agent 生成大字体、语音交互优先的界面。
  • 对于极客,Agent 直接生成一个 Dashboard 或 CLI 界面。

UI 不再是设计师的画布,而是 Agent 与人类沟通的即时语言。

挑战与思考:程序员的门槛是降了还是升了?

有人可能会问:“如果 Agent 能自己写脚本、自己生成 UI,那程序员是不是要失业了?”

答案恰恰相反。在 P2A2H 模式下,程序员的门槛被极大抬高了。

1. 从“实现者”到“抽象者”

以前,你只需要写代码实现业务逻辑(Implementer)。

现在,你需要设计“能让 AI 理解并正确使用的工具”(Toolmaker)。这要求你具备极强的抽象能力。如果你设计的工具边界不清,或者副作用(Side Effects)未被隔离,Agent 可能会拿着你的工具把生产环境搞崩。

2. 安全与护栏 (Safety & Guardrails)

当 Agent 拥有了自主权,P 的核心职责变成了“设置护栏”。

  • 如何防止 Agent 生成恶意 SQL?
  • 如何防止 Agent 在执行“清理文件”任务时误删系统关键数据?
  • 如何确保 Agent 生成的 UI 不包含欺诈信息?

程序员成了 Agent 物理世界的守门人。我们需要编写大量的 Validator(验证器) 和 Sandbox(沙箱)策略,来约束这个强大的数字劳动力。

3. 元编程 (Meta-Programming)

P2A2H 本质上是最高级的元编程——编写“编写程序的程序”的规则。

你需要思考的不是 if (x > 0),而是“如何定义规则,让 Agent 知道在什么情况下应该生成 if (x > 0)”。

小结:从工匠到“神”

在 P2H 时代,程序员是工匠。我们雕琢每一个像素,优化每一行 SQL,为了满足用户的需求疲于奔命。

在 P2A2H 时代,程序员的角色更接近于“神”(造物主)。

我们创造法则(Specs),锻造神器(Tools),赋予智慧(Context),然后放手。

让那些不知疲倦的智能体(Angels),去响应人类的祈祷,去构建那个千变万化的世界。

这是一次伟大的升维。

别再盯着那个该死的按钮颜色了,去设计能让 Agent 自由飞翔的 API 和 Tools 吧。


你准备好成为“工具制造者”了吗?

软件正在从“固态产品”变成“液态服务”。在这种架构倒置的未来,你认为程序员最不可被 AI 替代的能力是什么?你会为了 AX(智能体体验)而主动增加 API 的“繁琐”程度吗?

欢迎在评论区分享你的架构构想!


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 AI原生开发工作流实战 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com
这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats