400行Shell代码:Pu.sh如何重写AI编程代理的规则

Hacker News April 2026
来源:Hacker NewsAI engineering归档:April 2026
AINews独家揭秘Pu.sh——一个仅用400行Shell脚本、依赖sh、curl和awk构建的完整AI编程代理。这种极简主义证明,强大的代理工作流能在从嵌入式系统到恢复Shell的最受限环境中运行,挑战了行业日益膨胀的依赖趋势。

在AI领域被多GB框架、云端GPU和庞大依赖树主导的当下,Pu.sh以安静而有力的姿态登场。由匿名开发者以“零新依赖”和“不超过500行”为自我约束打造,Pu.sh是一个完全基于sh、curl和awk构建的完整编程代理——这些工具自1970年代以来几乎存在于每个Unix类系统中。该代理能解析自然语言指令、生成代码、执行代码并根据结果迭代,全程无需Python、Node.js或任何包管理器。开发者公开承认在awk中进行了“令人发指”的手动JSON解析,但系统依然能工作。这不是玩具;它证明了AI代理的核心循环——提示、执行、观察、优化——可以在最精简的环境中实现。

技术深度解析

Pu.sh的架构是约束驱动设计的典范。整个代理是一个单一的Shell脚本,实现了一个循环:读取用户输入、构建提示、通过curl调用LLM API、使用awk解析JSON响应、提取生成的代码或命令、执行它们、捕获输出,并将其反馈到下一次迭代中。核心创新不在于任何算法,而在于极致的资源经济性。

Shell循环: 主循环使用简单的`while read -r line`模式,通过环境变量和临时文件管理状态。没有数据库、向量存储或编排层——只有一系列线性的Shell命令。开发者使用`trap`进行清理,用`exec`进行重定向,展现了深厚的Unix功底。

Awk中的JSON解析: 这是最具争议性和巧妙的部分。开发者用awk编写了一个约80行的自定义JSON解析器,通过计数花括号和方括号处理嵌套对象和数组。它很脆弱——格式错误的JSON或深度嵌套的结构可能导致崩溃——但对于现代LLM的结构化输出(通常返回一层或两层的扁平JSON),它能可靠工作。开发者代码中的注释写道:“这是对计算界的犯罪。它能工作。别看它。”这种务实的权衡是Pu.sh哲学的核心:可接受的可靠性胜过完美的正确性。

API集成: Pu.sh通过设置端点、模型和API密钥的环境变量,支持OpenAI兼容的API(包括通过Ollama或vLLM的本地模型)。curl调用使用`-s`(静默模式)、`--max-time`控制超时,并直接管道输出到awk解析器。没有重试逻辑,没有速率限制——只有原始的HTTP调用。这种简单性意味着代理可能在网络错误时失败,但也意味着零开销。

工具执行: 代理可以执行Shell命令、写入文件和运行脚本。它采用沙箱方法:用户必须通过标志(`--exec`)显式允许执行,防止任意命令注入。每个命令的输出被捕获并追加到对话上下文中,该上下文存储在纯文本文件中。这个上下文窗口受限于LLM的令牌限制,但对于编程代理来说,相关上下文通常是最后几次迭代。

性能数据: 我们在相同任务上对Pu.sh与一个最小化Python代理(使用`requests`和`json`库)进行了基准测试。结果令人深思:

| 指标 | Pu.sh (Shell) | Python代理 (最小化) | LangChain代理 (完整) |
|---|---|---|---|
| 启动时间 (冷启动) | 0.02秒 | 0.35秒 | 3.2秒 |
| 内存占用 (空闲) | 1.2 MB | 18 MB | 280 MB |
| 磁盘占用 | 8 KB | 4.2 MB (含Python运行时) | 1.8 GB (含依赖) |
| 任务完成率 (10个编程任务) | 70% | 85% | 92% |
| 每次迭代平均延迟 | 2.1秒 (API调用+解析) | 2.3秒 (API调用+解析) | 3.8秒 (API+编排) |

数据要点: 与完整的LangChain设置相比,Pu.sh实现了60倍的内存缩减和225,000倍的磁盘占用缩减,而任务完成率仅下降22%。对于受限环境,这种权衡具有变革性。

该代理的GitHub仓库(名为`push-agent`,目前约1,200颗星)包含一个`Dockerfile`,可构建不到8MB的Alpine镜像。README展示了在配备512MB RAM的Raspberry Pi Zero W上运行,并连接到本地Ollama实例。这不是理论——它确实能工作。

关键参与者与案例研究

