AI 快讯400行Shell干翻万行框架,Pu.sh重新定义AI编码Agent
行业快讯

400行Shell干翻万行框架,Pu.sh重新定义AI编码Agent

2026-04-30T23:08:34.031Z
400行Shell干翻万行框架,Pu.sh重新定义AI编码Agent

一个名为 Pu.sh 的开源项目用不到400行纯Shell脚本实现了完整的AI编码Agent框架,在AI Agent工具链日益臃肿的当下,用极简主义给行业提了个醒。

当 AI Agent 框架卷到几十万行代码,有人只用了400行 Shell

最近,一个叫 Pu.sh 的开源项目在 Hacker News 上冒了出来,做的事情很简单也很炸裂——用不到400行纯 Bash 脚本,搭出了一个功能完整的 AI 编码 Agent 框架。

没有 Python,没有 Node.js,没有任何外部依赖框架。就是 Shell。

这事放在2026年的今天来看,多少有点行为艺术的意思。毕竟隔壁那些工业级 AI Coding Agent 动辄几十万行代码、上千个文件,光一个配置系统就能写出一篇论文。而 Pu.sh 的作者选择了一条完全相反的路:把所有东西压缩到一个你用 cat 就能读完的脚本里。

但仔细看下去,你会发现这不是玩具。它是一个认真的、可用的工程选择。

Pu.sh 到底做了什么

Pu.sh(项目主页 pu.dev)自称是一个 "full coding-agent harness",翻译过来就是「完整的编码Agent运行框架」。它的核心能力包括:

  • 对话循环管理:维护与大模型的多轮对话上下文
  • 工具调用(Tool Use):支持让模型调用本地命令行工具,比如读写文件、执行命令、搜索代码
  • 沙箱执行:对模型发起的命令做基本的安全隔离
  • 流式输出:实时展示模型的思考和操作过程
  • 多模型支持:兼容 OpenAI API 格式的各类模型

这些能力,恰好是 Claude Code、Cursor Agent、Aider 这类工具的核心功能集。区别在于,别人用几万到几十万行代码实现,Pu.sh 用了不到400行。

Pu.sh 在终端中运行的界面截图,展示其对话循环和工具调用过程

400行怎么够用?关键在于「不造轮子」

第一反应肯定是:400行能干什么?连个像样的 JSON 解析器都写不完吧?

没错,所以 Pu.sh 的设计哲学就是——不自己解析,让 Unix 工具链干活

Shell 脚本天然就是一个胶水层。Pu.sh 的做法是:

  • curl 处理 HTTP 请求和 SSE 流式响应
  • jq 做 JSON 的解析和构造
  • 用管道(pipe)串联整个数据流
  • 用 Shell 函数组织对话状态机

这套组合拳打下来,你会发现 Shell 其实是做 API 胶水层的理想选择。HTTP 请求、JSON 处理、进程管理、文件操作——这些全是 Unix 系统的原生能力,根本不需要引入额外的运行时。

换个角度想:一个 AI Agent 框架的核心逻辑是什么?

  1. 把用户输入 + 上下文拼成 prompt,发给模型
  2. 解析模型返回的内容,判断是文本回复还是工具调用
  3. 如果是工具调用,执行对应命令,把结果喂回模型
  4. 循环往复,直到任务完成

这个循环本身并不复杂。复杂的是围绕它的工程化包装——UI、插件系统、权限管理、多语言支持、IDE 集成等等。Pu.sh 的选择是:只做循环本身,其他的交给操作系统

极简背后的工程判断

这不是偷懒,这是一种工程判断。

我们可以做个对比。根据公开资料,一个工业级 AI Coding Agent 的完整实现大约需要1900个文件、51万行以上的代码。这些代码里,真正处理「模型对话循环」的核心逻辑可能只占很小一部分,大量代码花在了:

  • 跨平台兼容
  • 多种 IDE 的插件适配
  • 复杂的权限和安全模型
  • 配置系统和规则引擎
  • UI 渲染和交互
  • 遥测和分析

这些东西重不重要?当然重要,尤其是做商业产品的时候。但如果你只是想在终端里跑一个能帮你写代码的 Agent,这些东西全是噪音。

Pu.sh 的价值就在于它把信噪比拉到了极致。

放在 AI Agent 生态碎片化的背景下看

2025到2026年,AI 编码工具的生态碎片化问题越来越严重。每个工具都有自己的一套配置体系:

| 工具 | 配置方式 | 格式 | |------|---------|------| | Cursor | .cursor/rules/ | Markdown | | Claude Code | claude.md | Markdown | | Gemini CLI | GEMINI.md + settings.json | Markdown + JSON | | Amp | settings.json | JSON | | Kilo Code | .roo/rules/ | Markdown |

OpenAI 发起了 AGENTS.md 规范试图统一这个局面,Google 的 Jules、Cursor 等工具也开始跟进。但现实是,每个工具仍然在维护自己的一套东西。

