2026 2026年10月24日 29 min · 8.4k chars by yxc023

GitHub 调研周报 2026-10-24

扫描窗口:2026-09-08T09:23:29Z → 2026-10-24T00:30:15Z(共 45.7 天)| 基准来源:上次报告 2026-10-23

2026-10-24 GitHub 调研周报

扫描窗口:2026-09-08T09:23:29Z → 2026-10-24T00:30:15Z(共 45.7 天)| 基准来源:上次报告 2026-10-23

注:基准时间 字段自 2026-09-08 起连续 13 期未变(按 spec 读取自 reports/latest.md)。本期新增内容全部落在 2026-10-23T00:30:05Z 之后的约 24 小时,下文「窗口期内」均指这一增量段。

本期速览

  • anomalyco/opencode: v2.1.4 的主线是「MCP 交互表单终于能出现」+「compaction 移到后台」——MCP elicitation 表单在 TUI / Desktop / Web 三端都能弹出(#58184 / #58305),此前工具调用会一直等到超时;新增 experimental.background_compaction,在会话接近压缩阈值时提前后台准备摘要;compaction 超出 provider 限制时优先缩短旧 tool output(#58015);ChatGPT 登录的 context caps 从硬编码拆成可关闭的独立插件 opencode.provider.openai-context-caps(#58194)。
  • opencode 同日撤回 Console 托管语音——#58461 revert 了 v2.1.3 引入的 Console 托管 GPT-Live,理由是语音模型将变成 models.dev 上的普通 provider 模型(#58458 把 realtime / embedding / reranking 模型从目录中剔除)。托管平台作为特殊通道正在被收回。
  • opencode 一天内铺开 5 条图像生成接入——Alibaba、Cloudflare Workers AI Run API、Vercel AI Gateway,外加「可移植图像形状(aspect + resolution)」(#58528 / #58383 / #58387 / #58469),并修掉「OpenAI-compatible host 不返回 output_format 时无法识别图像类型」(#58475)。
  • hindsight 修掉一个被忽视的 prompt cache 杀手——#6053 把 memory block 从 system prompt 移到 user message,因为该 block 每轮都在变,放在 system prompt 里每次请求都破坏缓存前缀(fixes #5914);同窗口新增 operation runs 扩展点(#6048),记录每次 retain / recall / reflect / consolidation 的墙钟时间与其模型调用、store 调用。
  • ACP 的子代理 RFD 从「文档讨论」进入「协议改动」——#2465 让 session message 的收发两侧视图互相指名(senderMessageId / recipientMessageId),并把消息身份从 chunk 上剥离;#2468 定义子代理配置的只读快照(复用 config_option_update,不新增协议字段)。这直接推翻了上期「协议本体零改动、子代理委派未进入规范」的判断。
  • MCP 成为四个仓库的共同故障面——opencode 修了 MCP 表单不出现、OAuth 回调被无关请求打断、远程 MCP 请求被 Bun fetch idle timeout 掐断、初始 reconciliation 重复启动 MCP server;pi 在 [Unreleased] 里让 MCP sign-in 只接受 http: / https: 的 OAuth URL(此前可传 file: 或自定义协议)。
  • pi 的 Chord 子系统在长出「可被观察的值」抽象——Watchable / NativeWatchable 与共享 watch-handle 实现落地(Mario Zechner),Durable 直接复用;加上 MCP OAuth URL 校验、device-code 登录自动开页/复制码、/model 与 /resume 搜索排序修复、HTML 导出白屏修复。
  • pi-web 连续第 4 天零 commit,但 issue 侧照常进流——新开 5 个 issue + 2 个 PR,其中 #1393 明确要求把打包的 Pi SDK 从 1.2.0 升到 1.4.0(仓库已落后两个 minor 版本);#1395 报告长任务下子进程不回收导致整机卡顿。open issues 45 → 51。

各仓库详情

anomalyco/opencode

通用开源编码 agent,MIT,提供 TUI、桌面端、Web 与共享后台服务;2.x 走 npm @opencode/cli,1.x 走 opencode-ai| stars: 220625(上期 220209,+416)| open issues: 3673(上期 3639,+34)| 默认分支: dev | 最近 push: 2026-10-24T00:29:22Z | 主页: https://opencode.ai

近 45.7 天 release 重点:

  • v2.1.4(2026-10-23,dev 分支 CHANGELOG.md)— MCP 输入表单 + 后台压缩

    • Highlights:MCP elicitation 表单在工具调用中弹出而不是等到超时,Desktop 与 Web 端同样支持 text / number / choice / multiselect / boolean / URL 请求(#58184 / #58305);experimental.background_compaction 让摘要在接近压缩阈值时后台预生成(#57444 / #58294)
    • Core:compaction 请求超出 provider 限制时优先缩短较旧的 tool output 与交换轮次,保留更多有用历史(#58015);ChatGPT 登录的 context caps 变成可关闭的内置插件 opencode.provider.openai-context-caps(#58194);新增 opencode debug heap-dump [--server <url>](#58252)
    • 修复:会话没有自己的模型时改用所选 agent 的模型(#58355);压缩缓冲留给模型的额度为零时被忽略,识别出更多 provider context-overflow 错误(#58313 / #57982);只含 V2 字段的 agent 文件被正确按 V2 读取(#58218);ChatGPT 账号会被拒的 Codex 模型被隐藏(#58180);导入的 V1 全局会话归属到正确项目(#56322)
    • TUI / Desktop:实验性 TUI tools 选项让 agent 不抢键盘焦点地打开并输入会话终端(#57506);Desktop 新增「Capture heap snapshots」命令面板项,一次保存 app-window / main-process / server 三份快照并附 native-memory / GPU / page 诊断(#58259 / #58311)
    • SDK / Extensions:新增 connectClientMcp(),在实验性 client MCP WebSocket 传输上由 client 托管 MCP 工具(#57504 / #57505);MCP OAuth 登录在无关请求打到回调后仍继续等待(#58342);远程 MCP 请求不再被 Bun 的 fetch idle timeout 掐断(#58341);MCP server 不再在初始 reconciliation 时重复启动,并在 shutdown 时并行停止(#58349 / #58351);输出 schema 不是根对象的 MCP 工具也被接受(#58224)
    • 完整 release notes: https://github.com/anomalyco/opencode/blob/dev/CHANGELOG.md
  • v2.1.3(2026-10-22)— Bun 1.4.4 安全修复、@pierre/highlights 替换 Shiki、语音模型发现

  • v1.19.4(GitHub Release,2026-10-22)— 1.x 线同步 Bun 1.4.4 与根证书更新

(GitHub Release 侧最新仍是 v1.19.x;v2.x 的 release notes 只在默认分支 CHANGELOG.md 与 npm @opencode/cli 上,两条发布线并存。)

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • 8d95ef8 托管回退(中文:撤回在已连接的 OpenCode Console 上托管 GPT-Live) — chore(server): revert hosted GPT-Live on the connected OpenCode Console (#58461) (@Adam, 2026-10-23)
  • df6fb9a 目录(中文:把 realtime、embedding、reranking 模型排除出模型目录) — fix(core): exclude realtime, embedding, and reranking models from the catalog (#58458) (@Adam, 2026-10-23)
  • 24b5ed8 MCP(中文:重新注册 legacy MCP OAuth 回调) — fix(console): register legacy MCP OAuth callback (#58453) (@Filip, 2026-10-23)
  • 5098951 图像(中文:可移植图像形状,带宽高比与分辨率) — feat(ai): portable image shape with aspect and resolution (#58528) (@Aiden Cline, 2026-10-23)
  • 4386838 / 23cd310 / 861a2cf 图像(中文:分别接入 Cloudflare Workers AI Run API、Vercel AI Gateway、Alibaba 的图像生成) — feat(ai): add Cloudflare Workers AI image generation via the Run API (#58387) / feat(ai): add Vercel AI Gateway image generation (#58469) / feat(ai): add Alibaba image generation (#58383) (@Aiden Cline, 2026-10-23)
  • f9f463b 目录(中文:Go 限额表主推 Kimi K3.1 Pro,K3 移入展开列表) — feat(go): feature Kimi K3.1 Pro instead of Kimi K3 (#58513) (@opencode-agent[bot], 2026-10-23)
  • 33726e8 压缩(中文:忽略让模型没有余量的压缩缓冲) — fix(core): ignore a compaction buffer that leaves the model no room (#58313) (@Aiden Cline, 2026-10-23)
  • f523f77 压缩(中文:precompute_compaction 改名为 background_compaction 并补文档) — feat(core): rename precompute_compaction to background_compaction and document it (#58294) (@Aiden Cline, 2026-10-23)
  • 8ecd6ad / 7b14ad4 MCP(中文:初始 reconciliation 启动的 MCP server 不再重复,且 shutdown 时并行停止) — fix(core): don't duplicate MCP servers started during initial reconciliation (#58349) / fix(core): stop MCP servers in parallel on shutdown (#58351) (@Aiden Cline, 2026-10-23)
  • bc3a709 / 9624ff1 重构(中文:删除重复 helper 与未用 schema 导出,去重 session token 类型并收紧 provider 插件) — refactor(client,schema): remove duplicate helpers and unused schema exports (#57999) / refactor(core): deduplicate session token types and tighten provider plugins (#57994) (@Aiden Cline, 2026-10-23)

社区讨论 / 行业方向:

信号观察:

  • 托管平台作为特殊通道正在被收回:#58461 撤掉 Console 托管 GPT-Live,理由写得很直白——语音模型将变成 models.dev 上的普通 provider 模型,Console-only 通道不值得保留。发生在一个刚刚发生过 provider key 泄露事故的平台上,方向上与「把密钥和调用都留在本地 provider」一致。
  • 图像生成是本期 opencode 的第二条主线:单日 4 条 provider 接入 + 1 条形状抽象 + 2 条类型识别修复,全部出自同一作者。在文本 agent 之外,opencode 正在补齐多模态生成侧的 provider 广度。
  • 仓库活动强度依旧断层领先:24 小时内 60 个 commit、92 个 PR 合并、新开 125 个 issue + 164 个 PR;作者结构里 Aiden Cline 独占 20 个 commit(几乎全是 provider / AI 层),DS 独占 13 个(几乎全是 v2 文档清理),「provider 广度」与「文档重写」是两条互不干扰的并行线。
  • MCP 的四个独立故障被一次性打包修掉(表单不出现、OAuth 回调被打断、远程请求被 fetch timeout 掐断、server 重复启动)——MCP 已经从「能不能用」进入「边界条件对不对」的阶段。
  • open issues 从 3639 回到 3673(+34),一改上期「−852」的收敛形态;stars 增速降到 +416(上期 +2414)。

earendil-works/pi

AI agent 工具包:统一 LLM API、agent loop、TUI、编码 agent CLI;MIT,Pi 生态的核心 harness;本期新增 durable 存储与 Chord(SQLite 复制)子系统| stars: 117443(上期 117215,+228)| open issues: 369(上期 369,持平)| 默认分支: main | 最近 push: 2026-10-23T20:43:04Z | 主页: (仓库未填 homepage)

近 45.7 天 release 重点:

  • v1.4.0(2026-10-21)— 摘要不再有固定输出上限 + classifier 图像输入

    • New Features:codemode models.classify() 支持 images(TypeSafe Jev、Cloudflare Clef,覆盖 typesafe / cloudflare-workers-ai / OpenRouter);新增由 models.json schema 生成的 Models Configuration 参考页;compaction 与 branch summary 改用模型自身的 output limit(generateSummary() 不再使用 reserveTokens);codemode 并行脚本与进程内 subagent 改为排队等待空闲 worker(PI_CODEMODE_MAX_WORKERS 可调);新增 Rex 终端支持(OSC 8 超链接、truecolor、内联图片)
    • 完整 release notes: https://github.com/earendil-works/pi/releases/tag/v1.4.0
  • [Unreleased] — 本期新增条目(2026-10-23 合入)

    • Added:device-code 登录(如 GitHub Copilot)在按 Enter 时自动打开验证页并复制验证码,provider 可用 openBrowserOnConfirm: false / copyCodeOnConfirm: false 单独关闭(#9282 / #9301)
    • Changed:pi update 不再向 npm ci 传 --min-release-age=0(锁文件已 pin 版本,该标志无效且会被安全扫描器拦截)(#11262);/model 与 /scoped-models 在名称含有 ID 之外的信息时把模型名一起显示(#5916 / #11347)
    • Fixed:MCP sign-in 现在只接受 http: / https: 的授权端点与 OAuth 元数据 URL(此前恶意 MCP server 可提供 file: 或自定义协议 URL,pi 会把它交给平台 URL handler);ARM32 等无预编译产物的架构不再自动下载 x86-64 的 fd / rg,改为警告并建议用系统包管理器安装(#11209);/model 搜索排序不再让散落的匹配字母抢在真实匹配前面(#11220 / #11296);/resume 搜索不再匹配会话消息或 ID 内部的任意字符(#11220 / #11024);条目极多的会话 HTML 导出不再白屏(#11225 / #11293);HTML 导出补上 system message(system prompt 与 tools,以及 /reload 之后的 section 更新),pi --export 现在也包含 system prompt 与 tools(#11261 / #3464 / #11290);macOS 上中止 bash 命令不再误跑列表里的下一条命令(改为先停进程组再杀)(#11252 / #11289)
    • 完整 changelog: https://github.com/earendil-works/pi/blob/main/packages/coding-agent/CHANGELOG.md

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • a2fd25f / 5e106ab / 42cb822 Chord(中文:新增 Watchable 共同接口、NativeWatchable 进程内对应物,以及共享的 watch-handle 实现,Durable 直接复用) — feat(chord): Watchable, the common interface of values that can be watched / feat(chord): NativeWatchable, the in-process counterpart of Watchable / feat(chord): shared watch-handle implementation (Watch, NativeWatch); Durable uses it (@Mario Zechner, 2026-10-23)
  • 9ffd27c MCP 安全(中文:只接受 http 与 https 的 OAuth URL) — fix(mcp): accept only http and https OAuth URLs (@Armin Ronacher, 2026-10-23)
  • a7b94a0 / 7314819 Gemini(中文:Gemini tool schema 中保留字面量 const 数据,或把 const 作为 enum 发送) — fix(ai): preserve literal data in Gemini tool schemas / fix(ai): send const as enum in Gemini tool schemas (@Petr Houška / triagent, 2026-10-23)
  • f3fa8bd 计费(中文:伪造的 cache write 不再计入 input token) — fix(ai): do not count faux cache writes as input tokens (#11318) (@triagent, 2026-10-23)
  • 14c8118 协议(中文:pi-messages terminal 事件上带上 responseModel) — feat(ai): carry responseModel on pi-messages terminal events (#11265) (@Vegard Stikbakke, 2026-10-23)
  • 606af86 交互(中文:模型选择器在模型名能提供额外信息时显示出来) — feat(coding-agent): show model names in model selectors when they add information (#11347) (@Petr Houška, 2026-10-23)
  • c8ec752 平台(中文:不受支持的架构上跳过 fd / rg 下载) — fix(coding-agent): skip fd/rg downloads on unsupported architectures (#11343) (@Petr Houška, 2026-10-23)
  • 36be9c6 编码(中文:pi.exec 输出按 UTF-8 块边界解码) — fix(coding-agent): decode pi.exec output across UTF-8 chunk boundaries (#11326) (@robopipi[bot], 2026-10-23)
  • 6dfb546 启动(中文:配置的某个 package 安装失败时仍能启动) — fix(coding-agent): start when a configured package fails to install (#11304) (@Lincoln504, 2026-10-23)
  • 136b87e 流程(中文:任何分支上以 main 为目标的改动都必须写 changelog 条目) — docs: require changelog entries for work targeting main from any branch (#11352) (@Petr Houška, 2026-10-23)

社区讨论 / 行业方向:

信号观察:

  • Chord 的抽象在从「复制 SQLite」扩到「可被观察的值」:Watchable / NativeWatchable / 共享 watch-handle 三条 commit 一天内落地,Durable 直接复用。上期报告判断「方向已确定、API 未定」,本期的形状是 API 开始被抽成通用接口(watchable / durable / chord 三层)。
  • 安全修复的性质在变:上期的修复多是「上游契约变化后本地路径未同步」,本期最重的一条是 MCP sign-in 的 URL scheme 白名单——pi 把自己当成 URL scheme 的信任边界在守,而不是被动转发。
  • 发布纪律被写成制度:docs: require changelog entries for work targeting main from any branch(#11352)加上当天补齐 7 条历史 changelog 条目(#9301 / #11289 / #11290 / #11293 / #11296 / #11347),说明 1.4.0 之后的 30 个 commit 存在 changelog 缺口,团队正在补账。
  • 本期 30 个 commit、17 个 PR 合并、22 个新 PR、27 个新 issue,open issues 与上期持平(369)——pi 的社区负载稳定,但文档欠账正在被显式偿还。
  • stars +228(上期 +795),增速继续放缓。

agegr/pi-web

pi coding agent 的 Web UI| stars: 7739(上期 7694,+45)| open issues: 51(上期 45,+6)| 默认分支: main | 最近 push: 2026-10-20T16:53:57Z | 主页: (仓库未填 homepage)

近 45.7 天 release 重点:

窗口期内无 release。(最新为 v0.12.2,2026-10-15;此后连续 9 天未发版。)

其他重要 commits / PRs(按重要性挑选 5–10 条):

窗口期内无 commit(最近一次 push 2026-10-20)。新流入的 issue / PR 全部处于开放状态:

  • #1393 依赖升级(中文:把打包的 Pi SDK 从 1.2.0 更新到当前稳定版 1.4.0) — Update bundled Pi SDK from 1.2.0 to current stable (1.4.0) (@jmvl, 2026-10-22,open)
  • #1395 稳定性(中文:长时间运行导致启动系统极度卡顿——Agent 任务结束时没有回收子进程) — 长时间运行导致启动系统极度卡顿 (@daomingzi, 2026-10-23,open)
  • #1401 文件(中文:点击 ZIP 链接应直接下载而不是以乱码文本预览) — Download unsupported binary files instead of opening them as text previews (@tammelin, 2026-10-23,open)
  • #1400 会话(中文:折叠的项目对等待用户输入的会话一直显示 spinner) — Collapsed projects show a running spinner for sessions awaiting user input (@tammelin, 2026-10-23,open)
  • #1398 成本(中文:简体中文下以人民币显示成本) — feat(i18n): show costs in yuan for Simplified Chinese (@dingxiaobo, 2026-10-23,open)
  • #1396 聊天(中文:显示 shell 命令的原文而不是转义后的 JSON) — fix(chat): show a shell command's text instead of escaped JSON (@sirenkovladd, 2026-10-23,open)
  • #1394 平台(中文:Windows 下让 Settings 选择新终端用 cmd 还是 PowerShell) — [Windows] Let Settings choose which shell a new terminal starts (cmd, PowerShell...) (@gaoxingxs, 2026-10-23,open)
  • #1391 / #1392 会话与 Mermaid(中文:选择给会话命名的模型;Mermaid 查看器支持以指针为中心缩放与拖拽平移) — feat(chat): choose the model that names a session / feat(mermaid): zoom the viewer at the pointer and pan by dragging (@escapeWu, 2026-10-22,open)

社区讨论 / 行业方向:

信号观察:

  • SDK 版本落后已成为公开 issue:#1393 明确写明仓库的 package.json 把 7 个 @earendil-works 包精确 pin 在 1.2.0,而上游已发到 1.4.0——落后两个 minor 版本、跨越了 v1.4.0 的 compaction 上限改动,这意味着 pi-web 侧的 compaction 行为与 pi 本体并不一致。
  • 「长时运行」这个卖点背后是资源回收缺口:#1395 描述一百多个视频的子 Agent 任务后机器极度卡顿,根因是任务结束时子进程未回收。这是把 harness 当长时服务用时最先撞到的墙,而修复至今没有进仓库。
  • 供给侧完全停滞、需求侧照常进流:24 小时内 0 commit、0 PR 合并,但新开 5 个 issue + 2 个 PR,且其中 4 个 issue 直接指向结构性缺口(SDK 版本、子进程回收、二进制文件预览、Windows shell 选择)而不是样式细节。
  • open issues 45 → 51(+6),已从上期的 +17 放缓但仍在单向累积;stars +45,是本清单中最低。
  • 被替代风险上升:上游不动而 npm 上同类包月下载量达数万,fork 与再发布正在替代上游成为分发路径。

vectorize-io/hindsight

Agent 长期记忆系统(Agent Memory That Learns),MIT,四类隔离记忆网络 + retain/recall/reflect/consolidate 循环;本期把「每次模型调用」变成可插拔、可审计的扩展点| stars: 53137(上期 52748,+389)| open issues: 127(上期 150,−23)| 默认分支: main | 最近 push: 2026-10-23T19:22:09Z | 主页: https://hindsight.vectorize.io/

近 45.7 天 release 重点:

  • v1.1.0(2026-10-21)— 可见性、可控性与一轮可靠性修复
    • 可见性:逐文档的变更历史;observation scope 支持 tag glob 与 bank 默认值;知识页可下载
    • 可插拔:新增 LLM request extension;新增 ModelCallExtension(#5936),把每次模型调用的输入与输出都交给扩展
    • 新 provider:decision-model 支持 Cloudflare Clef 与 OpenAI Decisions API(#5613);LLM / embedding / reranker 新增 provider
    • 排序:recall 默认优先返回 observations(#5617);配置了 decision model 时由其参与排序(#5284)
    • 可靠性:reflect 的「answer once」修复(#5832);对拒绝 forced tool_choice 的模型也能工作(#5917);Anthropic 遇 refusal stop_reason 时快速失败(#5616);retain 遇到非 JSON 回复即失败(#5615);LiteLLM 按 HTTP 状态码而非消息关键字重试(#5604)
    • 其他:control plane 用自己的 User-Agent 标识 dataplane 请求(#5536);MCP call log 始终记录破坏性操作并写明工具名;OpenClaw 集成让 operator 可让 cron / heartbeat / subagent 会话使用记忆(#5915)
    • 完整 release notes: https://github.com/vectorize-io/hindsight/releases/tag/v1.1.0

(窗口期内无新 release;coding-agents v0.8.2、Obsidian 插件 v0.4.0、OpenClaw 插件 v1.1.0/v1.2.0 为仓库内子包 release,非 GitHub Release 对象。)

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • 64b7520 缓存(中文:把 memory block 注入 user message 而不是 system prompt) — fix(coding-agents): inject the memory block into the user message, not the system prompt (#6053) (@Nicolò Boschi, 2026-10-23)
  • 2004c4f 审计(中文:operation runs——记录每次操作的墙钟时间与其去向) — feat(extensions): operation runs - each operation's wall time and where it went (#6048) (@Nicolò Boschi, 2026-10-23)
  • 571664b reflect(中文:按 token 预算返回整页知识页,而不是一页不到 4k) — fix(reflect): return whole knowledge pages up to a token budget, not one page under 4k (#5787) (#6009) (@Nicolò Boschi, 2026-10-23)
  • 77dae90 会话(中文:跨 bank 迁移与 fork 时,一个 session 每轮只保存一次) — fix(coding-agents): a session saves each turn once, across bank moves and forks (#6052) (@Nicolò Boschi, 2026-10-23)
  • 45f9e2f reflect(中文:搜索查询改写不再让 reflect 以空答案收尾) — fix(reflect): the search-query rewrite never ends reflect with an empty answer (#6022) (@Nicolò Boschi, 2026-10-23)
  • 9244d6c / 5168f72 consolidation(中文:丢弃文本为空的 create/update 动作;不再把每条来源记忆的上下文一起发送) — fix(consolidation): drop create/update actions with empty text (#6024) / fix(consolidation): stop sending each source memory's context (#5996) (#6018) (@Nicolò Boschi, 2026-10-23)
  • f80b209 生命周期(中文:被跳过的重试以 superseded_by 结束为 cancelled,而不是 failed) — fix(consolidation): a skipped retry ends cancelled with superseded_by, not failed (#5434) (#5990) (@Nicolò Boschi, 2026-10-23)
  • 35451e5 架构(中文:引擎不再 import API 层,解开循环依赖) — refactor(engine): stop the engine importing the API layer and untangle import cycles (#5993) (@Nicolò Boschi, 2026-10-23)
  • b4a0da1 平台(中文:codebase survey 能在 Windows 上启动,且不再无限重试) — fix(coding-agents): launch the codebase survey on Windows and stop retrying forever (#6054) (@Nicolò Boschi, 2026-10-23)
  • 661dc9b / c454985 OpenClaw(中文:发布 v1.2.0;把 Hindsight 的知识库工具加入 agent 工具集) — release(openclaw): v1.2.0 / feat(openclaw): add Hindsight's knowledge-base tools to the agent tools (#5635) (#6004) (@Nicolò Boschi, 2026-10-23)

社区讨论 / 行业方向:

信号观察:

  • prompt cache 前缀稳定性成为一等设计约束:#6053 的理由写得很明确——memory block 每轮都在变(recall 结果、第 1 轮的知识前言、页面列表刷新),放在 system prompt 里每次请求都打破缓存前缀;移到 user message 后同一轮内逐字节重复。这与 pi v1.4.0 的「摘要按模型 output limit 定尺」、opencode 的「压缩缓冲留不出额度就忽略」是同一个成本问题的三个切面。
  • 可观测性再往下一层:ModelCallExtension 之后,operation runs(#6048)把「一次 retain / recall / reflect / consolidation 花了多久、调用了哪些模型、访问了多少次 store」整体变成可导出的记录。上期报告说记忆系统的可调节性正从「换模型」转向「按调用拦截」,本期的补齐是「按操作审计」。
  • 并发写入被正面处理:77dae90 修掉「跨 bank 迁移与 fork 时同一轮被保存多次」,官方博客同日发出《Thirty Agents, One Memory》把 fan-out 幂等性摆到台面——产品文档与代码修复在同一周对齐。
  • 依赖升级噪声仍然占多数:51 个 commit 中约 20 个是各集成目录的 chore(deps): bump opentelemetry / vitest / pypdf 批量锁文件更新,功能性开发被维护噪声掩盖,这是连续第三期的同一结构。
  • star 增速 +389(上期 +1085),继续回落;open issues 从 150 降到 127(−23),是本清单中唯一 issue 存量明显下降的仓库。

agentclientprotocol/agent-client-protocol

连接任意编辑器与任意 agent 的协议(LSP 之于编辑器之于编程 agent)| stars: 4492(上期 4484,+8)| open issues: 35(上期 35,持平)| 默认分支: main | 最近 push: 2026-10-23T22:14:18Z | 主页: https://agentclientprotocol.com

近 45.7 天 release 重点:

  • v1.12.0(Rust Crate,2026-10-16)+ Schema v1.26.0 + Schema v2.0.0-alpha.9(同批发布)
    • (unstable-v2) 按顶层 key 幂等 upsert _meta(#2372);定义 foreground 状态转换(#2411);澄清 replay ID 与不支持的 cursor(#2398);对齐 prompt 取消语义(#2390 / #2385)
    • (unstable) 新增 client system prompt schema(#2361);移除 next edit suggestions(#2266)
    • (schema) 对齐 v2 实验特性兼容性(#2397);列出 v2 在 AgentCapabilities.session 上的完整 session baseline(#2358);v2 foreground work 可在无 prompt 时启动(#2357)
    • 完整 release notes: https://github.com/agentclientprotocol/agent-client-protocol/releases/tag/v1.12.0

(窗口期内无新 release;v1.12.0 / Schema v1.26.0 / v2.0.0-alpha.9 均在 2026-10-16 之后无后续。)

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • 788a916 协议(中文:让 session message 的收发两侧视图互相指名,并把消息身份从 chunk 上剥离) — feat(unstable): link session message views and keep identity off chunks (#2465) (@Ben Brandt, 2026-10-23)
  • 097a8a8 规范(中文:描述子代理的只读配置——复用 config_option_update 发送完整快照,配置变更留给未来的显式 per-child capability) — docs(rfd): describe read-only subagent configuration (#2468) (@Ben Brandt, 2026-10-23)
  • c100a28 规范(中文:说明 tool 的文本也可以像 message 文本一样流式) — docs(unstable-v2): note that tool text can stream like message text (#2469) (@Ben Brandt, 2026-10-23)
  • 1a628b9 CI(中文:构建与 registry 同步改用最新的已打补丁的 Node LTS) — ci: use latest patched Node LTS for build and registry sync (#2464) (@Ben Brandt, 2026-10-23)
  • cfb897f / 71c5f8d / 59f1852 / 1b7caad / bd8f1af registry(中文:registry agent 列表同步) — docs: update registry agents (#2470 / #2467 / #2466 / #2463 / #2462) (@acp-release-bot[bot], 2026-10-23)

社区讨论 / 行业方向:

信号观察:

  • 上期「协议本体零改动」的判断被推翻:本期 9 个 commit 里有 4 个是协议与规范本体改动,其中两条直接落在 docs/rfds/subagents.mdx。子代理委派不再停留在 RFD 讨论——#2465 把跨 session 消息的双视图关联写进了 unstable schema,#2468 定义了只读配置快照。
  • 子代理方案的重心是「可观察」而不是「可控制」:#2468 明确不新增协议字段、方法或 capability,只用已有的 config_option_update 复用 child’s session ID 发送完整快照,并要求「不得从父会话推断配置」;配置变更留给未来的显式 per-child capability。这是典型先把「看得见」做出来、「管得住」留到下一轮的协议节奏。
  • RFD 从提案变成在维护的文档:subagents.mdx 自 09-30 起有 6 次提交(09-30 初版 → 10-02 prompt 插入失败原因 → 10-06 后台子代理在 cancel 后的存活策略 → 10-16 _meta 幂等 → 10-23 两条),文件规模已达 72 KB,是 registry 目录里内容最厚的一份。
  • 生态侧同步节奏不变:5 个 commit 是 registry agent 列表更新,registry 仍是小时级刷新而协议按周推进——但本期协议侧终于追上来一次。
  • 增长曲线依然平缓:stars +8/期、open issues 持平、新流入(含 PR)9 条,是本清单中增速最低、生态最稳定的仓库。

yxc023/yxc023.github.io

个人博客站(Astro),同时是本报告的发布目标仓库| stars: 1 | open issues: 27 | 默认分支: master | 最近 push: 2026-10-23T00:36:08Z | 主页: (仓库未填 homepage)

近 45.7 天 release 重点:

窗口期内无 release。

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • a157271 自动化(中文:自动同步 daily-research 2026-10-23 的报告) — auto(reports): 同步 daily-research 2026-10-23 (@杨晓辰(小德) & 再探再报, 2026-10-23)

社区讨论 / 行业方向:

窗口期内未检索到公开讨论。

信号观察:

  • 仓库唯一的 commit 是上一期报告的自动同步,star 1、open issues 27 —— 27 个 issue 是历次自动同步留下的,不是待办信号。
  • 本仓库的角色是发布目标而非研究对象,除自动同步外无独立开发活动。

跨项目观察

  1. 「MCP 可靠性」在本周成为跨仓库的共同故障面,且四条仓库各修各的层。 opencode 一天内修掉 MCP 的四个独立问题:elicitation 表单从不出现(#58184 / #58305)、OAuth 登录被无关回调请求打断(#58342)、远程 MCP 请求被 Bun 的 fetch idle timeout 掐断(#58341)、初始 reconciliation 重复启动 MCP server(#58349 / #58351);pi 在同一窗口把 MCP sign-in 的 OAuth URL 限制为 http: / https:(此前可传 file: 或自定义协议);hindsight 则修掉「MCP 被禁用时仍加载 fastmcp」(#6001)。MCP 已经过了「能不能用」的阶段,进入「边界条件对不对」的阶段——而这四个 bug 分属协议、传输层、URL 安全与生命周期,没有一个能在另一个仓库里找到同类修复。

  2. prompt cache 的前缀稳定性被三个仓库同时当作一等约束处理,但路径各不相同。 hindsight 把每轮都在变的 memory block 从 system prompt 挪到 user message(#6053),理由写明是「放在 system prompt 里每次请求都破坏缓存前缀」;pi v1.4.0 让 compaction 与 branch summary 改用模型自身的 output limit(reserveTokens 只决定何时触发);opencode 让「留给模型的额度为零」的压缩缓冲被忽略,并优先缩短旧 tool output(#58015)。共同点是同一个成本问题:上游把 reasoning 吃掉的预算算进固定上限,而本地又自己加了一层固定结构。

  3. 托管平台正在被收回为「普通 provider」,方向由 opencode 单方面给出但影响面超出它自己。 opencode 在 24 小时内两件事连着做:#58458 把 realtime / embedding / reranking 模型从目录里剔除、#58461 撤回 Console 托管的 GPT-Live,理由是「语音模型将成为 models.dev 上的普通 provider 模型,Console-only 通道不值得保留」。背景是 10-17 披露的 Console 泄露事件(约 1.4% Console 用户的 provider key 可能已暴露,且从 Console 删除 key 不等于吊销)。 同一时间 ACP 的 registry 与 RFD 侧在补「谁来托管、谁能看到」的规范缺口,hindsight 则在给「操作级别」的模型与 store 调用做审计——三个仓库从不同角度收敛到「中间人持有密钥」这同一件事。

  4. 子代理从「文档提案」进入「协议改动」,这是 ACP 与 pi 的方向性分岔。 ACP 的 subagents.mdx 在本期被改了两处并写进 unstable schema:跨 session 消息的双视图关联(#2465)与只读配置快照(#2468),作者栏已是 Vadim Briliantov 与 Ben Brandt 两位核心维护者,文件已 72 KB;pi 侧的对应物不是协议而是内部抽象——Watchable / NativeWatchable / 共享 watch-handle(Chord 层)与 Durable 的复用。一个在把子代理标准化进 wire protocol,一个在把「可被观察的值」标准化进存储层;两边都在解决「父子会话之间的状态如何被第三方看见」,但落点一个在协议、一个在实现。

  5. 「长时运行」的宣称正在遇到资源回收与版本滞后两类现实检验,且都落在 pi-web 上。 pi-web 的 #1395 报告子进程不回收导致整机卡顿,#1401 报告二进制文件被当文本预览;更结构性的是 #1393——仓库把 7 个 @earendil-works 包精确 pin 在 1.2.0,而上游已到 1.4.0,跨过了 v1.4.0 那个改写 compaction 上限的版本。hindsight 同期则在修「长时运行的记忆系统如何不被并发写坏」(#6052、官方博客《Thirty Agents, One Memory》)。同样是长时运行,harness 侧在补一致性,界面侧掉队。

  6. 仓库活跃度的差距在本期继续扩大,但「谁在写什么」呈现两种清晰的分工。 opencode 24 小时内 60 commit / 92 个 PR 合并,是唯一有新 release 的仓库;pi 30 commit / 17 个 PR 合并且无 release;hindsight 51 commit 但其中约 20 个是依赖锁文件升级;ACP 9 commit 中 5 个是 registry 同步;pi-web 0 commit。值得注意的是 opencode 内部的作者分工已经稳定成型——一个作者独占 provider 与图像生成广度,另一个独占 v2 文档重写,两者互不干扰,这比「一个人一天写 20 个 commit」更难被单点接管打断。

元信息

  • 报告生成时间: 2026-10-24T00:30:15Z
  • 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告 reports/latest.md 的 基准时间: 字段,自 2026-09-08 起连续 13 期未变)
  • 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-24T00:30:15Z(约 45.7 天);本期新增内容全部落在 2026-10-23T00:30:05Z 之后的约 24 小时
  • 数据源: GitHub API(gh CLI)+ mmx web search
  • API rate limit 剩余: 4889 / 5000(core,抓取完成后查询)
  • 抓取结果: 6 / 6 仓库 × 4 endpoint 全部成功(opencode 的 Discussions endpoint 返回非列表,已跳过);commits 列表按 100/页分页至多 15 页,窗口增量按分页统计(opencode 60、hindsight 51、pi 30、ACP 9、pi-web 0、blog 1);opencode V2 release notes 取自默认分支 CHANGELOG.md(v2.1.4,2026-10-23),其 GitHub Release 仍为 v1.19.x,两条发布线并存;hindsight 仓库无根级 CHANGELOG.md,release notes 取自 GitHub Release v1.1.0 正文与官方博客;OpenClaw 插件 v1.2.0 等为 hindsight 仓库内子包 release,非 GitHub Release 对象

评论