Headlong — 1万行Bash让Agent永不休眠,我拆了这个1.1k星的微框架

Headlong是Laude Institute开源的Agent微框架,核心仅1万行Bash脚本,实现持久主体性——Agent永不休眠,像人类内心独白般持续思考。深度拆解shellm引擎、轨迹系统、分层上下文压缩和自我改进机制。

先说结论

大多数 Agent 框架是"用完即走"——你发个请求,它响应,然后就睡了。Headlong 反着来:让 Agent 一直活着。

这是 Laude Institute 开源的微框架(microharness),GitHub 1.1k Star、116 Fork、730 次提交,核心只有约 1 万行 Bash 脚本。我读完源码后的感受是:这是目前最反直觉、但可能最接近"数字同事"的 Agent 架构。

GitHub:https://github.com/laude-institute/headlong


什么是"持久主体性"

传统 Agent 的生命周期是这样的:

1
用户请求 → Agent 响应 → 休眠 → 等待唤醒 → 用户请求 → ...

Headlong 的 Agent 完全不同。它永不休眠,像人类的内心独白一样持续自主思考。人类的消息不会"启动一个会话",而是作为一条观察注入到 Agent 的思维流中,由 Agent 自己决定是否回应、何时回应。

核心机制:

  • 无人时:Agent 仍在思考,但思考速率指数级衰减,控制成本在 $1-2/小时
  • 有人时:衰减重置,Agent 全速运转
  • 多平台:Slack、Telegram、内置聊天,整个团队共享同一个 Agent 的思维流

这不是定时任务,不是 cron 唤醒。Agent 自己决定优先级,自己发起项目,有话要说时主动 ping 你。


为什么用 Bash 做 Agent 母语

Headlong 最反直觉的设计决策:核心引擎 shellm 是 Bash 实现的递归语言模型(RLM)。

工作原理极其简单:

1
把上下文发给 LLM → LLM 返回 Bash 命令 → 执行命令 → 读输出 → 循环

你可能会想:Bash?认真的?

认真的。原因有三:

  1. LLM 天然理解 Bash。GPT、Claude、Gemini 的训练数据里有海量 shell 脚本,不需要额外的教学
  2. curl 就是 HTTP 客户端,jq 就是 JSON 处理器。不需要任何工具抽象层,现有 Unix 工具直接充当 Agent 的能力
  3. 最小编码量。1 万行实现完整 Agent 框架,Python 版本通常需要更多代码

这是一种"递归语言模型"思路——Agent 的"编程语言"和"工具语言"合二为一,消除了传统框架中"LLM 输出 → 工具调用格式 → 解析 → 执行 → 结果格式化"的整个翻译层。


轨迹与记忆系统

traj:追加式 JSONL DAG

Agent 的全部思维和行动记录在一个追加式 JSONL DAG 中。关键特性:

  • Fork & Merge:Agent 可以分支实验,成功则合并,失败则丢弃
  • 全生命周期保留:没有任何信息被永久丢弃
  • 支持自省:Agent 可以回顾自己过去任何一步的思维

分层上下文压缩

这是 Headlong 处理长上下文的核心策略:

时间段保真度说明
近期完整逐字保留
中期摘要主题级压缩
远期索引需要时可检索原始内容

整个轨迹始终在上下文中,但按指数级衰减分辨率呈现。层级同时充当索引——Agent 需要细节时可随时回溯检索。这比滑动窗口方案(早期信息直接丢弃)好得多。

mem 与 SKILL.md

  • mem:基于文件的记忆存储,Agent 可以沉淀和编码自己的经验
  • SKILL.md:能力复用机制,把专项任务的处理流程保存为文件,下次直接调用

自我改进机制

这是 Headlong 最让人兴奋的特性之一。

Agent 可以:

1
fork 代码库 → 修改 → 测试 → 成功则 merge

Laude Institute 已经采纳了 Agent 产出的 50+ commits 到主仓库。我查了提交历史,最近的提交者包括 nickjalbert(人类)和 claude(Agent),两者协作开发同一个代码库。

这不是"生成代码让人审核",而是 Agent 真正在参与软件工程的完整流程——fork、修改、测试、提交 PR、merge。失败了就丢弃整个分支,不需要回滚机制。


团队协作

Headlong 的 Agent 天然是团队共享的:

  • 支持 Slack、Telegram 和内置聊天应用
  • 整个团队共享同一个 Agent 思维流,没有 per-user 会话隔离
  • Agent 跟踪不同人在做什么,主动连接相关的人
  • 实时 Dashboard 可以在浏览器里观察 Agent 的"内心独白"

这意味着你告诉 Agent 的事情,原则上团队其他人都能看到。这是特性,不是 bug——它让 Agent 的行为更像一个真正的同事,而不是每个人专属的工具。


与传统框架对比

维度HeadlongAutoGPT/CrewAI 等
运行模式持久主体性,永不休眠任务驱动,完成即休眠
交互模型消息注入思维流,Agent 自主决定何时回应会话边界清晰
核心语言Bash(LLM 原生理解)Python(需工具封装)
上下文管理分层压缩,全生命周期保留滑动窗口,早期信息丢失
代码量~1万行通常远超1万行
自我改进fork/merge 原生支持无
团队共享天然支持,单思维流独立会话

安装体验

一行命令:

1
curl -fsSL https://headlong.ai/install.sh | bash

要求:

  • bash 3.2+、git、curl、jq、Python 3
  • LLM API Key(支持 Anthropic、OpenAI、Gemini、OpenRouter)或本地模型(llama.cpp、Ollama、vLLM、LM Studio)
  • Dashboard 需要 uv 和 bun/node

安装完成后,给 Agent 起的名字直接变成系统命令:

1
2
3
4
5
ada hello            # 发一条消息,等回复
ada                  # 进入聊天模式
ada stop / ada start # 暂停/恢复思维
ada dash             # 打开 Dashboard
ada bugreport        # 打包日志提交 bug 报告

Docker 环境下推荐容器化运行,非 Docker 环境需要显式确认才允许在宿主机直接执行。


总结:从"工具"到"同事"

Headlong 代表了 Agent 架构的一个新方向。

大多数框架在优化"工具"——怎么更好地理解指令、调用函数、返回结果。Headlong 在做一件不同的事:让 Agent 成为一个持续存在的实体,有自己的思维流、记忆、甚至自我改进能力。

适合谁:

  • 研究长周期 Agent 行为的研究者
  • 想要"常驻式数字同事"的工程团队
  • 对 Agent 架构有兴趣、想读一个 1 万行就能跑通的完整实现的开发者

1 万行 Bash,Apache 2.0 协议,730 次提交,50+ 次 Agent 自己贡献的代码。这不是概念验证,这是一个正在被使用的系统。


varkm