2026 2026年10月23日 28 min · 8.1k chars by yxc023

GitHub 调研周报 2026-10-23

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

2026-10-23 GitHub 调研周报

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

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

本期速览

  • anomalyco/opencode: v2.1 是一次「重写契约」的发布,不是小版本——providerState / providerResultState / state 三套名字统一为 native,session.compacted 事件被移除,Credential.Key.configuration 迁到 metadata,provider compaction 窗口从 providerContext 移到 native.messages;官方声明「不需要数据库迁移,旧会话/凭证仍可读」;v2.1.0(#57260)同时带来 Windows x64/ARM64 持久 PTY、TUI todowrite 任务列表、以及突破 Bun 5 分钟 fetch 死线的长时 TUI 命令。
  • earendil-works/pi: v1.4.0 的主线是「摘要不再有固定输出上限」——compaction 与 branch summary 改用模型自身的 output limit,generateSummary() 的 reserveTokens 参数被忽略;同时新增 classifier 的图像输入(Jev / Clef / Clef Omni / Jev 1.14)、从 models.json schema 生成的 Models Configuration 参考页、以及 codemode worker 排队而非直接失败。
  • vectorize-io/hindsight: v1.1.0 把「谁调了哪个模型」变成可审计对象——ModelCallExtension(#5936)把每次模型调用的输入与输出都交给扩展,decision model 开始参与 recall 排序(#5284);上一期报告标记的「embedding / rerank 从不计量」问题,本期由 feat(llm-trace)(#5835)直接回应。
  • 跨仓库的同一件事:模型目录生命周期被三家同时当作一等公民维护——opencode 隐藏 ChatGPT 账号不可用的 Codex 模型(#58180)、pi 移除上游下架模型与 ChatGPT 账号被拒的 Codex 模型(#11173)、ACP 在 v1.12.0 里「只把已公告下架的模型列为仍不可用」(530015d)。
  • 跨仓库的同一件事:compaction 的输出上限在同一天被两个 harness 改掉——pi v1.4.0「summaries without a fixed output cap」与 opencode #57564「compaction summaries use the same model output limit」,两者相隔不到 24 小时落地;上期报告把 compaction 列为三个仓库共同故障面,本期是第一次有实质修复。
  • 成本可见性连续第二期被推动——pi 新增 totalFromProvider 标志并改用 OpenRouter 上报的总成本(#11178 / #10286);hindsight 把 embedding、rerank、decision-model 调用写入请求历史(#5835)。
  • opencode 的仓库活动强度首次明显高于其它仓库:3 天内 158 个 commit、97 个 PR 关闭;其中 10-21~10-22 出现一波由单一作者(rekram1-node)主导的 ~30 个 refactor(*) commit,集中清理重复类型转换与重复解码。同时 open issues 从 4491 掉到 3639(−852),新 issue(含 PR)流入 100。
  • ACP 本期 23 个 commit 全部是 registry agent 列表更新,协议本体自 v1.12.0(2026-10-16)以来未发新 release;spec 侧唯一新增的实质讨论是 RFD 文档「Subagent Discovery, Delegation and Child Sessions」(#855,未合并)。
  • pi-web 连续第 3 天无 release(最新 v0.12.2 / 10-15),本期 14 个 commit、18 个 PR 全部是修 bug 与移动端布局,open issues 从 28 涨到 45(+17)——界面侧仍在掉队。

各仓库详情

anomalyco/opencode

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

近 44.6 天 release 重点:

  • v2.1.0(2026-10-20,V2 CHANGELOG)— 破坏性 minor 版本,重写 SDK / HTTP 消息事件 / 插件契约

    • Breaking:provider replay 数据统一读写 native(原 state / providerState / resultState);tool part 合并为 tool.native + tool.state;Credential.Key.configuration 移除,setup 答案改放 metadata;summary compaction 改用 metadata.keepID 引用被保留消息而非复制 recent 文本;provider compaction 窗口迁到 native.messages;session.compacted 事件从公共事件面移除
    • 新增 Windows x64 / ARM64 持久 PTY(#56245)、experimental.todo 开关下的 todowrite 工具与 TUI 任务列表(#56947)、会话归档恢复与已保存权限可编辑(#53759 / #56659)、插件分页 ctx.session.list(#56264)
    • TUI 的 plugin 命令 / shell 调用突破 Bun 5 分钟 fetch 死线(#55149)
    • 完整 release notes: https://github.com/anomalyco/opencode/blob/dev/CHANGELOG.md
  • v2.1.2(2026-10-21)— 免费额度用尽时的可恢复体验

    • TUI 与 Desktop 显示免费额度重置时间、恢复已提交的 prompt、提供升级或换模型入口(#57466 / #57467 / #57471)
    • 新增 OPENCODE_DISABLE_FREE_MODELS 隐藏零成本模型(#57478);新增 experimental.location_idle_timeout 控制空闲 location 卸载(#57476)
    • 安装器在缺 ~/.zshrc / config.fish 时自动创建并写入 PATH(#57348)
  • v2.1.3(2026-10-22)

    • 升级内置 Bun 到 1.4.4(含 Brotli / TLS / HTTP/2 / HTTP/3 / WebSocket / fetch 安全修复,根证书更新到 NSS 3.131.1)(#58087)
    • Desktop 代码高亮从 Shiki 换成 @pierre/highlights,大文件与 diff 的高亮耗时与内存下降(#57937)
    • SDK 新增 client.voice.models() 列出实验性语音模型与可用传输;已连接的 OpenCode Console workspace 可托管 GPT-Live 会话(#57194 / #57735)
  • v1.19.4(GitHub Release,2026-10-22)— 1.x 线同步升级 Bun 到 1.4.4 与根证书更新

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

  • acdcdb8 破坏性重构(中文:v2.1 契约重写落地) — refactor: v2.1 minor breaking changes (#57260) (@rekram1-node, 2026-10-20)
  • 6a5973d 压缩(中文:后台生成压缩摘要) — feat(core): add experimental background compaction summaries (#57444) (@Filip, 2026-10-22)
  • 889abb4 修复(中文:MCP elicitation 表单从不出现) — fix(core): fix MCP elicitation forms never appearing (#58184) (@rekram1-node, 2026-10-22)
  • 4535146 / 0030a70 / 0b93f0b 客户端 MCP(中文:新增 client-hosted MCP 工具的 connectClientMcp helper、来自入站 client socket 的 MCP transport、并把 open_terminal 暴露给 client MCP,均标记 experimental) — feat(client): add connectClientMcp helper for client-hosted MCP tools (#57504) (@James Long, 2026-10-22)
  • c41c3a0 修复(中文:MCP 工具的 output schema 不是根对象时被拒) — fix(core): accept MCP tools whose output schema is not a root object (#58224) (@rekram1-node, 2026-10-22)
  • cdf1c20 修复(中文:隐藏 ChatGPT 账号会被拒绝的 Codex 模型) — fix(core): hide Codex models ChatGPT accounts reject (#58180) (@rekram1-node, 2026-10-22)
  • 09a1db3 修复(中文:识别更多 context overflow 错误) — fix(ai): recognize more context overflow errors (#57982) (@rekram1-node, 2026-10-22)
  • 6709f56 修复(中文:压缩摘要使用与普通轮次相同的输出上限) — fix(core): give compaction summaries the same output limit as normal turns (#57564) (@rekram1-node, 2026-10-21)
  • 80b8762 修复(中文:跨 provider session 错误转发 retryAfterMs) — fix(core): forward retryAfterMs across provider session errors (#57589) (@rekram1-node, 2026-10-21)
  • 3b593dd 修复(中文:Code Mode 异步 job 逐个跑完,不再在语句中间交错丢写) — fix(codemode): run each job to completion (#54276) (@Rhys Sullivan, 2026-10-20)
  • 870ab9d 修复(中文:配置的 provider baseURL 覆盖目录模型端点) — fix(core): let configured provider baseURL override catalog model endpoints (#57810) (@opencode-agent[bot], 2026-10-21)
  • 6102079 / 199ad46 桌面诊断(中文:新增 opencode debug heap-dump 子命令,并把 app 与 server 的 heap snapshot 收进同一目录) — feat(cli): add debug heap-dump command (#58252) (@Luke Parker, 2026-10-22)
  • 5a36ee7 目录刷新(中文:models.dev 目录刷新改为 server-wide 广播) — fix(core): broadcast models.dev catalog refreshes server-wide (#57148) (@Dax, 2026-10-20)

社区讨论 / 行业方向:

信号观察:

  • 3 天 158 个 commit、97 个 PR 关闭,是本清单中强度最高的一周;其中约 30 个 refactor(*) 由同一作者在 48 小时内完成,主题是「消除重复类型转换与重复解码」,是典型的类型系统收紧型重构而非功能开发。
  • open issues −852 而新流入(含 PR)100 条以上,说明 10 月下旬存在一次大规模 issue 关闭/整理;同期 PR 里出现 closed(未合并) 的删除性条目(内置 scout subagent 被移除、Claude Code 兼容相关文档清理)。
  • 仓库的 GitHub Release(v1.19.x)与 V2 发布线(v2.1.x,npm @opencode/cli)并行存在且版本号互不对应,V2 的 release notes 只在 CHANGELOG.md;外部跟踪站普遍提到这一点。
  • 商业化动作进入 SDK:client.voice.models() / client.voice.session() 与 OpenCode Console 托管 GPT-Live,是首个把「语音」写进公开 SDK 契约的版本。
  • 模型目录同步从「定时刷新文件」升级为「server-wide 广播 + 按 provider 包归一化后构建变体」,配合 OPENCODE_DISABLE_FREE_MODELS 一起说明目录正在变成运行时一等状态。

earendil-works/pi

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

近 44.6 天 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、内联图片)
    • Changed:provider attribution header 改由 pi-ai 的 client identity 统一发出(扩展的 before_provider_headers 不再看到 OpenRouter / NVIDIA NIM / OpenCode attribution header);GitHub Copilot 默认模型因 gpt-5.4 下架改为 gpt-6.1-sol;NVIDIA 默认改为 nvidia/nemotron-3.5-super-vl-120b-a12b;Xiaomi 默认改为 mimo-v2.6-pro;Grok 4.3 / 4.5 开放 xhigh thinking level;ChatGPT Business 工作区用量上限错误不再重试,改为提示联系管理员
    • Fixed:compaction / branch summary 因 reasoning 吃掉固定输出上限而报 “generation hit the token cap”(#9512 / #9075);mcp.json 与 managed-install.json 带 UTF-8 BOM 时解析失败;恢复会话时截断的 tool call 被丢弃但 tool result 保留,导致后续请求全被 provider 拒绝(#11227);grep 工具因 RIPGREP_CONFIG_PATH 把正则搜索静默变成字面量匹配(#11203);whitespace-only tool output 让 OpenAI / Google 请求 400;自动重试因请求 ID 或字节数里的数字而误判为可重试(#10920);OpenAI Responses 在延迟加载工具后丢失 prompt cache(#10940);Cloudflare Workers AI classifier 定价纠正——Clef Flash $0.038 / Jev $0.042 每百万输入 token,Jev 并非免费
    • 完整 release notes: https://github.com/earendil-works/pi/releases/tag/v1.4.0
  • [Unreleased] — pi update 不再向 npm ci 传 --min-release-age=0(锁文件已 pin 版本,该标志无效且会被安全扫描器拦截)(#11262)

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

  • 48c8f32 Chord(中文:SQLite 独占操作与可复制连接包装器) — feat(chord): exclusive SQLite operations and a replicated connection wrapper (@Armin Ronacher, 2026-10-20)
  • 4759f09 Chord(中文:SQLite 复制的 WAL reader、page 校验和与 segment 容器) — feat(chord): WAL reader, page checksums and segment container for SQLite replication (@Armin Ronacher, 2026-10-21)
  • 92ab536 Durable(中文:commit 内的 adopt 回调、Chord 中的 watch 类型、显式 watch 退役) — feat: Durable storage adopt callback inside the commit, watch types in Chord, explicit watch retirement (@Mario Zechner, 2026-10-22)
  • be14d97 Durable(中文:以只读方式打开一个 Harness) — feat(durable): open a Harness read-only (@Armin Ronacher, 2026-10-22)
  • 16f5f0a Durable(中文:新增基于 IndexedDB 的浏览器存储 IndexedDbStorage) — feat(durable): IndexedDbStorage, a browser storage backed by IndexedDB (@Mario Zechner, 2026-10-21)
  • 4c25119 → cae9fd2 Durable(中文:把存储复制为 commit log 的实现先合入后被回滚) — feat(durable): replicate storages as a commit log / Revert "feat(durable): replicate storages as a commit log" (@Armin Ronacher, 2026-10-21)
  • adc5fa9 契约(中文:把 client identity 与 provider attribution 下沉进 pi-ai) — feat(ai,agent,coding-agent): move client identity and provider attribution into pi-ai (@Mario Zechner, 2026-10-21)
  • 7c22a93 / cae8d69 成本(中文:usage cost 新增 totalFromProvider 标志,并改用 OpenRouter 上报的总成本) — feat(ai): add totalFromProvider flag to usage cost (#11178) / fix(ai): use OpenRouter-reported total cost (#10286) (@Vegard Stikbakke, 2026-10-22)
  • e5fe977 目录(中文:移除上游已下架的模型) — fix(ai): drop models retired upstream (@David Brailovsky, 2026-10-21)
  • 530015d 目录(中文:只把已公告下架的模型列为仍不可用) — fix(ai): only list announced removals as still unavailable (@Armin Ronacher, 2026-10-20)
  • fdce48e 目录(中文:移除 ChatGPT 账号被拒的 Codex 模型) — fix(ai): drop Codex models rejected for ChatGPT accounts (#11173) (@Lucas Meijer, 2026-10-20)
  • 0272608 恢复(中文:recovery 不再漏掉带截断 tool call 的 tool result) — fix(coding-agent): recovery omits tool results with the truncated tool call (@Petr Houška, 2026-10-21)
  • 3884756 交互(中文:并发扩展对话框改为堆叠而不是互相替换) — fix(coding-agent): stack concurrent extension dialogs instead of replacing them (@Mario Zechner, 2026-10-20)
  • bdd9f03 扩展(中文:分支记录 loadout 之后才注册的扩展工具也能激活) — fix(coding-agent): activate extension tools registered after the branch recorded its loadout (@David Brailovsky, 2026-10-21)

社区讨论 / 行业方向:

信号观察:

  • 本期最大的结构性动作不在 release 里,而在 commit 里:Armin Ronacher 与 Mario Zechner 同时在推 durable 存储 + Chord(SQLite 复制)——含 WAL reader、page 校验和、segment 容器、只读 Harness、IndexedDB 浏览器存储。这是把「会话状态」从进程内文件推向可复制、可校验、可跨端的持久层,方向上与 ACP v2 的 replay ID 语义、opencode 的 native 重放数据是同一类问题。
  • 其中「把存储复制为 commit log」的实现合入当天即被 revert,说明复制语义尚未收敛——这是一个方向已确定、API 未定的子系统。
  • 修复清单继续围绕同一批结构性问题:截断 tool call 与 tool result 不配对、空白 tool output 导致 provider 400、请求 ID 里的数字被误判为可重试码、延迟加载工具后 prompt cache 丢失——四者都属于「上游契约变化后本地路径未同步」,与上期报告归纳的「静默降级」形状一致,只是这次都有显式报错。
  • 本期 61 个 commit 中约 1/3 与模型目录、归属 header、定价、usage 成本相关,pi 已把「模型目录 + 计费口径」当成需要自己维护的契约层,而不是上游 provider 目录的被动消费者。
  • 第三方扩展(Pi Agent Studio)在同期跟随 harness 改 MCP 归属,说明 harness 侧的破坏性调整外溢成本由生态承担,而 Pi 的破坏性变更至今仍主要落在 patch 版本(v1.x)内。

agegr/pi-web

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

近 44.6 天 release 重点:

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

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

  • 70b2947 会话(中文:隐藏的页面释放 idle event stream) — fix(sessions): let hidden pages release idle event streams (#1328) (@Alex Yang, 2026-10-20)
  • 7c0778a 搜索(中文:修复改名与自动生成标题后的会话搜索) — Fix session search for renamed and generated titles (#1318) (@Eric(Mingdong) Tan, 2026-10-20)
  • 0fcc497 worktree(中文:把临时性的 git 失败排除出项目缓存) — fix(worktrees): keep transient git failures out of the project cache (#1339) (@dingxiaobo, 2026-10-20)
  • 3edded3 模型(中文:删除自定义 provider 时忘记重命名追踪) — fix(models): forget rename tracking when a custom provider is deleted (#1342) (@Popcornnnnnnnn, 2026-10-20)
  • f7f8f45 模型(中文:保存时保持符号链接的 models.json 仍是链接) — fix(models): keep a symlinked models.json a link when saving (#1336) (@Porawit Poboonma, 2026-10-20)
  • 083fd11 聊天(中文:工具调用的扁平参数以行形式展示) — feat(chat): show a tool call's flat arguments as rows (#1324) (@Brynne Taylor, 2026-10-20)
  • 408230c / 628d6ac 移动端(中文:手机上补丁单列显示,steer 与 follow-up 按钮独占一行) — fix(chat): show a patch in one column on a phone (#1325) / fix(chat): put the steer and follow-up buttons on their own row on a phone (#1330) (@Brynne Taylor / 沈青川, 2026-10-20)
  • bc762a3 聊天(中文:Ask here 引用时把光标保持在引用末尾) — fix(chat): keep the caret at the quote's end in Ask here (#1319) (#1320) (@jianzhangg, 2026-10-20)
  • 2cefb72 Markdown(中文:页内锚点链接落到 sanitizer 前缀之后) — fix(markdown): land in-page fragment links after the sanitizer's prefix (#1323) (@Brynne Taylor, 2026-10-20)
  • e533d9b 快捷键(中文:Ctrl+Alt+N 按键码匹配,macOS 上可触发) — fix(shortcuts): match Ctrl+Alt+N by code so it fires on macOS (#1337) (@jianzhangg, 2026-10-20)

社区讨论 / 行业方向:

信号观察:

  • 本期 14 个 commit、18 个 PR 全部集中在修 bug 与移动端适配,没有功能级提交;上一个 release(v0.12.2)之后 8 天未发版。
  • open issues 从 28 增至 45(+17),是本清单中增幅最大的 issue 侧指标;同期新流入(含 PR)40 条——报告/需求在涨,发布节奏没跟上。
  • 提交者结构变了:本期 14 个 commit 来自 9 个不同作者(此前高度集中于单一维护者),贡献面在扩散,但合入节奏由外部 PR 主导。
  • 生态侧数据显示 pi-web 的角色正在被复制:npm 上至少 5 个不同作者的 pi-web 衍生包合计月下载量在 4 万量级,而本仓库 stars 增速(+178/期)低于 opencode(+2414)与 hindsight(+1085)。

vectorize-io/hindsight

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

近 44.6 天 release 重点:

  • v1.1.0(2026-10-21)— 可见性、可控性与一轮可靠性修复
    • 可见性:逐文档的变更历史(per-document change history);observation scope 支持 tag glob 与 bank 默认值;知识页(knowledge page)可下载
    • 可插拔:新增 LLM request extension —— 每次调用的 LLM 与凭证由服务端指定(#5578);新增 ModelCallExtension(#5936),把每次模型调用的输入与输出都交给扩展
    • 新 provider:decision-model 支持 Cloudflare Clef 与 OpenAI Decisions API(#5613);LLM / embedding / reranker 新增 provider;决策模型配置统一为「一套默认 + 按操作覆盖」(#5607)
    • 排序:recall 默认优先返回 observations(#5617);配置了 decision model 时由其参与排序(#5284);refactor 把 decision-model 排序压成单次 pass,并告知其问题日期(#5632)
    • 可靠性:reflect 的「answer once」修复——free turn 用 answer_ready 信号而不是写入被丢弃的答案(#5832);对拒绝 forced tool_choice 的模型也能工作(#5917);Anthropic 遇 refusal stop_reason 时快速失败而不是当 JSON 错误重试(#5616);retain 遇到非 JSON 回复(哪怕是 “no facts” 散文)即失败(#5615);LiteLLM 按 HTTP 状态码而非消息关键字重试(#5604);同一响应删除该 observation 时保留 UPDATE(#2550);“nothing found” 答案需要先 recall(#4567)
    • 其他:control plane 用自己的 User-Agent 标识 dataplane 请求(#5536);MCP call log 始终记录破坏性操作并写明工具名;OpenClaw 集成让 operator 可让 cron / heartbeat / subagent 会话使用记忆(#5915),并把 Hermes 的 Hindsight 工具挂到 agent 自己的 bank 上(#5635)
    • 完整 release notes: https://github.com/vectorize-io/hindsight/releases/tag/v1.1.0

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

  • d5e64ca 扩展(中文:新增 ModelCallExtension,每次模型调用都带其输入与输出) — feat(extensions): ModelCallExtension, every model call with its input and output (#5936) (@Nicolò Boschi, 2026-10-22)
  • e05b39f 可观测性(中文:embedding、rerank 与 decision-model 调用被记入请求历史) — feat(llm-trace): record embedding, rerank and decision-model calls in the request history (#5835) (@Nicolò Boschi, 2026-10-20)
  • 10f2783 调度(中文:实时请求可以插队到后台任务之前占用 LLM slot) — feat(llm): let live requests jump ahead of background jobs for LLM slots (#5928) (@Nicolò Boschi, 2026-10-21)
  • 4db437e reflect(中文:answer once——free turn 发出 answer_ready 而不是写入被丢弃的答案) — fix(reflect): answer once — free turns signal answer_ready instead of writing a discarded answer (#5832) (#5916) (@Nicolò Boschi, 2026-10-21)
  • 3fe138f 记忆列表(中文:默认排序改为全序,offset 分页不再重叠) — fix(memories): make the memory list's default order total so offset pages don't overlap (#5934) (@Chris Bartholomew, 2026-10-21)
  • c8c7b99 / b194c79 OpenClaw(中文:把 Hermes 的 Hindsight 工具挂到 agent 自己的 bank;让 cron / heartbeat / subagent 会话可选使用记忆) — feat(openclaw): offer Hermes's Hindsight tools on the agent's own bank (#5635) (#5965) / feat(openclaw): let operators opt cron, heartbeat and subagent sessions into memory (#5915) (#5963) (@Nicolò Boschi, 2026-10-22)
  • 3488382 分页(中文:整集读取翻页到末尾;子集导出只读其文档) — fix(memories): page whole-set reads to the end; subset export reads only its documents (#5918) (@Nicolò Boschi, 2026-10-21)
  • 6572446 审计(中文:始终记录破坏性操作并在 MCP call log 中写明工具名) — fix(audit): always log destructive operations and name the tool in MCP call logs (#5961) (@Nicolò Boschi, 2026-10-22)
  • 517192d / 1d5de32 生命周期(中文:删除 bank 时一并删除其维护队列行与 LLM 请求历史) — fix(banks): delete a bank's maintenance queue rows with it / fix(banks): delete a bank's LLM request history with the bank (@Nicolò Boschi, 2026-10-22)
  • 626cdbe / 1dc21fb 子包(中文:Obsidian 插件 v0.4.0、OpenClaw 插件 v1.1.0) — release(obsidian): v0.4.0 / release(openclaw): v1.1.0 (@Nicolò Boschi, 2026-10-22)
  • b8b7261 性能(中文:cohere reranker 限制在途请求数) — feat(reranker): cap in-flight requests for the cohere reranker (#5831) (@Nicolò Boschi, 2026-10-20)
  • 87a305e 时间(中文:9999-12-31 这类年份 1 的日期不再破坏时序 recall 与 consolidation) — fix(recall): a year-1/9999 date no longer breaks temporal recall and consolidation (#5820) (#5828) (@Nicolò Boschi, 2026-10-20)

社区讨论 / 行业方向:

信号观察:

  • 本期 123 个 commit、96 个 PR 合并,且几乎全部由 Nicolò Boschi 提交;约 60 个 commit 是各集成目录的 chore(deps): bump certifi / pillow / vite / uv 批量依赖升级——功能性开发被依赖维护噪声掩盖,这是延续上期的结构。
  • 上期报告标记的「embedding / rerank 从不计量,hosted 花费在 API 里不可见」(issue #5771),本期由 feat(llm-trace)(#5835)直接补上:embedding、rerank 与 decision-model 调用现在都进请求历史。这是本期唯一一条对上期结论的正面回应。
  • 决策模型(decision model)在本期从「可选配置」升级为「排序主路径之一」:recall 排序、consolidation 心智模型刷新、reflect 反思都受其影响,同时新增 ModelCallExtension 让调用方能逐次介入。记忆系统的可调节性在从「换模型」转向「按调用拦截」。
  • 插件面扩张最快:本期发出 Obsidian 插件 v0.4.0 与 OpenClaw 插件 v1.1.0,加上 OpenClaw 让 cron / heartbeat / subagent 会话可选接入记忆——「记忆的入口」正从对话扩展到调度与子代理。
  • star 增速回到 +1085(上期 +432),与上期「1.0 GA 后负载回流」的判断方向一致;open issues 反而下降 7 条。
  • 外部叙事仍在两极:官方博客主打 100M memories 的规模叙事,第三方文章则继续质疑 benchmark 自证与每次整合的重复计费——规模叙事与成本叙事同时在扩散。

agentclientprotocol/agent-client-protocol

连接任意编辑器与任意 agent 的协议(LSP 之于编辑器之于编程 agent)| stars: 4484(上期 4468,+16)| open issues: 35(上期 40,−5)| 默认分支: main | 最近 push: 2026-10-22T22:23:51Z | 主页: https://agentclientprotocol.com

近 44.6 天 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);澄清 prompt 插入契约(#2392);澄清 fork 出来的会话是 active 的(#2359)
    • (unstable) 新增 client system prompt schema(#2361);移除 next edit suggestions(#2266)
    • (schema) 对齐 v2 实验特性兼容性(#2397);列出 v2 在 AgentCapabilities.session 上的完整 session baseline(#2358);v2 foreground work 可在无 prompt 时启动(#2357);规范 git_patch 如何写路径(#2362)
    • (rust) content block 实现 Eq(#2352)
    • 完整 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 条):

  • 87da85c / f00b64e / 6f29ef9 等 15 个 commit 全部为 registry 同步 — docs: update registry agents (#2461 / #2460 / #2459 …) (@acp-release-bot[bot], 2026-10-20 ~ 10-22)
  • 6a2ca32 文档(中文:agents 列表新增 Octomind) — docs: add Octomind to the agents list (#2420) (@Don Karter, 2026-10-22)
  • f97dcc9 文档(中文:新增 AHP-ACP Gateway 连接器) — docs: add AHP-ACP Gateway connector (#2415) (@Jun Han, 2026-10-22)
  • 589fc2a 文档(中文:clients 列表新增 Eleven) — docs: add Eleven to the clients list (#2423) (@Chiziaruhoma Ogbon, 2026-10-22)
  • 90dfcc1 文档(中文:acpantenna 加入 mobile clients 与 messaging) — docs: add acpantenna to mobile clients and messaging (#2440) (@Filipe Boldo, 2026-10-22)
  • ee9e70c / 2fa002a / 65f0ae4 文档(中文:agents 列表新增 Volt、ZenCODE、Inferpal) — docs: add Volt to Editors and IDEs (#2455) / docs: add ZenCODE to the agents list (#2451) / docs: add Inferpal to the agents list (#2442) (@arialus / Gerardo Grisolini / Damien Houssard, 2026-10-22)
  • d971c3a 依赖(中文:minor 组 9 个依赖升级) — chore(deps): bump the minor group with 9 updates (#2437) (@dependabot[bot], 2026-10-22)
  • #855 RFD(中文:子代理发现、委派与子会话) — docs(RFD): Subagent Discovery, Delegation and Child Sesssions (@egor-baranov, 已关闭未合并,2026-10-22)

社区讨论 / 行业方向:

  • ACP vs MCP(Maksim Danilchenko): 把 ACP 定位为「AI 编码 agent 的 LSP」——一套 JSON-RPC 2.0 标准让任何合规 agent 跑在任何合规编辑器里;文中记录官方 registry 截至 2026 年 10 月列出 42 个 agent。
  • Which Coding Agents Support ACP?(AgentRQ): 逐个列出 registry id 与启动命令——Claude Code、Codex CLI、Gemini CLI、Cursor、OpenCode、GitHub Copilot CLI 等的接入方式,其中 OpenCode 为原生 opencode acp。
  • agentclientprotocol/registry(registry 仓库): registry 以 JSON 索引维护实现 ACP 的 agent,由每小时 cron 刷新——这解释了本期 23 个 commit 全是 registry 更新的原因。
  • agentclientprotocol/registry 镜像页: 逐条记录 agent 版本更新(如 cline 3.0.73、codex-acp preview 2.2.3-preview.23,10-21),与本期 registry bot 提交一一对应。

信号观察:

  • 本期 23 个 commit 中 23 个都是 registry agent 列表同步,协议本体(schema / Rust crate / 规范文本)零改动——spec 与生态采用度正在分离:registry 以小时级节奏刷新,而协议两周才动一次。
  • 新增 registry 条目以「网关 / 代理」为主(AHP-ACP Gateway connector)与移动端为主(acpantenna 进入 mobile clients),说明 ACP 的推广路径正从「官方 agent 接入编辑器」转向「第三方桥接」。
  • 协议层面唯一有实质设计的开放项是 RFD「Subagent Discovery, Delegation and Child Sessions」(#855),但它以关闭未合并的状态停留在窗口内——子代理委派尚未进入规范,这与 pi 本期大举推进 durable / Chord 的方向形成对照。
  • 增长曲线明显平缓:stars +16/期、open issues −5、新流入(含 PR)仅 5 条,是本清单中增速最低、生态最稳定的仓库。

yxc023/yxc023.github.io

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

近 44.6 天 release 重点:

窗口期内无 release。

其他重要 commits / PRs:

  • 本仓库的提交来自报告同步脚本,非人工内容。

信号观察:

  • stars: 1 | open issues: 27 —— 27 个 issue 是历次自动同步留下的,不是待办信号。

跨项目观察

  1. 「把 provider 私有的东西收进一个统一字段」在本周成为三个仓库的主线动作。 opencode v2.1 把散落在 state / providerState / providerResultState 的重放数据统一成 native,并把 compaction 窗口挪到 native.messages、保留消息引用挪到 metadata.keepID;ACP v1.12.0 同时在澄清「replay IDs 和不支持的 cursor」;pi 本期把 client identity 与 provider attribution 一起下沉进 pi-ai。三个仓库都在解决同一件事:跨 provider / 跨实现的状态形状不一致,但选择了三种不同的收敛方式(字段合并 / 规范澄清 / 模块下沉)。

  2. compaction 从「共同故障面」第一次变成「共同修复面」。 上期报告把 compaction 列为三个仓库的共同故障面;本期 pi v1.4.0 让 summary 使用模型自身的 output limit(reserveTokens 只决定何时触发压缩),opencode #57564 让压缩摘要与普通轮次共享输出上限,两者在 24 小时内落地。根因是同一个:上游把 reasoning 吃掉的预算算进固定上限,而本地又自己加了一层固定上限。

  3. 模型目录的生命周期正式从「配置项」升级为「每个 harness 都要自己维护的契约层」。 opencode 隐藏 ChatGPT 账号会被拒的 Codex 模型(#58180)并把 models.dev 刷新做成 server-wide 广播;pi 移除上游下架模型(e5fe977)、只把已公告下架的模型列为不可用(530015d)、移除 ChatGPT 账号被拒的 Codex 模型(#11173);ACP 不涉及模型但把 spec 与 registry 解耦。三个仓库在同一周内各自处理了「某个模型突然不可用」这一类问题,方式都是本地维护目录而不是依赖上游声明。

  4. 成本与用量可见性连续第二期被推动,且方向从「计费」转向「按调用审计」。 pi 新增 totalFromProvider 并采用 OpenRouter 上报的总成本(#11178 / #10286);hindsight 把 embedding、rerank、decision-model 调用写入请求历史(#5835),直接回应上期报告标记的 issue #5771。共同形态:不再满足于「模型调用有日志」,而是要让每一次非主链路的调用(embedding / rerank / decision)都能被追到账上。

  5. 「harness 做深、界面掉队」的分化继续,但本期出现了反向的例外。 opencode 同期在做 Windows 持久 PTY、桌面端高亮引擎替换(Shiki → @pierre/highlights)、GPT-Live 语音托管;pi-web 连续 8 天无 release、open issues +17、新流入 40 条全是 bug 与移动端布局,18 个 PR 里 15 个来自外部贡献者。资源仍集中在 harness 与桌面端,Web 界面侧靠社区 PR 维持。

  6. 协议层与实现层的节奏差被拉大。 ACP 本期 23 个 commit 全部是 registry 条目更新,协议本体零改动,唯一有实质设计的子代理委派 RFD 以关闭未合并状态停留在窗口内;而 pi 本期在仓库内部长出了 durable 存储与 Chord(SQLite 复制,含 WAL reader、page 校验和、segment 容器、只读 Harness、IndexedDB 后端),其中「存储复制为 commit log」合入当天即被 revert。规范层在等共识,实现层在抢跑——这会让下一轮协议对齐的成本继续上升。

元信息

  • 报告生成时间: 2026-10-23T00:30:05Z
  • 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告 reports/latest.md 的 基准时间: 字段,自 2026-09-08 起连续 12 期未变)
  • 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-23T00:30:05Z(约 44.6 天);本期新增内容全部落在 2026-10-20T00:30:19Z 之后的约 3 天
  • 数据源: GitHub API(gh CLI)+ mmx web search
  • API rate limit 剩余: 4975 / 5000(core,抓取完成后查询)
  • 抓取结果: 6 / 6 仓库 × 4 endpoint 全部成功;opencode / hindsight / pi 的 commits 列表接口单页 100 条为截断,窗口增量按分页统计(opencode 158、hindsight 123、pi 61、ACP 23、pi-web 14);opencode V2 release notes 取自默认分支 CHANGELOG.md(v2.1.3,2026-10-22),其 GitHub Release 仍为 v1.19.x,两条发布线并存;hindsight 仓库无根级 CHANGELOG.md,release notes 取自 GitHub Release v1.1.0 正文与官方博客;ACP 的 Schema v1.26.0 / v2.0.0-alpha.9 为同批发布;coding-agents v0.8.2、Obsidian 插件 v0.4.0、OpenClaw 插件 v1.1.0 为 hindsight 仓库内子包 release,非 GitHub Release 对象

评论