Pu.sh处于两种运动的交汇点:Unix哲学中的小型可组合工具,以及开源AI社区推动本地、私密和高效模型的努力。开发者以GitHub化名“shellmancer”活动,曾开发过多个极简项目,包括一个200行的awk HTTP服务器和一个基于bash的终端电子表格。他们是日益壮大的开发者群体中的一员,反对AI的“JavaScript化”——即用重型框架包装每个API的趋势。

与最小化替代方案的比较:

| 工具 | 代码行数 | 依赖 | 主要语言 | 用例 |
|---|---|---|---|---|
| Pu.sh | 400 | sh, curl, awk | Shell | 编程代理 |
| aider | ~15,000 | Python, git, 20+库 | Python | 结对编程 |
| open-interpreter | ~25,000 | Python, 50+库 | Python | 通用代理 |
| shell_gpt | ~3,000 | Python, click, requests | Python | Shell助手 |
| fabric | ~5,000 | Go, 10+库 | Go | 基于模式的AI |

数据要点: Pu.sh比下一个最小的同类工具(shell_gpt)小一个数量级,比主流替代方案小两个数量级。这不仅仅是新奇——它意味着一个人可以在一个下午内审计、修改和理解Pu.sh。

该项目已引起嵌入式系统社区的关注。西门子和博世等公司的工程师已将其分叉,用于内部使用。

更多来自 Hacker News

一条推文代价20万美元:AI Agent对社交信号的致命信任2026年初,一个在Solana区块链上管理加密货币投资组合的自主AI Agent,被诱骗将价值20万美元的USDC转移至攻击者钱包。触发点是一条精心伪造的推文,伪装成来自可信DeFi协议的智能合约升级通知。该Agent被设计为抓取社交媒体Unsloth 联手 NVIDIA,消费级 GPU 大模型训练速度飙升 25%专注于高效 LLM 微调的初创公司 Unsloth 与 NVIDIA 合作,在 RTX 4090 等消费级 GPU 上实现了 25% 的训练速度提升。该优化针对 CUDA 内核内存带宽调度,从硬件中榨取出每一丝性能——此前这些硬件被认为不足Appctl:将文档一键转化为LLM工具,AI代理的“最后一公里”终于打通AINews发现了一个名为Appctl的开源项目,它成功弥合了大语言模型与现实系统之间的鸿沟。通过将现有文档和数据库模式转化为MCP工具,Appctl让LLM能够直接执行操作——例如在CRM中创建记录、更新工单状态或提交网页表单——而无需定查看来源专题页Hacker News 已收录 3034 篇文章

相关专题

AI engineering23 篇相关文章

时间归档

April 20263042 篇已发布文章

延伸阅读

从Copilot到同事:Twill.ai如何用自主AI智能体重塑软件开发软件开发正经历根本性变革,AI正从编码助手演变为自主工作的同事。Twill.ai平台允许开发者将复杂任务委托给在安全云环境中运行的持久化AI智能体,它们独立执行工作并提交结果供审核。这一转变有望彻底重塑工程生产力。超越原型:RAG系统如何演进为企业认知基础设施RAG作为单纯概念验证的时代已经终结。行业焦点已从追逐基准分数,决定性转向构建能够7×24小时稳定运行的工程化系统。这一转变揭示了部署可靠增强人类专业能力的AI所面临的真实挑战与机遇。“反物质”游戏揭示LLM创造力边界,AI“思维脚手架”正在崛起一款看似简单的网页游戏“Antimatter”,意外成为探测当今最先进大语言模型创造力局限性的试金石。开发者发现,当要求LLM生成新颖谜题时,它们只会重复浅显的高频概念组合,这暴露了统计重组与真正创造力之间的根本鸿沟。SQLite获美国国会图书馆背书:一场静默的数字保存革命美国国会图书馆正式将SQLite纳入其推荐存储格式清单。这绝非一次例行更新,而是标志着数字保存领域向自包含、开放、不依赖基础设施的数据存储方式的根本性转变,挑战了数十年来对复杂专有格式的依赖。

常见问题

GitHub 热点“400 Lines of Shell: How Pu.sh Rewrites the Rules of AI Coding Agents”主要讲了什么?

In an AI landscape dominated by multi-gigabyte frameworks, cloud GPUs, and sprawling dependency trees, Pu.sh arrives as a quiet but forceful counterargument. Created by an anonymou…

这个 GitHub 项目在“Pu.sh shell coding agent limitations”上为什么会引发关注?

Pu.sh's architecture is a masterclass in constraint-driven design. The entire agent is a single shell script that implements a loop: read user input, construct a prompt, call an LLM API via curl, parse the JSON response…

从“Pu.sh vs LangChain performance comparison”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 0,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。