Bub,轻量的 Agent 运行时,以插件自由组合。
开箱即用,再用插件按需定制模型执行、记忆和消息渠道。
curl -fsSL https://bub.build/install.sh | bash from bub import hookimpl
from bub.envelope import content_of
class MyPlugin:
@hookimpl
def build_prompt(self, message, session_id, state):
"""Shape what the model sees this turn."""
context = state.get("context", "")
return f"{context}\n{content_of(message)}"
@hookimpl
async def run_model(self, prompt, session_id, state):
"""Swap the provider — any client, any API."""
reply = await my_client.complete(
prompt, model=state.get("model")
)
return reply.text 特性
每个决定都有理由。
Bub 从第一天起就为真实的多 agent 协作而精心设计,而不是拍脑门决定。
按需组合
内核精简,内置实现均可替换。每个轮次阶段都是一个 pluggy hook,可通过 Python 插件覆盖,无需 fork 运行时。
Tape 上下文
所有上下文均可从追加式 tape 记录中重建、Fork,而非堆叠在 session 状态中。无损摘要,避免幻觉记忆。
Channel 任选
同一个 Pipeline 上驱动 CLI、Telegram 甚至你添加的任何 channel。Hooks 从不感知运行在哪个地方,可以是任意来源。
开箱即用
CLI、chat、gateway、逗号命令和默认 agent runtime 都以内置插件形式交付。第一天就能直接用,需要控制权时也能随时替换。
操作对等
人类与 Agent 共享同一操作者模型:相同的边界、证据链和 Hand-off 语义。
插件系统
显式覆盖插件设计:后注册的插件优先运行并覆盖前者,没有任何框架优先限制。
架构
处处都是 Hooks。
Bub 中每个阶段都是一个可插拔的 hook。
通过注册你自己的 hook 覆盖任意阶段。无需 fork。
| time | op | key | payload | |
|---|---|---|---|---|
| 14:32:01 | user_msg | e_101 | "explain hooks" | |
| 14:32:02 | build_prompt | e_102 | system + 12 msgs | |
| 14:32:04 | model_reply | e_103 | "Hooks are pluggy…" | |
| 14:32:04 | tool_call | e_104 | read_docs("hooks") | |
| 14:32:05 | tool_result | e_105 | {ok: true, lines: 47} | |
| handoff phase → correction, owner: agent | ||||
| 14:32:06 | correction | e_106 | ← e_103 supersedes e_103 | |
| 14:32:07 | model_reply | e_107 | "Updated: Hooks use pluggy…" | |
| 14:32:08 | save_state | e_108 | tape flushed ✓ | |
上下文模型
Tape,拍板。
上下文不积累在 session 状态中,而是从追加式 tape——不可变事实的序列——中重建:Entry 记录发生了什么、Anchor 标记阶段边界并携带结构化状态。
通过修正追加新事实来取代旧事实——从不覆盖。视图从 anchor 往后组装,而非整体继承。每次决策都可审计、可重放、可 fork。
社区
好东西,值得赞。
使用 bub 作为一个 build block 构建你自己的 agent 产品、服务你的业务,而不是学习复杂的概念然后无从下手。
PsiACE
@repsiace
再强烈推荐一遍 LLM 时代难得的这么优雅的代码了
yihong
@yihong0618
我一直想要有一个类似于 Cloud Code 一样的通用 Agent 框架,但我一直有点懒得自己开始去做这件事情。然后看到了 bub,感觉完美符合了心中所想的一个 Agent 框架。
earayu
@earayu
bub是属于短小精悍,里面有很多思考精神,值得学习
卡比卡比
@jakevin7
使用 bub 作为一个 build block 构建你自己的 agent 产品、服务你的业务,而不是学习复杂的概念然后无从下手。
PsiACE
@repsiace
再强烈推荐一遍 LLM 时代难得的这么优雅的代码了
yihong
@yihong0618
我一直想要有一个类似于 Cloud Code 一样的通用 Agent 框架,但我一直有点懒得自己开始去做这件事情。然后看到了 bub,感觉完美符合了心中所想的一个 Agent 框架。
earayu
@earayu
bub是属于短小精悍,里面有很多思考精神,值得学习
卡比卡比
@jakevin7