2026 2026年10月27日 33 min · 9.6k chars by yxc023

GitHub 调研周报 2026-10-27

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

2026-10-27 GitHub 调研周报

扫描窗口:2026-09-08T09:23:29Z → 2026-10-27T00:30:00Z(共 48.6 天)| 基准来源:上次报告 2026-10-26 本期新增内容全部落在 2026-10-26T00:30:00Z 之后的约 24 小时(上次报告生成时间)

本期速览

  1. opencode 的「额度」话题没有消失,但它从「配额算错」被官方重新定性为「版本分裂」——这是本期最重要的口径修正。 24 小时内新开 164 个 issue,标题涉及 free / quota / limit / usage / subscribe 的只有 32 个(约 19.5%),而上一期这个比例是 59%。原因写在维护者 neriousy 建的汇总帖 #59387 里:「Most free tier reports come from OpenCode v1(0.x / 1.x)——v1 no longer supports free models and only gets fixes for critical bugs」,并给出 v2 的手动安装路径;同时列出「OpenCode's free tier can only be used from within OpenCode」这一条。官方文档 docs/zen 也写着「Free-tier chat models require OpenCode; use paid models or Go from other clients」,docs/go 的模型清单里唯一的免费项 Beam Free 标注为「Unlimited, limited time」且列出二十多个不可用国家/地区(含中国大陆、俄罗斯、伊朗)。用户以为在用免费额度,实际用的是一个不再支持免费模型、且免费模型按地区封禁的 v1 客户端——摩擦点从计费系统移到了发布与分发渠道。

  2. opencode 本期的主线是供应链完整性,而且有明确的事件背景。 一天内合并了四个互相呼应的 PR:#59360 在构建时下载 pinned Bun 的 SHASUMS256.txt 并流式校验 zip 的 SHA-256,不匹配就删除压缩包并失败(此前 Bun runtime zip 从未校验,直接进 12 个 CLI 二进制、Homebrew、AUR、Docker、桌面版);#59350 固定 ripgrep 15.1.0 全部 7 个 release asset 的 SHA-256;#59173 改成每次发布只拉取一次 models.dev catalog 并让构建后校验失败即发布失败,「There is no fallback in release」;#59296 把 catalog 读取迁到实验性 v2 API。同期用户侧还在要 #59266「请为 v1.19.0 提供公开的 Sigstore attestation bundle」。背景是 10 月 17—18 日的安全事件:环球网报道称 OpenCode 一次大规模蒸馏攻击导致约 1.4% Console 用户的第三方 API key 泄露,受影响用户出现 Anthropic 400 美元、谷歌约 200 欧元的非授权扣费。校验哈希、发布即失败、要求签名证明——三条措施都指向同一件事:把「产物被替换」从不可见变成构建失败。

  3. opencode 的发版流水线本周被整体重构,同时出现连续 4 天零发版。 #59046 把 build 与 signing / publishing 彻底分离(plan / build / sign / publish 分 job,所有用密钥的 job 收进 release environment,加 CODEOWNERS 与最小权限,删掉 VS Code 发布 workflow);#59428 让 tag job 用只存在 release environment 里的 RELEASE_TAG_KEY deploy key 打 v* tag(GITHUB_TOKEN 无权创建 v* tag,ruleset 允许 deploy key 但不允许 Actions integration);#59353 因为 dev/beta deploy 的 AWS 凭据在别的 environment 而把 deploy.yml 回滚;#59408 让 beta 分支也开始跑 check。结果是 npm @opencode/cli 的 latest 仍是 2.1.4(2026-10-23),GitHub Release 仍是 v1.19.4(2026-10-22),dev 分支 V2 CHANGELOG 也停在 v2.1.4——本期 82 个合并 PR 没有一条进入任何 release notes。上一期「发版闸门收紧」的判断在本期得到确认。

  4. opencode 出现两例「当日合并、当日回滚」。 #59444 回滚 #59379(fix(server): honor OPENCODE_SERVER_USERNAME for serve and --server,10-26 19:54 合并,10-27 00:06 回滚);#59439 回滚 #57007(fix(tui): identify config-defined providers,10-26 21:14 合并,10-27 23:51 回滚)。两例都发生在发布流水线刚被重构的同一批 PR 里——权限与配置类改动在新的 environment / deploy key 体系下先跑通再回退,是「闸门收紧」过程中必然出现的摩擦。

  5. pi 本期的主题是「不可信输入」的系统性硬化,而它同时被用户独立发现。 Armin Ronacher 的 commit 89c921d 一次性收掉五类问题:OAuth 登录只接受服务端给的 http(s) URL(新增共享 trustedHttpUrl,Radius 也接入)、pi-messages 拒绝非「下一个或已存在」的 contentIndex、CLI auth 文件改为 0600 权限、登录对话框只打开 web URL 且不打印控制字符(新增 replaceControlCharacters())、durable 的 partial commit 不再把 __proto__ 成员合并进 Object.prototype。同一天用户报的三条 issue 指向同一类:#11421「未受信项目里的 .pi/settings.json 是指向 /dev/zero 的 symlink,pi 启动即挂死,10 秒涨到约 650 MB 内存——克隆一个仓库就足以触发」;#11417「session JSONL 用默认 umask 落成 0644,同机其他用户可读全部 prompt、模型输出与工具输出(auth.json 已经是 0600,session 没跟上)」;#11448 报告 npm 包 billion-context 0.1.208 疑似恶意、下载量异常。上一期 pi 的主题是「参数名承诺一种语义、代码实现另一种」,本期换成「系统对外部世界的默认信任假设不成立」。

  6. pi 真正的结构性改动在 durable / chord,而不是表层功能。 commit 8b0caef「publish commits at adoption, address-following watches, synchronous observers」把发布时点从「commit 落盘之后」前移到「Storage 采用(adopt)这一批的时刻」,让 telemetry、document watch、conversation view、task graph、scheduler 与 wait 全部在 adopt 同步步骤内跑完,subscribeCommits() 的宿主监听者延一个 microtask 触发。配套的 packages/durable/CHANGELOG.md [Unreleased] 段是一整批 Breaking Changes:watch 统一到 Chord 的 WatchHandle / WatchEnd(结束原因改为 stopped / cancelled / ended / listener_error / failed,retired 从「结束」降级为「标志」)、document watch 跟随地址而非某次实例化、listener 改为接收单个 change 对象 { value, ops, retired }、新增 deferred commit(把流式答案与工具输出的节流提交推迟落盘,SQLite 32 路并发下存储事务减少约 5.7 倍、磁盘写减少约 2.9 倍,长答案场景 27 倍与 9 倍)、新增同步 observer(observeDoc / observeConversation / observeTaskGraph)与 HarnessOptions.readOnly。这是一个把「同一个 commit 被两路视图看到」的经典竞态从架构上消灭掉的改法,代价是整包 API 破坏性变更。

  7. GPT-6.1 Terra 在同一天进了 pi 和 opencode。 pi 的 363ad78 把它加进 OpenAI、Azure OpenAI Responses 与 OpenAI Codex 三个 provider,官方价格($1 input / $0.05 cached input / $1.25 cache writes / $5 output,272k 以上走 long-context 档),支持 reasoning.effort: "none"(即 off),但两个档位都拒绝 minimal,Codex 侧给 500K context。opencode 侧对应 #59359(加入 ChatGPT 登录模型)与 #59380 / #59420(为 catalog 里的 image / decision 模型补 provider 端点与 HTTP 接口,此前 POST /api/experimental/generate/image 解完请求固定返回 501)。两家对同一新模型的跟进节奏一致到同一天,模型发布节奏正在直接决定 agent 框架的发布节奏。

  8. pi-web 连续第 7 天零提交,外部贡献继续涌入而维护响应仍为零。 最后一次 push 仍是 2026-10-20T16:53:57Z,package.json 里 7 个 @earendil-works/* 包仍精确 pin 在 1.2.0(上游已到 1.4.0,pi-coding-agent / pi-ai 的 npm latest 也是 1.4.0,2026-10-21 发布)。本期新开 3 个 PR、2 个 issue,全部零回复:#1425「改进消息与文件呈现」、#1423「侧边栏折叠时把「等待输入」的会话与「运行中」分开计数」、#1421「手机端把输入区控件排成浮动面板」;issue #1424「按 provider 过滤 Settings 侧栏模型」、#1422「缺失 session cwd 被误报成 Model Error」。讨论区 #1233 里一位外部作者提到「这是我第一次开源贡献,我的 PR 已被合并并发布」——说明这条流水线曾经跑通过,现在停了。

  9. hindsight 连续第三天转向运行时修复,而 v1.1.0 的能力面已经相当宽。 10 个 commit / 10 个合并 PR 里只有 2 个是依赖升级(fastmcp 3.4.11、setuptools),其余全是运行时:#6112「reranker 的 failover 链成员失败时进 bench,故障不再拖慢每一次 recall」、#6108「登出状态的 LLM 不再让启动崩溃,failover 直接跳过它」、#6105「ONNX loader 不再与本地模型构建相邻时 crash-loop」、#6100「未提交的 buffering retain session 不再被 checkpoint」、#6104「Windows 上隐藏 next-server 控制台窗口」、#6115「用模型自己的词汇表达请求上限与 recall 的 caps」。issue 侧同样具体:#6103「Delta page-refresh 门一次并发发出全部 decision 请求,一次失败就丢掉整门」、#6098「文档的请求历史应当随文档走」、#6097「coding-agents 的 session write-back 在最后一次提交失败时没有跨会话的持久重放」、#6110「本地 embedding 与 reranker 的 commit / thread 数随每个跑 torch 的 executor 线程增长」。

  10. ACP 是本期唯一「零新 issue、零新讨论、全是规范」且仍有实质推进的仓库。 22 个合并 PR 中 6 个是 dependabot 与 registry bot,其余是 Ben Brandt 集中在 v2 schema 上的收紧:#2499「v2 不允许 null request ID」、#2498「v2 要求恰好一个 elicitation scope」、#2494「给 available commands 加类型判别符」、#2500「定义接收方遇到未知 v2 variant 的行为」、#2497「说明 v2 下 session/set_config_option 何时可用」、#2492「澄清 v2 的 session 状态同步」。两份新 RFD 同时进仓:#2485「定义 per-turn / in-turn / subagent / cumulative 四种 token usage 口径」、#2482「报告每个 subagent 使用的模型」。

各仓库详情

anomalyco/opencode

开源 coding agent(终端 TUI + 桌面 app + web),TypeScript / Bun 内核,多 provider 架构 | stars: 221957(+442) | open issues: 3865(+62) | 默认分支: dev | 最近 push: 2026-10-27T00:27:16Z | 主页: https://opencode.ai

近 N 周 release 重点:

  • 本期(24 小时)无新 release。npm @opencode/cli 的 latest 仍为 2.1.4(2026-10-23),GitHub Release 仍为 v1.19.4(2026-10-22)。
  • v1.19.4(2026-10-22): 捆绑 Bun runtime 升级到 1.4.4(含 Brotli / TLS / HTTP/1.1 / HTTP/2 / HTTP/3 / WebSocket / fetch 的安全修复,根证书更新至 NSS 3.131.1)。
  • dev 分支 V2 线 CHANGELOG 最新仍为 v2.1.4(2026-10-23):MCP input form 终于弹出(桌面与 web 支持 text / number / choice / multiselect / boolean / URL)、experimental.background_compaction 后台预生成摘要、压缩时优先裁剪旧 tool output。
  • 本期的 82 个合并 PR 尚未进入任何 release notes,改动只存在于 dev 分支。

其他重要 commits / PRs(按重要性挑选):

  • #59360 fix(opencode): verify Bun runtime zip checksum in release builds (@R44VC0RP, 10-26)——构建时校验 Bun zip 的 SHA-256,此前 Bun runtime 直接进 12 个 CLI 二进制及其下游分发渠道,从未校验
  • #59350 fix(core): verify SHA-256 of downloaded ripgrep before running it (@R44VC0RP, 10-26)——固定 ripgrep 15.1.0 全部 7 个 release asset 的哈希,不再以「body 非空」为唯一检查
  • #59173 feat(build): fetch the models.dev catalog once per release and verify the bundled copy (@rekram1-node, 10-26)——发布流水线改为一次拉取、全程同源、校验失败即发布失败,无 fallback
  • #59296 feat(core): read the models.dev catalog from the experimental v2 API (@rekram1-node, 10-26) / #59272 反馈:kv 表里一个损坏的 catalog 值会让内置插件每次启动失败、全部 provider 消失,而清缓存无效(catalog 存在 SQLite 里)
  • #59421 feat(ai): add LLM.loop to run tools until the model stops (@rekram1-node, 10-26)——LLM.loop(Effect)与 ai.llm.loop(Promise)把「模型调工具→回填结果→再调」这个循环从用户侧搬进库
  • #59382 feat(ai): add opt-in raw provider events to LLM streams (@rekram1-node, 10-26)——includeRaw 打开后每个 provider 原始帧都发一个 raw 事件,协议忽略的帧也能拿到,便于翻译未知事件
  • #59183 refactor(ai): replace wildcard exports with an explicit public API (@rekram1-node, 10-26)——@opencode/ai 此前导出 "./*",约 220 个源文件都是公开子路径;现在内部工具与 schema 不再公开(breaking)
  • #59175 refactor(core): derive provider option keys from the settings schema (@rekram1-node, 10-26)——provider / model / variant 的 settings 键从 schema 派生,不再维护四份手写剥离清单(此前漏掉的 cache / encoding / timeout 会漏进 AI SDK 包)
  • #59157 feat(ai): configurable prompt cache TTL (@rekram1-node, 10-26)——新增 cache.ttl(provider / model / variant 三级),此前只能用 provider 默认(Anthropic 5 分钟),OpenAI 的 30m / 12h / 24h 根本够不着
  • #59171 feat(ai): add typed Bedrock Converse options (@rekram1-node, 10-26)——serviceTier / effort / guardrails / structured output / request metadata 从裸 AWS JSON 变成 typed option
  • #59411 fix(util): kill spawned process groups when opencode exits (@rekram1-node, 10-26)——10 秒关闭超时里的 process.exit(1)、关闭终端的 SIGHUP 等路径会跳过 finalizer,遗留的 MCP server 被 reparent 到 PID 1 永不退出
  • #59444 Revert “fix(server): honor OPENCODE_SERVER_USERNAME for serve and —server” (@neriousy, 10-27) / #59439 Revert “fix(tui): identify config-defined providers (#57007)” (@opencode-agent[bot], 10-26)——当日合并、当日回滚
  • #59103 feat(server): add experimental GET /api/experimental/media/:hash and opt-in experimental-media-uri capability (@kitlangton, 10-26)——上一期还挂着未合并,本期已合并
  • #59207 fix(ai): send Kimi models the right tool arguments when schemas use tuples, defaults or keyword-like names (@kitlangton, 10-26)
  • #59126 / #59315 fix(core): keep codemode on legacy MCP entries / expose code mode tools directly when execute is denied (@tneemo, @rekram1-node, 10-26)
  • #59335 fix(core): use Vertex multi-region hosts for eu and us (@rekram1-node, 10-26) / #59334 accept a Databricks host that includes the scheme
  • #59209 fix(tui): keep pasted text intact when you copy it out of the prompt (@kitlangton, 10-26) / #59198 stop custom commands from overwriting $0 and re-filling $ARGUMENTS / #59197 stop GPT patch edits from deleting a file moved onto itself
  • #59205 perf(core): stop holding huge matched lines in memory during code search (@kitlangton, 10-26) / #59091 perf(session): load a step’s history once / #59402 perf(core): sort integrations once per rebuild (@rekram1-node, 10-26)
  • #59089 fix(core): folder approvals use the project’s own files, not this machine’s disk (@kitlangton, 10-26)——上一期还是未合并的 #59089,本期已合

社区讨论 / 行业方向:

信号观察:

  • 额度投诉占比从上一期 59% 回落到 19.5%,同期合并 PR 从 93 降到 82、新 issue 从 128 升到 164——争议总量没降,是性质变了:从「限额机制」争议转向「版本分裂 + 配额口径 + 桌面端渲染」三类。
  • 四个供应链校验 PR(#59360 / #59350 / #59173 / #59296)加一条 Sigstore 请求(#59266),全部由非核心成员(R44VC0RP、用户 Rubenort980)提出而非维护者自上而下推动,外部用户对「产物可信」的要求第一次跑到了构建脚本前面。
  • 发布流水线在 24 小时内经历「拆分 → 回滚 → 换 deploy key → 扩到 beta」四步改动,且两次当日 revert 紧随其后;发版通道当前处于高风险重构期,dev 分支与 npm latest 之间已经断了 4 天。
  • AI 层继续还债:被静默丢掉的 provider 参数、显式 public API 取代 wildcard、settings 键从 schema 派生、typed Bedrock options、LLM.loop 抽象循环——都是从「多 provider 架构」欠下的债,且都由同一位贡献者(rekram1-node)推进。
  • issue 里的新主题:Windows 桌面端透明窗口吞输入(#59229)、model picker 的 Free badge 只对 opencode provider 生效(#59302)、OpenCode Go 的 workspace 只能单成员(文档明示)却在真实场景撞上多用户限流(#59257)。

earendil-works/pi

AI agent 工具箱:统一 LLM API、agent loop、TUI、coding agent CLI,TypeScript monorepo | stars: 118032(+250) | open issues: 389(+3) | 默认分支: main | 最近 push: 2026-10-26T21:19:13Z | 主页: github.com/earendil-works/pi

近 N 周 release 重点:

  • 本期(24 小时)无新 release。npm @earendil-works/pi-coding-agent 与 @earendil-works/pi-ai 的 latest 仍为 1.4.0(2026-10-21T22:48Z)。
  • v1.4.0(2026-10-21): classifier 支持图片输入(TypeSafe Jev、Cloudflare Clef)、models.json 配置参考文档自动生成、compaction 与 branch summary 改用模型自身输出上限(长推理不再失败)、codemode 并行脚本排队而非直接失败(PI_CODEMODE_MAX_WORKERS 可调)、Rex 终端支持(OSC 8 超链接 / truecolor / 内联图片)。
  • packages/durable/CHANGELOG.md 与 packages/chord/CHANGELOG.md 的 [Unreleased] 段是本期最大的未发布内容,且几乎全是 Breaking Changes(见下)。

其他重要 commits / PRs(按重要性挑选):

  • 8b0caef feat(durable,chord): publish commits at adoption, address-following watches, synchronous observers (Mario Zechner, 10-26)——发布时点前移到 Storage 采用该批的时刻;新增 observeDoc / observeConversation / observeTaskGraph 三个同步 observer,watch 建立在它们之上;telemetry adapter 抛错改为报 host_error "telemetry" 而不是让 commit 失败
  • 89c921d fix: harden handling of untrusted URLs, terminal text, and streamed data (Armin Ronacher, 10-26)——一次提交覆盖五类不可信输入:OAuth 只接受 http(s)(新增共享 trustedHttpUrl)、pi-messages 拒绝非法 contentIndex、auth 文件 0600、setTitle() 过滤控制字符、登录对话框不打印控制字符、durable 不再污染 Object.prototype
  • 363ad78 feat(ai): add GPT-6.1 Terra (Armin Ronacher, 10-26)——OpenAI / Azure OpenAI Responses / OpenAI Codex 三个 provider,官方定价 $1 / $0.05 / $1.25 / $5,支持 reasoning.effort: "none",拒绝 minimal,Codex 侧 500K context
  • 6c384aa fix(ai): resolve pi-telemetry from source in workspace tests (Mario Zechner, 10-26)——Environments workflow 自 2026-10-18 起每次都失败,因为 pi-telemetry 的 root 与 ./testing 导出没有 source condition
  • #11440 fix(coding-agent): rank tools first when the search query is their name (@petrroll, 10-26)——Bm25Ranker 把工具名当普通搜索文本打分,查询 thread_read 被切成 thread 与 read,BM25 长度归一化让短描述的 mcp__app__queue_read 排在真正的 mcp__app__thread_read 之前,limit: 1 时永远搜不到被点名的工具
  • #11438 ci: run tests in parallel jobs and drop unused apt packages (@petrroll, 10-26)——build-check-test 串行跑完所有 workspace,单次 8–11 分钟,测试环节 4–6.5 分钟
  • #11435 fix(coding-agent): update undici to 8.12.3 for security advisories (@robopipi[bot], 10-26)——原先精确 pin 在 8.10.2,落在三条已公开 advisory 的区间内
  • #11436 fix: skip custom-message runs in prompt-url-widget (@robopipi[bot], 10-26)

社区讨论 / 行业方向:

信号观察:

  • 本期 9 个 commit(其中 1 个为 10-24 的 straggler)+ 4 个合并 PR,全部 4 个 PR 中 3 个来自 robopipi[bot]——但与上一期「零外部 PR、只做杂务」不同,本期出现了两位真人贡献者的实质代码(Armin Ronacher 的两次 commit、Petr Houška 的工具排序修复与 CI 并行化)。
  • 30 个新 issue 中,安全与权限类占明显多数:#11421(symlink 到 /dev/zero 挂死,10 秒 650 MB)、#11417(session JSONL 0644)、#11413(undici pin)、#11448(疑似恶意 npm 包)、#11429(/mcp logout 留下孤儿 oauthState / codeVerifier,导致无法重新登录)、#11430(MCP close cleanup 遇 disposer 抛错不 resilient)、#11412(MCP Protected resource 校验过严)。
  • 运行时语义类 issue 依旧密集:#11451(/tree 回退后 resume 恢复旧的 thinking level)、#11444(tree 分支摘要不带所选 thinking level,nvidia 端 400)、#11443(macOS 睡眠唤醒后 SGR mouse 事件碎片被当作文本输入)、#11423(grep 在 UTF-16LE 文件带 context: 1 时破坏匹配文本)、#11442(OpenAI 登录默认模型 gpt-5.5 已不支持)。
  • 扩展 API 需求密集且形态一致:#11450(registerAssistantMessageTransformer)、#11446(pi-durable 的 /extension 子路径导出)、#11439(MCP Prompts / Skills 支持)、#11426(MCP OAuth 自动优先 CIMD)、#11452(classifier transport 无法从已安装包 import)、#11431 / #11428(setEditorComponent 会隐藏已打开的扩展对话框;inline ctx.ui.custom() 需能上报 blocked 状态)。
  • 「codemode 的工具搜索」在两个仓库同时出问题(pi #11440 的 BM25 排序、opencode #59315 的 execute 被拒时仍暴露 code mode 工具)——工具发现正在成为多 agent 架构下一个共同的、尚未被系统性解决的层。

agegr/pi-web

pi coding agent 的本地 Web UI(Next.js / TypeScript),读同一套本地 session 文件 | stars: 7818(+33) | open issues: 71(+3) | 默认分支: main | 最近 push: 2026-10-20T16:53:57Z(连续 7 天未变) | 主页: 无

近 N 周 release 重点:

  • 本期(24 小时)无新 release。最新仍为 v0.12.2(2026-10-15),package.json 版本字段同为 0.12.2。
  • 依赖仍是 7 个 @earendil-works/* 包精确 pin 在 1.2.0(pi-agent-core / pi-ai / pi-codemode / pi-coding-agent / pi-mcp / pi-telemetry / pi-tui),上游已发布 1.4.0(2026-10-21)。
  • 窗口期内无 release、无 commit。

其他重要 commits / PRs(按重要性挑选):

  • 本期仓库 0 个 commit、0 个合并 PR。 以下全部是外部作者提交、全部 open、全部零回复:
  • #1425 fix: improve message and file presentation (@JohnZheng-1991)
  • #1423 fix(sidebar): count sessions awaiting input apart from running ones when folded (@Zhangs-11)
  • #1421 fix(chat): open the phone’s composer controls as a floating panel, one row each (@draxxris)
  • #1424 feat(models): filter configured providers in the Settings sidebar (@wowayou)
  • #1422 Issue Summary: Missing Session cwd Misreported as “Model Error” (@Passi0n1)

社区讨论 / 行业方向:

信号观察:

  • 连续第 7 天零提交、连续第 2 天(自上期起)外部 PR 零回复;本期新增 3 PR / 2 issue,回复数均为 0。
  • SDK 落后两个小版本(1.2.0 vs 上游 1.4.0)且是精确 pin 而非 range,意味着即使上游有修复也无法自动跟进。
  • star 数仍在涨(+33),而维护活动为 0——关注度与维护投入的背离在 pi-web 上是六个仓库里最大的一个。
  • npm 上同类 pi-web 实现的总下载量已数倍于原仓库 star 数,「pi-web」正在从项目名变成品类名。

vectorize-io/hindsight

Agent memory 平台(Hindsight:Agent Memory That Learns),Python 后端 + 控制面 | stars: 54098(+376) | open issues: 163(+12) | 默认分支: main | 最近 push: 2026-10-26T22:37:54Z | 主页: https://hindsight.vectorize.io/

近 N 周 release 重点:

  • 本期(24 小时)无新 release。最新仍为 v1.1.0(2026-10-21T16:41Z)。
  • v1.1.0 的能力面(官网 changelog):embedding / reranking / decision-model 调用进 request history trace、tag-glob 与 per-bank 默认 observation scope、per-document change history reconstructed from operations、deferred operations 可立即重试、mental-model delta 刷新可用 decision model 判断是否需要刷新(实验)、任意 ONNX 导出的 cross-encoder 可作 reranker、ChatGPT 可作 LLM provider、NVIDIA NIM 支持 embedding 与 reranking、consolidation 可用 decision model 先处理简单事实再决定是否调 LLM(实验)、Helm 可配 revision history 保留与 Gateway API HTTPRoute、Anthropic 支持 Workload Identity Federation 取代静态 API key。
  • 官网 v1.0(2026-10-13)条目:「After a year in production, Hindsight’s architecture and API are stable, and from here the API is a promise」。

其他重要 commits / PRs(按重要性挑选):

  • #6115 feat(decision-model): count the request ceiling and recall’s caps in the model’s own vocabulary (@nicoloboschi, 10-26)——用模型自己的词汇表达请求上限与 recall 的 caps,这是把「限制」变成模型可推理对象的第一步
  • #6112 fix(reranker): bench a failed failover-chain member so an outage does not slow every recall (@nicoloboschi, 10-26)——failover 链成员故障时进 bench,故障不再拖慢每一次 recall
  • #6108 fix(llm): a logged-out LLM no longer crashes startup; failover skips it (@nicoloboschi, 10-26)
  • #6105 fix(models): ONNX loaders no longer crash-loop startup next to a local model build (@nicoloboschi, 10-26)
  • #6100 fix(retain): don’t checkpoint documents a buffering retain session hasn’t committed (@nicoloboschi, 10-26)
  • #6106 fix(bank-template): export keeps entity_labels stored in the attributes envelope (@nicoloboschi, 10-26)
  • #6104 fix(control-plane): hide the next-server console window on Windows (@nicoloboschi, 10-26)
  • #6102 ci: swap retired gpt-4.1-nano for gpt-6-luna in LLM acceptance matrix (@nicoloboschi, 10-26) / #6101 跟进: OpenAI 已退役 gpt-4.1-nano,CI 的 LLM acceptance openai + litellmrouter 两个 job 失败
  • #6113 chore(deps): bump fastmcp to 3.4.11 / #6091 bump setuptools (@cdbartholomew, 10-26)

社区讨论 / 行业方向:

信号观察:

  • 连续第三天从「依赖治理」转向「运行时修复」:本期 10 个 commit 中 8 个是运行时 fix,2 个是依赖升级(上一期是 12/12 依赖升级,两期前是纯依赖治理)。修复密度与方向连续三期变化,说明维护重心刚从「对齐依赖」切到「运行时行为」。
  • decision-model 是本期最集中的主题:#6115 让模型用自己的词汇表达上限与 caps,v1.1.0 里 decision model 同时进入 mental-model delta 刷新与 consolidation。「用一次廉价的模型调用替代一次昂贵的 LLM 调用」正在成为 memory 品类的核心成本杠杆。
  • 新 issue 指向的都是「系统内部发生了一件事,但没有任何一层负责把它正确呈现或持久化」:#6103(Delta page-refresh 门一次并发全部 decision 请求,一次失败丢整门)、#6099 / #6100(retain 重试以空文档收尾)、#6098(文档的请求历史不随文档走)、#6097(coding-agents 的 session write-back 最后一次提交失败时没有跨会话持久重放)、#6110(本地 embedding / reranker 的 commit 与 thread 数随每个 torch executor 线程增长)。
  • stars 增速 +376,是六个仓库中绝对增量第二高的(仅次于 opencode 的 +442),在 agent memory 品类整体升温的背景下,hindsight 仍在以接近峰值速度吸星。

agentclientprotocol/agent-client-protocol

「让任意编辑器接任意 agent」的协议规范 + Rust crate + schema | stars: 4516(+8) | open issues: 32(−5) | 默认分支: main | 最近 push: 2026-10-26T23:56:10Z | 主页: https://agentclientprotocol.com

近 N 周 release 重点:

  • 本期(24 小时)无新 release。最新仍为 Rust Crate v1.12.0 / Schema v1.26.0 / Schema v2.0.0-alpha.9(2026-10-16)。
  • v1.12.0 之后的所有 v2 schema 变更仍停留在 unstable-v2 与 alpha 线,尚未进入稳定 schema 发布。

其他重要 commits / PRs(按重要性挑选):

  • #2499 feat(unstable-v2): disallow null request IDs (@benbrandt, 10-26)
  • #2498 fix(schema): require exactly one elicitation scope in v2 (@benbrandt, 10-26)
  • #2494 feat(unstable-v2): add type discriminator to available commands (@benbrandt, 10-26)
  • #2500 docs(schema): define receiver behavior for unknown v2 variants (@benbrandt, 10-26)——接收方遇到未知 v2 variant 该做什么,此前没有规定
  • #2497 docs(schema): define when session/set_config_option is available in v2 (@benbrandt, 10-26)
  • #2492 docs(protocol): clarify v2 session state synchronization (@benbrandt, 10-26)
  • #2485 docs(rfd): define per-turn, in-turn, subagent, and cumulative token usage (@EugeneTheDev)——四档 token usage 口径,是 ACP 至今最缺的计费可观测性
  • #2482 docs(rfd): report the model of each subagent (@nikita-ashihmin)——与 opencode 的 #59406「Expose subagent parentID in ACP session/list」是同一诉求的两个方向
  • #1987 docs (rfd): propose client-set session titles (@lifeizhou-ap) / #986 docs(rfd): session/status — session liveness check (@chazcb)——两份长期挂着的 RFD 本期落地
  • 其余 13 个合并 PR 全部是 registry / clients 名单更新与 dependabot 依赖升级(#2477、#2480、#2483、#2484、#2486–#2491、#2493、#2495、#2496、#2502)

社区讨论 / 行业方向:

信号观察:

  • 本期 22 个合并 PR、0 个新 issue、0 个新讨论——规范仓库的社区热度完全体现在 schema 与 RFD 上,而不是讨论区;open issues 从 37 降到 32。
  • v2 的动作全部是收紧与定义边界(null request ID 禁止、elicitation scope 唯一、类型判别符、未知 variant 的接收行为、set_config_option 的可用时机、session 状态同步语义),没有新增能力——v2 正在从「能跑通」转向「能互操作」。
  • 两份 RFD 都指向可观测性(token usage 四档口径、subagent 模型),这是 ACP 相对 MCP 的一次补位:MCP 管工具,ACP 开始管 agent 自身的运行开销与编排结构。
  • 全部 v2 变更仍在 unstable-v2 / alpha 线,最新稳定 schema 停在 2026-10-16 的 v1.26.0,距上次 schema 发布已 11 天。

yxc023/yxc023.github.io

本调研报告的发布载体(个人博客仓库)| stars: 1 | open issues: 27 | 默认分支: master | 最近 push: 2026-10-26T00:37:07Z | 主页: 无

近 N 周 release 重点:

  • 无 release。本期为自动同步提交:55fa29f auto(reports): 同步 daily-research 2026-10-26(杨晓辰(小德) & 再探再报,2026-10-26T00:37Z)。
  • 无新 issue、无新 PR。

社区讨论 / 行业方向:

  • 无公开讨论(issues 均为仓库自身遗留项)。
  • 窗口期内未检索到相关公开讨论。

信号观察:

  • 该仓库的唯一变化即本调研流水线的自动同步,说明上一期报告的部署链路(sync → commit → push → build → deploy)在本期开始时处于可用状态。

跨项目观察

  1. 「不可信输入」正在从各家零散 bug 上升为一个共同的架构假设变更。 pi 在一个 commit 里同时收掉 OAuth URL 协议、终端控制字符、contentIndex 越界、auth 文件权限、__proto__ 污染五类问题,用户侧同期报出 .pi/settings.json 指向 /dev/zero 挂死、session JSONL 0644、疑似恶意 npm 包三条同族 issue;opencode 则在校验 Bun zip 与 ripgrep 的 SHA-256、让发布在 catalog 校验失败时直接失败、并收到 Sigstore attestation 的要求。两家在同一天做的都不是「加一个检查」,而是把「外部输入默认不可信」写进了各自的构建与运行边界。

  2. 供应链可信性第一次成为开源 agent 项目的独立议题,而不是发布工程的副产品。 背景是 OpenCode 10 月中旬的 API key 泄露事件(约 1.4% Console 用户、已产生真实扣费);应对是哈希校验、发布即失败、要求签名证明三件套;同期 pi 升级 undici 跨过三条 advisory 区间,hindsight 把依赖升级与运行时修复交替推进。「agent 会自动执行下载来的二进制」这个 agent 时代特有的攻击面,正在被各仓库独立发现并各自加固——还没有形成跨项目的共同标准或工具。

  3. 免费额度的话题没有消失,而是换了性质:从计费机制争议变成版本与分发争议。 opencode 的额度类 issue 占比从 59% 降到 19.5%,维护者用 #59387 把它们收敛成一个汇总帖,并明确「v1 不再支持免费模型」;文档侧的事实是免费模型只能从 OpenCode 内部使用、Beam Free 限时且按地区封禁、额度以月度美元定义且只有 5 小时 / 周 / 月三档(没有用户期待的「每日重置」)。这意味着大量重复 issue 的根因既不在配额计算,也不在客服流程,而在「用户装的还是旧版」和「用户按错误的心智模型理解重置周期」。

  4. 抽象继续下沉,但两家方向相反。 pi 把 durable 与 chord 的边界重新划了一遍:watch API 统一到 Chord、retirement 从「结束」降级为「标志」、document watch 跟随地址而非实例、新增 deferred commit 与同步 observer、整包以 Breaking Changes 发布;opencode 反向收紧对外边界——#59183 用显式 public API 取代 "./*" 通配导出(约 220 个源文件曾是公开子路径),#59175 让 provider option 键从 settings schema 派生而非四份手写清单。一个是让内部机制统一到可被外部观察,一个是让对外接口不再泄露内部机制——共同点是「同一份语义只应有一个来源」。

  5. 多 provider 架构的欠债仍在被逐项偿还,且都由同一批人承担。 opencode 侧本期补回 cache.ttl(此前只有 provider 默认 5 分钟,OpenAI 的 30m / 12h / 24h 根本够不着)、typed Bedrock Converse options、LLM.loop、raw provider events、显式 public API、Kimi tool arguments 修正;pi 侧补回 GPT-6.1 Terra、修正 Kimi K3 系列错误使用 K2 请求设置(reasoning_effort、更早返回 reasoning、mid-conversation 加 tools、Moonshot 计费口径)。每一个 provider 的一个参数错位,都是一次「模型输出莫名其妙不对」的用户事故——这层债没有一次性还清的可能,只能逐个 provider 补。

  6. 模型发布节奏已经直接决定 agent 框架的发布节奏。 GPT-6.1 Terra 在同一天进入 pi(363ad78,三个 provider、官方定价、effort: "none" 支持、Codex 侧 500K context)与 opencode(ChatGPT 登录模型 + catalog 的 image / decision 端点)。同期 opencode 的 npm latest 与 GitHub Release 却连续 4 天未动——模型在动,框架的发版闸门在收紧,两件事在同一个仓库里相撞。

  7. 协作形态的分化在六个仓库里同时可见,且各自稳定。 ACP 靠一位维护者(benbrandt)与三个 bot 完成 22 个 PR 的规范推进,零 issue、零讨论;pi-web 连续 7 天零提交、外部 PR 与 issue 累计零回复,而 npm 上同类实现的总下载量已数倍于其 star 数;opencode 的贡献高度集中在 rekram1-node(本期 AI 层改动几乎全部出自其手)与 kitlangton(app 层),外部贡献(供应链校验、ripgrep 哈希、Sigstore 要求)以 issue 形式进入;hindsight 连续两期由 nicoloboschi 与 cdbartholomew 两人承担几乎全部修复。「人少但事定」与「人多但无人接」在同一周里各有一个标本。

  8. 一个品类的边界在本周被第三方划出来了:agent memory。 Hindsight 1.0 GA 承诺 API 稳定、Memlake 用 Rust 把记忆放进对象存储并宣称 1 亿条记忆 p99 < 100 ms,同周 Tencent 开源 TencentDB Agent Memory(本地 SQLite + 语义金字塔路线);墨天轮由此判断「agent memory 独立数据库品类成型」。但性能口径仍不可信:LongMemEval 榜单上 Hindsight 与 Mem0 的差距在小数点后一位,且第三方统计页明确标注这些是自报值、无人复现。

元信息

  • 报告生成时间: 2026-10-27T00:30:00Z
  • 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告 reports/latest.md 的 基准时间: 字段,自 2026-09-08 起连续 16 期未变)
  • 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-27T00:30:00Z(约 48.6 天);本期新增内容全部落在 2026-10-26T00:30:00Z 之后的约 24 小时
  • 数据源: GitHub API(gh CLI)+ mmx web search + 官方站点抓取(pi.dev/changelog、hindsight 官网 changelog、opencode.ai/docs/go 与 /docs/zen、npm registry)
  • API rate limit 剩余: 4927 / 5000(core,抓取完成后查询)
  • 抓取结果: 6 / 6 仓库 × 4 endpoint 全部成功(opencode 的 Discussions endpoint 返回 410「Discussions are disabled for this repo」,已跳过);本期增量统计口径为 since=2026-10-26T00:30:00Z 的 commits 列表,以及 GitHub search 的 created:>2026-10-26T00:30:00Z / merged:>2026-10-26T00:30:00Z 检索(opencode:50+ commit(commits endpoint 单页上限 50,实际合并 PR 82)、82 合并 PR、164 新 issue、177 新 PR;pi:9 commit(含 1 条 10-24 的 straggler)、4 合并 PR、30 新 issue、11 新 PR;pi-web:0 commit、0 合并 PR、2 新 issue、3 个外部 PR;hindsight:10 commit、10 合并 PR、18 新 issue、11 新 PR;ACP:22 commit、22 合并 PR、0 新 issue、21 新 PR;blog:1 commit);opencode 的 release notes 取自 GitHub Release v1.19.4、npm @opencode/cli latest 2.1.4(2026-10-23)与 dev 分支 CHANGELOG.md(V2 线 v2.1.4),两条发布线并存;pi 的 release notes 取自 GitHub Release v1.4.0、npm @earendil-works/pi-coding-agent 1.4.0 与 packages/{coding-agent,durable,chord,ai}/CHANGELOG.md 的 [Unreleased] 段;hindsight 无根级 CHANGELOG.md,release notes 取自 GitHub Release v1.1.0 与官网 changelog / 博客;ACP 取自 Rust Crate v1.12.0 与 Schema v1.26.0(2026-10-16)及 docs/rfds/ 下本期落地的两份新提案

评论