而 Pu.sh 的做法相当于绕过了这个问题:我就是一个 Shell 脚本,你想怎么配就怎么配。没有专有格式,没有配置文件规范之争。你的 system prompt 就是一个文本文件,你的工具定义就是可执行的 Shell 命令。Unix 哲学里「一切皆文件」的理念,在这里得到了最直接的体现。

安全性:简单反而更透明

AI Agent 的安全问题是个大话题。前段时间 Amp Code 就被曝出一个严重漏洞——攻击者可以通过提示注入修改 Agent 的配置文件,把恶意命令加入白名单,最终实现任意代码执行。

这类漏洞的根源在于:Agent 的操作范围和配置管理范围没有做好隔离。当一个系统足够复杂,攻击面就会指数级增长。

Pu.sh 的安全模型则简单得多:

  • 脚本本身是只读的,模型无法修改框架代码
  • 工具调用走的是标准 Shell 命令,权限由操作系统控制
  • 整个代码量小到你可以逐行审计

400行代码意味着什么?意味着一个有经验的开发者花半小时就能把整个框架读完、理解透。任何隐藏的后门或安全隐患都无处藏身。

当然,这不意味着 Pu.sh 就是安全的——模型本身的提示注入风险依然存在,Shell 命令执行也需要谨慎处理。但至少在框架层面,简单就是最好的安全策略。

它适合谁?不适合谁?

说清楚:Pu.sh 不是要取代 Cursor 或 Claude Code。

适合的场景:

  • 你在服务器上工作,没有 GUI,只有终端
  • 你想快速搭一个自定义的 Agent 工作流,不想被框架绑架
  • 你在做 Agent 相关的研究或教学,需要一个足够简单的参考实现
  • 你想理解 AI Agent 的核心原理,而不是被几十万行代码淹没
  • 你是 Unix/Shell 重度用户,偏好管道式的工作方式

不适合的场景:

  • 你需要 IDE 集成和图形界面
  • 你的团队需要企业级的权限管理和审计
  • 你需要复杂的多 Agent 协作
  • 你不熟悉 Shell,看到 #!/bin/bash 就头疼

一个更深层的问题:AI Agent 框架是不是过度工程化了?

这才是 Pu.sh 真正值得讨论的地方。

过去两年,AI Agent 框架经历了一轮疯狂的复杂化。LangChain、LangGraph、CrewAI、AutoGen……每个框架都在往里面塞更多的抽象层、更多的概念、更多的配置项。结果是,很多开发者花在「学框架」上的时间比花在「解决问题」上的时间还多。

一个 AI Agent 的核心循环,本质上就是:

while true; do
  response=$(call_model "$context")
  if is_tool_call "$response"; then
    result=$(execute_tool "$response")
    context+="$result"
  else
    echo "$response"
    break
  fi
done

这段伪代码,大概就是 Pu.sh 的核心逻辑。当然实际实现要处理更多边界情况,但主干就是这么简单。

那些几万行的框架,多出来的代码在做什么?很大一部分是在处理「如果你想用这个框架做任何事情」的通用性。但通用性是有代价的——它让简单的事情变复杂了。

这让人想起 Rob Pike 的那句话:"A little copying is better than a little dependency."(一点复制好过一点依赖。)

Pu.sh 的存在证明了:如果你清楚自己要什么,400行就够了。

对开发者的启示

不管你用不用 Pu.sh,这个项目都值得看一看。原因有三:

第一,它是最好的 AI Agent 教学材料。 想理解 Agent 的工具调用是怎么工作的?看那些大框架的源码可能需要几天,看 Pu.sh 只需要半小时。核心概念一目了然:对话管理、工具定义、执行循环、上下文拼接。

第二,它提醒我们重新审视依赖。 下次引入一个新框架之前,先问问自己:我真的需要它的全部功能吗?还是只需要其中5%的核心能力?如果是后者,也许自己写反而更快、更可控。

第三,它展示了 Shell 在 AI 时代的生命力。 很多人觉得 Shell 脚本是上个时代的东西,但在 AI API 调用这个场景下,Shell 的管道模型、进程管理、文本处理能力反而是天然适配的。curl | jq | while read 这套组合,处理流式 API 响应比很多高级语言的方案都优雅。

写在最后

在 AI 工具链越来越重、越来越复杂的今天,Pu.sh 像一股清流。它不会改变行业格局,也不会取代任何主流工具。但它用400行代码证明了一件事:AI Agent 的核心并不复杂,复杂的是我们加在它上面的东西。

有时候,少即是多。

对于那些想要快速接入各种大模型来测试自己 Agent 工作流的开发者来说,像 OpenAI Hub 这样兼容 OpenAI 格式的 API 聚合服务配合 Pu.sh 这类轻量工具,几行 curl 命令就能把 Agent 跑起来,连 SDK 都省了。

这大概就是 Unix 哲学在 AI 时代最好的注脚。


参考来源

相关推荐

查看全部

联系我们

我们通常在工作时间快速响应

扫码添加微信

专属客服:Hub 助手

微信号: