2026 2026年10月8日 28 min · 7.9k chars by yxc023

GitHub 调研周报 2026-10-08

扫描窗口:2026-09-08T09:23:29Z → 2026-10-08T00:32:36Z(约 29.6 天)| 基准来源:上次报告 2026-10-07

2026-10-08 GitHub 调研周报

扫描窗口:2026-09-08T09:23:29Z → 2026-10-08T00:32:36Z(约 29.6 天)| 基准来源:上次报告 2026-10-07

仓库范围:config/repos.yaml 中 6 个项目。本期最重要的外部事件是 Anthropic 于 2026-10-07 发布 Claude Haiku 5.5($0.10/MTok in、$0.50/MTok out、1M 上下文、128K 最大输出);它在本窗口内被同时接进两个 tracked 项目:pi 的 f76c1db feat(ai): add Claude Haiku 5.5(当天晚上随 v1.1.0 发布),opencode 的 65c47af / bd662d5 / 1bc3ce9(Console 全 Go 页面 + Zen / Go 模型表)。第二个事件是 pi v1.1.0(2026-10-07T22:26:31Z,距 1.0.0 仅 6 天),主轴是 OSC 7501 Program Status Protocol 回报、OpenAI Decisions / GPT-6 Luna 分类器、llama.cpp 原生 decision models、--tools 的 +name/-name。第三个事件是 vectorize-io/hindsight 单日 26 commit / 24 merged PR 的「consolidation 正确性 + provider 兼容性」硬修批次。pi-web 沉寂 5 天后单日 17 commit,主轴是 subagents 语义对齐与聊天区拖拽上传。

本期速览

  • earendil-works/pi v1.1.0 发布(2026-10-07T22:26:31Z):① Program status reporting via OSC 7501(503c605,Mario Zechner,closes #10607,由 @badlogic 提案,源自 Mitchell Hashimoto 的 Program Status Protocol)——支持该协议的终端 / agent 面板能直接看到 pi 是 working / blocked:question / blocked:permission / blocked:auth / done / error / idle,msg 永不含 prompt 或助手文本,PI_PROGRAM_STATUS=1|0 可强制开关;② --tools 接受 +name/-name(v1.0.4 加 glob 后再补 modifiers,pi -t +codemode,-write);③ Claude Haiku 5.5(f76c1db,prompt-length 分档 100k 以上、adaptive thinking 到 xhigh/max、Bedrock 上带 prompt caching);④ OpenAI Decisions 分类器 + GPT-6 Luna(ce8972a,bool 问题映射为 predicates,codemode models.classify() 接受 images);⑤ llama.cpp 0.6.0+ 的 Julia-1 / Laya / Kev / lev / OpenJev 走原生 /v1/systemone classifier,不再当 chat model 列举。
  • pi v1.1.0 的其余 20 余条修复集中在「长尾环境」:MCP OAuth 登录可 Esc 取消且 shutdown 不再空等 15s(#10565)、pi update 只保留新旧两个 release(#10392/#10511)、Anthropic 浏览器登录在 53692 被 Hyper-V/WSL 预留时回落自由 loopback 端口(#10571)、node --watch 下 Node 24.19+/26.x 的 { "watch:require": [...] } 消息被当成 worker 回包导致图片「could not be resized」(#10527)、Termux(process.platform === "android")剪贴板、跨 chunk 切断的 ANSI 序列残留(#10504)、Herdr 下的 OSC 8 超链接、prompt-length pricing tiers 在 opencode / google / minimax / OpenRouter / Vercel AI Gateway 等 catalog 丢失导致会话成本低估。
  • vectorize-io/hindsight 单日 26 commit(Nicolò Boschi 24 条 + Chris Bartholomew 2 条):consolidation 的事务与并发两条(#5420 一次 LLM 响应的全部写入进一个 SQL 事务 + 并发准备 actions;#5421 每个响应一次 liveness 读取 + WriteBatch.prefetch 批量预取)、worker 重启不再阻塞 claim(#5411,30K schema 下原来每次重启停 10–18 分钟)、structured-output schema 剥掉 numeric bounds(#5401,修 Bedrock Converse 拒绝 minimum/maximum 导致 131 个模型里 60 个 mental-model refresh 暂停)、retain 重问时明确告诉模型哪些 key 错了(#5402)、Qwen 3.8 的畸形 done 调用 / thinking 模式拒绝 tool_choice(#5356)。
  • Anthropic Claude Haiku 5.5(2026-10-07):Anthropic 最便宜最快的小模型,1M 上下文 / 128K 最大输出 / $0.10 per MTok in、$0.50 out;Reuters 称这是 IPO 前一个月内的第三次 Claude 5.5 系列更新(Opus 5.5、Sonnet 5.5 之后);Max / Team 计划新增每月 API 额度。pi 与 opencode 都在发布当天完成接入。
  • anomalyco/opencode 从「产品迭代」切到「变现基建」:24h 内 3 条非 docs commit 全在 Console 商业侧——b1fe25a capture monthly inference spend(#53637)、3865c69 proxy keyless Zen requests to new inference per model(#53717,把无 key 的 Zen 请求按模型代理到新的 inference 后端)、加上 f03046d list paid Space Bunny(#53486);同期 fix(stats): attribute exo usage to an unknown provider(#53621)与 fix(stats): show public specs for stealth models(#53381)继续打 stats 数据可信度。
  • agegr/pi-web 沉寂 5 天后回血 17 commit:① 拖文件进聊天区即可上传并 @mention(c3c5c6f,#1094,走 explorer 现有 POST /api/files/<cwd>?type=upload,conflict=skip 绝不覆盖同名文件,folder 明确不支持);② subagents 三连:profile 的 extensions: 列表只加载列出的扩展(#1091,与 pi-subagents 对齐)、profile 命名的 skills 预加载(#1034)、turn limit 与终态在 SDK 边界保持(#1093)。
  • agentclientprotocol/agent-client-protocol 24h 只有 registry 版本同步(4 条 acp-release-bot commit / #2320 #2322 #2324 #2325):claude-agent-acp 0.87.0、copilot-cli 1.0.93、kilocode 7.8.8、cline 3.0.69、sigit 1.6.3、另一条 2.162.0 / 0.235.0 / 1.0.50;没有新增 client,与上一期「每日 1+ 家新 client」形成反差。
  • 社区侧值得记的两条 pi 提案:@badlogic 的 issue #10624 pi-env(idempotent keyed exec、replay-safe bash、local daemon、TCP/HTTP forwarding、评估 iroh transport)直指 bash 标 replay: "unsafe" 导致「手机睡一觉、ssh 断 20 秒 → 进程组被杀 → 重开后只剩 interrupted ... may have partially run」;@mitsuhiko 的 PR #10577 in-context compaction(在已缓存的对话里生成摘要,toolChoice: none,需 model 验证 + 同 model/thinking level 的 warm cache + 成本估算更低,失败回落独立摘要)。
  • 跨项目共有信号:① 同一个外部事件(Haiku 5.5)在两个项目 24h 内落地,模型发布 → harness 接入的延迟已经压到小时级;② 「把内部状态暴露给外部程序」的协议化尝试——pi 的 OSC 7501 与 opencode 的 stats JSON/Markdown content negotiation 是同一件事的两面;③ provider 兼容性仍是 bug 的主要来源——pi 的 Mistral finish_reason: "error" 重试、hindsight 的 Bedrock schema allowlist / OpenAI-compatible relay 静默丢 response_format / Qwen 3.8,都是同一类「协议声明与实际行为不符」;④ registry 活动从「拉新 client」转向「同步已有 client 版本」;⑤ hindsight 单日 26 commit 里 24 条是 fix,是本窗口唯一一次「以修正确认为主」的批量提交。

各仓库详情

earendil-works/pi

AI agent 工具集:统一 LLM API、agent loop、TUI、coding agent CLI;MIT 许可。| stars: 113,186(上份 112,965,+221 / 24h) | open issues: 284 | 默认分支: main | 最近 push: 2026-10-07T22:23:27Z | 主页: https://pi.dev

近 N 周 release 重点:

  • v1.1.0(2026-10-07T22:26:31Z)— Program status(OSC 7501)+ Haiku 5.5 + Decisions 分类器 + --tools modifiers

    • Program status reporting(OSC 7501):支持该协议的终端与 agent 面板无需解析屏幕即可显示 pi 在做什么;状态映射 idle / working / blocked:question|permission|auth / done / error / clear,msg 只放 session 名、对话框标题或错误首行,绝不含 prompt 或助手文本;PI_PROGRAM_STATUS=1|0 覆盖自动探测;agent_settled 新增 aborted 字段,集成方能区分「被取消」与「正常完成」(#10607)。
    • --tools 支持 +name/-name:pi -t +codemode,-write 是在默认选择上增减,而不是整体替换。
    • Claude Haiku 5.5:anthropic/claude-haiku-5-5,adaptive thinking 到 xhigh/max,Bedrock 上带 prompt caching。
    • OpenAI Decisions classifier + 图像分类:openai-decisions API 带 gpt-6-luna(需 OPENAI_API_KEY,用 ChatGPT 登录时隐藏);codemode 的 models.classify() 接受 images,不支持图像的模型返回 error result。
    • llama.cpp 原生 decision models:llama.cpp ≥ 0.6.0 服务的 Julia-1 / Laya / Kev / lev / OpenJev 只作为 classifier 通过 /v1/systemone 列出,不再当 chat model(#10382)。
    • 其余 Added / Changed:durationMs 进入 tool render context 与 tool_execution_end 事件(#10549);outputPad 也作用于 ! 命令输出、tool 输出与 summary 块(#10557);pi mcp login --timeout 现在限制整个登录流程而不是只等浏览器。
    • 主要 Fixed:MCP OAuth 登录可随时 Esc 取消、会话结束即 abort、对 authorization server 的请求 15s 超时(#10565);shutdown 不再为一次即将过期的 token 空等 15s;pi update 只保留新 release 与被替换的那个(#10392/#10511);standalone binary 不再加载启动目录下的 .env*(#10473);codemode 的 searchTools() / describeTool() / describeNamespace() 标注 async,避免模型把未 await 的 promise 序列化成 {}(#10555);codemode 多段输出加 ==> text N/M <== 头并把 console 合并成 <console_output> 块;/mcp 不再等所有 server 连完才打开,可在启用 / 重连 / 禁用中保持可用(#10562);Termux 剪贴板粘贴(#10391);跨 chunk 的 ANSI 序列清理(#10504);fullscreen 选区在 transcript rebuild 后不再高亮无关文本(#9311/#10567);Bedrock 上的 OpenAI 模型此前忽略 thinking level(#9331/#10142);server_busy / servers are currently busy 与 Mistral finish_reason: "error" 现在会重试(#10543/#10487);请求上下文按 3.5 字符 / token 估算(#10497);Anthropic 浏览器登录回落自由端口(#10571);prompt-length pricing tiers 在多个 catalog 丢失导致长 prompt 成本低估;Herdr 下 Markdown 链接不可点(#10573)。
    • 完整 release notes: https://github.com/earendil-works/pi/releases/tag/v1.1.0
  • v1.0.4(2026-10-05T22:03:50Z)与 v1.0.3(2026-10-05T08:38:23Z)已在 2026-10-05 / 10-06 两份报告覆盖(--tools glob、--no-mcp、codemode image block、Azure provider 重命名、Foundry Chat Completions 等)。

其他重要 commits / PRs(24h 内 23 条,按重要性挑选):

  • 503c605 TUI/coding-agent:通过 OSC 7501 回报程序状态 — feat(tui,coding-agent): report program status via OSC 7501(Mario Zechner, 2026-10-07,closes #10607)。ProcessTerminal 在 DA1 之前发支持探测并等终端回答;agent_settled 带 aborted,取消的 run 回报 idle。
  • ce8972a AI/coding-agent:新增 OpenAI Decisions 分类器与分类器图像 — feat(ai,coding-agent): add OpenAI Decisions classifier and classifier images(Armin Ronacher, 2026-10-07)。bool 问题映射为 predicates、criteria 写进 instructions,refusal 判失败,gateway 504 不重试。
  • f76c1db AI:新增 Claude Haiku 5.5 — feat(ai): add Claude Haiku 5.5(Armin Ronacher, 2026-10-07)。prompt-length 分档(>100k input)、per-message effort、会话中途 system message 与工具变更;Bedrock 请求识别 Haiku 5.5 以启用 adaptive thinking / native xhigh / block binding / prompt caching。
  • f10993b coding-agent:MCP OAuth 登录可取消、关闭后不再刷新 — fix(coding-agent): cancel MCP OAuth sign-ins and stop refreshing on close(Armin Ronacher, 2026-10-07,closes #10565)。每个 session 一个 signal,Esc 即 abort;被 abort 的 refresh 不再回落成新的授权。
  • 2db5e35 coding-agent:MCP manager 保持可用 — fix(coding-agent): keep MCP manager responsive(Armin Ronacher, 2026-10-07,closes #10562)。启动连接未完成前就打开 manager,reconnect / replace 串行化。
  • 943a10e + a2eef9e AI:定价元数据修正 — 多个 catalog(opencode、opencode-go、google、minimax 等)改走 getModelsDevCost 以保留 prompt-length tiers;Kimi K3 的 Moonshot 输入价被 models.dev 误列为 cache write 成本,已 pin 回去(Armin Ronacher, 2026-10-07)。
  • 8d8ae2f AI:Anthropic OAuth 回调回落自由端口 — fix(ai): fall back to a free port for Anthropic OAuth callback(Mario Zechner, 2026-10-07,closes #10571)。先试 53692,绑不上(Hyper-V/WSL 端口排除)则让 OS 选端口,authorize URL / paste prompt / token exchange 都用实际绑定的 redirect URI。
  • b30a6dd coding-agent:node --watch 下图片 resize 误丢图 — fix(coding-agent): ignore Node's own worker messages in image resize(David Brailovsky, 2026-10-07,fixes #10527,引用 nodejs/node#65044)。worker 回包加 type 标记,主线程忽略无标记消息。
  • 1cedd32 TUI/coding-agent:showHardwareCursor 时只用终端光标 — feat(tui,coding-agent): use only the terminal cursor when showHardwareCursor is enabled(Armin Ronacher, 2026-10-07)。修终端把边缘 cell 背景色延展到窗口 padding 导致首列 / 末列光标被拉长。
  • b236384 TUI:Herdr 识别为支持 OSC 8 超链接 — fix(tui): detect Herdr as supporting OSC 8 hyperlinks(Mario Zechner, 2026-10-07,closes #10573)。Herdr 在 outer-terminal 检测之前判定,避免泄漏的 KITTY_WINDOW_ID 在 Herdr pane 里打开图像协议。
  • 592fb57 / 27c7b6f coding-agent:Termux(process.platform === "android")剪贴板读取与粘贴(#10391);用户 bash 输出跨 chunk 的 ANSI 序列清理(#10504)——均由 David Brailovsky 提交。
  • abe508e + dce4ae6:发布流程本身改了——chore: allow skipping tests in the release script、docs: audit changelogs for v1.1.0(Armin Ronacher, 2026-10-07)。

未合并的 open PR / issue(24h 内更新):

  • #10624 pi-env: idempotent exec, replay-safe bash, local daemon, TCP forwarding, iroh transport(badlogic,issue,2026-10-07)——bash 现为 replay: "unsafe",daemon 在连接结束时会杀掉自己拉起的整个进程组;提案用 exec { key, ... } 让同 key 的重复请求 attach 到同一个 job,换 spec 同 key 直接 EINVAL。
  • #10577 feat(coding-agent): add in-context compaction(mitsuhiko,open,2026-10-06)——在已缓存的对话里生成摘要:重复下一轮本会发的请求,追加 system + user 指令并设 toolChoice: none;gate 要求 model 已验证、同 model/thinking level 的 warm cache、上下文有空间、估算成本更低;失败或被拒一律回落独立摘要,绝不执行工具。
  • #8307 feat(coding-agent): enable experimental cache-friendly compaction(vegarsti,updated 2026-10-07)——与 #10577 同题的另一条实现路径。
  • #10590 Host-provide @earendil-works/pi-mcp to extensions (VIRTUAL_MODULES + host guard)(georgeharker,open)。
  • #10569 filter OpenRouter models by key availability(adawalli,open);#9880 publish configuration schemas(christianklotz,open);#10600 honor Retry-After delays in agent-level retry(autopeasant,open)。
  • 其它 open issue:#10624 之外,#5570(--no-skills / project 级 skill 行为)、#10480(直连 OpenAI 不认手工设置的使用量重置)、#9602(compaction 可能把早前请求里省略的 thinking message 也纳入而溢出)、#10380(read 未校验 limit 时产生负数 / 小数 offset)、#10267(before_agent_start 贡献的 prompt 在无用户 prompt 的 run 上被丢弃并重复计费)。

社区讨论 / 行业方向:

信号观察:

  • OSC 7501 是「harness 主动报告自己状态」的第一次协议化尝试:此前 agent 只能靠解析屏幕或 window title 让外部知道自己在忙;现在 pi 把 turn / compaction / 对话框 / 登录 / 完成 / 失败映射成结构化状态码。对做 agent inbox、状态栏、IDE 集成的第三方来说,这是一个不依赖私有 API 的稳定抓手。
  • --tools 在 6 天内完成三段式演进:v1.0.4 glob(单家 MCP 工具)→ v1.0.x +name/-name(在默认集合上增减)→ 语义完整,等价于 package.json 的 dependencies 语义。
  • 分类器正在从「文本模型的小把戏」变成一类独立 model 形态:一次 release 内同时接入 OpenAI Decisions(GPT-6 Luna)和 llama.cpp 0.6.0 的 decision models(Julia-1 / Laya / Kev / lev / OpenJev),且 codemode 的 models.classify() 直接接受 images——分类被当成 agent loop 里的一等调用,而不是提示词技巧。
  • 成本元数据的准确性开始影响用户可见数字:Claude Haiku 5.5 / Gemini 3.1 Pro / GPT-5.4 这类带 prompt-length 分档的模型,如果 catalog 丢掉分档,session cost 会系统性低估;943a10e 把这件事从「每个 loader 手写」改成统一走 getModelsDevCost。

anomalyco/opencode

开源 coding agent:TypeScript / Bun,单仓多 target(CLI / Desktop / TUI / ACP server / Web);MIT 许可。| stars: 212,209(上份 212,048,+161 / 24h) | open issues: 6,248 | 默认分支: dev | 最近 push: 2026-10-08T00:26:00Z | 主页: https://opencode.ai

近 N 周 release 重点:

  • 窗口期内无新 release;最新仍是 v1.18.35(2026-10-06T20:18:39Z,已在 10-06 / 10-07 报告覆盖):canonical redirects + JSON / Markdown 数据格式的 agent-readable stats;xAI tool result 现在带受支持的图片、不支持的格式跳过。

其他重要 commits / PRs(24h 内 6 条,其中 3 条非 docs):

  • 3865c69 Console:无 key 的 Zen 请求按模型代理到新的 inference 后端 — feat(console): proxy keyless Zen requests to new inference per model(Victor Navarro, 2026-10-07,#53717)。免费 / 匿名模型入口从「共用一个后端」变成「按模型各自代理」。
  • b1fe25a Console:记录每月 inference 花费 — feat(console): capture monthly inference spend(Stefan Avram, 2026-10-07,#53637)。
  • 65c47af / bd662d5 / 1bc3ce9:Haiku 5.5 上线后同日内补进 Console 全 Go 页面与 Zen / Go 模型表(Frank, 2026-10-07)。
  • ecc4916 fix(stats): attribute exo usage to an unknown provider(Daniel Chen, 2026-10-06,#53621);3f393d7 fix(stats): show public specs for stealth models(bot,#53381);f03046d feat(go): list paid Space Bunny(Jack, #53486)。
  • a697115 chore: generate(opencode-agent[bot],2026-10-07)——v2 分支的生成物同步。
  • 24h 内合入的 PR:#53825 animate segmented control with solid-motion 并修 button hit-testing(kitlangton)、#53422 fix(cli): give plugins the host's Effect(kitlangton)、#53815 show latest thinking summary heading while streaming(Hona)、#53819 fix(core): drop early guarded plugin activation(rekram1-node)。

社区讨论 / 行业方向:

信号观察:

  • 24h 内 6 条 commit 里 3 条是商业基建(spend 记录、keyless 代理、付费模型上架),0 条是核心 agent 能力——与 10-06(Office 预览 / reasoning replay 修复)那种「产品力 burst」形成对比,opencode 的开发重心在 v1.18.x 上已偏向 Console 与 Zen / Go 的运营侧。
  • stats 数据可信度被连续修补:exo 用量归因、stealth 模型的公开规格、agent-readable 的 JSON / Markdown 内容协商,三件事都指向同一个诉求——让聚合数据能被外部(含 model 自身)验证。

agegr/pi-web

pi coding agent 的 Web UI;TypeScript / Next.js,读取本地 pi session JSONL。| stars: 7,145(上份 7,117,+28 / 24h) | open issues: 78(上份 97,−19) | 默认分支: main | 最近 push: 2026-10-07T13:45:38Z | 主页: https://github.com/agegr/pi-web

近 N 周 release 重点:

  • 窗口期内无新 release;最新仍是 v0.10.0(2026-10-02T16:57:33Z,已在 10-02 报告覆盖):完整 MCP 支持 + 升级到 pi 1.0;MCP 服务器管理在「设置 › MCP」,支持测试连接 / OAuth 登录退出 / 开关 / 删除(可撤销)/ 工具暴露方式(code mode / tool search / direct / hidden);code mode 提示词约少 40%,脚本可 models.generateImages();只读会话下未标记只读的 MCP 工具会被拦截。

其他重要 commits / PRs(24h 内 17 commit / 20 个 closed PR,按重要性挑选):

  • c3c5c6f Chat:把文件拖进聊天区即上传并 @mention — feat(chat): drop files onto the chat to upload them and mention them(Alex Yang, 2026-10-07,#1094)。走 explorer 已有的 POST /api/files/<cwd>?type=upload;conflict=skip——拖拽从不覆盖文件,重名文件仍会被 mention 并提示指向已有文件;图片照旧附加到 prompt,文件夹明确不支持;uploadFiles() 从 FileExplorer 抽到 lib/file-upload-client.ts 供两边共用。commit 注明是 #1065 的轻量实现(不新增 endpoint、不复制文件夹、不改名)。
  • 17bbadb Subagents:profile 的 extensions: 只加载列出的扩展 — feat(subagents): load only the extensions a profile's extensions: list names(Alex Yang, 2026-10-07,#1091)。此前 extensions: [codegraph] 会加载全部扩展,extensions: none 也是;新增 scopeSubagentExtensions()(extensionsOverride)与 pi-subagents 对齐,只用公开 loader 选项,reload 时 SDK 会重新施加。
  • 496611c Subagents:turn limit 与终态在 SDK 边界保持 — fix(subagents): keep turn limits and terminal outcomes at the SDK boundary(Alex Yang, 2026-10-07,#1093)。finishTurn 返回 end 却没有停止 run(AgentSession 会为排队消息再起一次 run),导致 parent 在收尾 turn 里 steer 会多打一次模型调用;现在 limiter 会清队列、把消息列进 turn-limit 错误并拒绝此后的 steer_subagent。
  • 5d5a69e Subagents:按 profile 预加载命名的 skills — feat(subagents): preload named skills from profiles(acniray, 2026-10-07,#1034)。skills: 解析更宽松:空值 / 尾逗号 / 空或非字符串项以前会让 profile 整个抛异常、从 Agents 面板里消失;现在空项被丢弃,空值表示无列表,true/all/none/false 仍是开关写法,load_skills: false 恢复为 pi 的 noSkills。
  • fdeea87 Shell:移动端 resize 后恢复桌面侧边栏状态(#1059,xuzijian2019);9182fdf Chat:模型调用之间刷新 context 用量(#1058);e2ea7da Markdown:主题切换时保留代码块背景色(#1060);81e5b03 Markdown:长表格单元格换行而不挤压宽表(#1056,uvforce)。
  • 7aaeff9 Models:models-only provider 保留 catalog API 协议(#1050);1ddaf11 上传失败时保留文件并鉴权 git diff 目标(#1039);80cd55e Perf:侧边栏 SMIL spinner 换成对合成器友好的 CSS 动画(#1042);1333c80 Chat:状态栏显示扩展命令按钮(#1030);981e270 Chat:扩展对话框与自定义面板可调宽(#1032,修复 #947);038057f 把 write() 工具内容渲染成可读文件文本(#1024);99b2c3f docs:扩展的行为必须与 pi CLI 中一致。

社区讨论 / 行业方向:

  • @agegr/pi-web 0.10.0(NewReleases.io)——第三方镜像的 v0.10.0 说明,MCP 支持与 pi 1.0 升级是主线。
  • pi.dev 上的 @versot/pi-web——第三方 fork 已作为 pi package 出现在 pi.dev package 页,说明 pi-web 的 UI 层正在被拆分复用。
  • 仓库 Discussions 侧 24h 无新讨论;最近的 Ideas 是 Desktop-style launcher for Pi Web(2026-10-02),以及 9/29 关于 subagent 插件「主 agent 不调用 get result 工具导致长 loop 结束才收到结果通知」的反馈。

信号观察:

  • pi-web 与 pi-subagents 在 subagents 语义上持续对齐:#1091(extensions: 列表语义)与 #1034(skills: 宽松解析)都写明「和 pi-subagents 读同一份 profile 文件,所以按它的行为来」——Web UI 已经成为第三方扩展语义的参考实现之一。
  • open issues 从 97 降到 78(−19),同期 24h 合入 17 个 commit;issue 清理速度明显快于新增,仓库健康度在本窗口内最好。

vectorize-io/hindsight

Agent 记忆系统:retain / recall / reflect 三大能力 + 本地嵌入式 hermes / embed;MIT。| stars: 46,815(上份 46,321,+494 / 24h,本窗口增速最快) | open issues: 148(上份 136,+12) | 默认分支: main | 最近 push: 2026-10-07T23:14:25Z | 主页: https://hindsight.vectorize.io

近 N 周 release 重点:

  • 窗口期内无新 release;最新仍是 v0.10.2(2026-09-29T10:06:40Z,已在 09-29 / 10-06 报告覆盖):per-scope consolidation strategies、bank aliases(id 变更零停机)、每个 mental model 的 refresh 预算、多模态 dry-run extraction、streamed exports、ONNX embeddings 的 CUDA 支持,以及一长串可靠性修复。

其他重要 commits / PRs(24h 内 26 commit / 24 merged PR;按重要性挑选):

  • ddc660b Consolidation:一次响应的写入进一个 store batch,actions 并发准备 — fix(consolidation): apply one response's writes as one store batch, and prepare its actions concurrently(Nicolò Boschi, 2026-10-07,#5420)。consolidation 把一个 LLM 响应决定的一切放进一个 SQL 事务,但写入是独立调用的 store 从来看不到这个事务;新增 MemoriesExtension.begin_write_batch(bank_id) 返回 WriteBatch(commit/abort,默认 no-op)告诉 store 哪些写属于同一批;每个 action 的准备(liveness preflight、embedding、dedup probe、verdict)改为并发,顺序仍保留。
  • fb11ddf Consolidation:读一次响应的全部 sources 再落盘 — fix(consolidation): read a response's sources together before applying it(Nicolò Boschi, 2026-10-07,#5421)。每响应一次 liveness 读取取代 per-action preflight;WriteBatch.prefetch(unit_ids)(默认 no-op)预先点名这次响应会读到的全部 memory。
  • a77c1f3 Worker:启动恢复放后台,重启立即 claim — fix(worker): run startup recovery in the background so restarts claim at once(Nicolò Boschi, 2026-10-07,#5411,修 #5407)。worker 原本要在 claim 任何东西之前遍历所有 tenant schema 恢复自己的 stale 行:约 30K schema 下每次重启有 10–18 分钟不处理;现在恢复与 polling loop 并行,worker id 跨重启稳定(StatefulSet pod 名),只碰 claim 时间早于本次起点的行。
  • 7808a44 LLM:剥掉所有 provider structured-output schema 里的 numeric bounds — fix(llm): strip numeric bounds from every provider structured-output schema(Nicolò Boschi, 2026-10-07,#5401,修 #5275)。Field(ge=1, le=6) 被序列化成 minimum/maximum 原样发给 provider,而 Bedrock Converse 的 schema allowlist 直接拒绝——131 个模型里有 60 个 mental-model refresh 因此暂停。bounds 在链路上本来没用(Pydantic 在响应回来后自己校验),所以在 provider_json_schema / strict_json_schema 里统一剥掉。
  • dc3093f Retain:重问时告诉模型哪些 key 错了 — fix(retain): tell the model which keys it got wrong, instead of asking again identically(Nicolò Boschi, 2026-10-07,#5402,修 #5280)。接受 response_format 却静默丢弃它的 OpenAI-compatible relay 会自己发明一套 schema,抽取器要 what 它给 subject/predicate/object,每次事实全被丢弃;四次一样的答案、四次一样的丢弃,最后 500 且什么都没存。重试现在带上「模型用了哪些 key、schema 要求哪些 key」,且放在 USER turn(实测这些 endpoint 还会丢或截断 system message)。
  • ea5ab30 Reflect:扛住 Qwen 的畸形 done 调用 — fix(reflect): survive Qwen's malformed done calls; stop delta refresh overwriting from the batch synthesis(Nicolò Boschi, 2026-10-07,#5356,修 #5272)。Qwen 3.8 在 thinking 模式下拒绝强制 tool_choice,每次 reflect 都在第一次强制检索调用上失败;它还会在文档外错关括号(block list 用 "} 而不是 "]}),provider 于是把 arguments 留成 {"_raw": ...}。改动包括:endpoint 拒绝 tool_choice 时无 tool_choice 重试、用与 completed-finish_reason 相同的修复闸门解码、修不了就重问、delta refresh 不再用 batch synthesis 覆盖。
  • 5f6392d Recall:超 cap 的 query 截断而不是 400 — fix(recall): cut an over-cap query instead of rejecting it with HTTP 400(Nicolò Boschi, 2026-10-07,#5388)。HINDSIGHT_API_RECALL_MAX_QUERY_TOKENS 让 REST recall 直接 400,而内部调用在引擎入口截断;按字符截断的客户端(coding-agents 插件发 2000 字符)压不进 token 上限——代码每字符装的 token 比散文多。
  • b5ec06b Retain:chunked retain 被 kill 时取消在飞的 sub-batch — fix(retain): cancel in-flight sub-batches when a chunked retain is killed(Nicolò Boschi, 2026-10-07,#5387,修 #5372);取消时 unwind 中抛异常的 slice 没被 retrieve,asyncio 会打 Task exception was never retrieved。
  • 8facc90 Retain:store-owned append 以文档 content hash 为条件(#5389);6a9fa03 Control-plane:recall proxy 返回 source_facts 与 source_facts_truncated(#5410,修 #5300);b8483e4 Import:模板重新 import 时跳过未变的 mental model 与 directive(#5404);169ddaa Refresh:临时 provider 故障不再暂停知识页刷新(#5399);9dff2a3 DB:[DB POOL] slow-acquire 警告阈值可配(#5397);5716c3f Entities:trigram probe 不低于 merge floor 就绝不跑(#5395)。
  • Chris Bartholomew 两条:d80b548 chore: default Gemini Flash model to gemini-3.8-flash(#5364);7e7427b fix(retain): report processed content tokens for oversized re-retains(#5365)。
  • 文档侧:46a5746 homepage 按来源把 coding-agent / assistant 访客分流(#5390)、22d916f 在 docs 侧栏与 blog 索引置顶精选文章(#5403)、65c92ba 用 Giotto 替换 hindsight-interfig 的文档插图(#5386)、bedd3ee 给 Agno 集成页链上 changelog(#5303)。

社区讨论 / 行业方向:

信号观察:

  • 这 26 条 commit 里有 24 条是 fix,且高度集中在两类根因:LLM provider 行为与协议声明不符(Bedrock schema allowlist、OpenAI-compatible relay 静默丢 response_format、Qwen thinking 模式拒绝 tool_choice、Qwen 畸形 JSON)与 规模放大后原设计撑不住(30K schema 的启动恢复、一响应一事务、每 action 一次 preflight 读)。
  • provider 兼容性问题开始有跨项目共振:pi 这边是 Mistral finish_reason: "error"、Bedrock 上的 OpenAI reasoning effort、models.dev 定价元数据;hindsight 这边是 Bedrock schema、relay 的 response_format、Qwen tool_choice——两家本周都在同一类坑上打补丁,且都选择在「序列化边界统一处理」而不是「每个模型单独修」。
  • +494 stars / 24h 是本窗口六个项目里最高的,同时 open issues +12——关注度上升带来了更多 issue 输入,与那 24 条 fix 的性质吻合(多为真实部署反馈)。

agentclientprotocol/agent-client-protocol

Agent 与 Editor 之间的协议(ACP);Rust crate + JSON schema 双轨;Apache-2.0。| stars: 4,388(上份 4,381,+7 / 24h) | open issues: 48 | 默认分支: main | 最近 push: 2026-10-07T22:07:00Z | 主页: https://agentclientprotocol.com

近 N 周 release 重点:

  • 窗口期内无新 release;最近一批仍是 v1.10.2 / schema-v1.24.1 / schema-v2.0.0-alpha.7(2026-10-01T13:16:02Z ~ 2026-09-30T15:53:47Z,已在前几份覆盖):schema-v1.24.0 引入 subagents 的初版 RFD 与 schema(#1992)并让 MCP-over-ACP 变成 request-scoped(#2223);schema-v1.24.1 允许 MCP response extensions(#2265)。

其他重要 commits / PRs(24h 内 4 条,全部为 registry 版本同步):

  • 2797d33(#2325)docs: update registry agents——含 2.162.0;74e5ae1(#2324)含 claude-agent-acp 0.87.0、copilot-cli 1.0.93、kilocode 7.8.8;4d75b46(#2322)含 cline 3.0.69 与 0.235.0;a98518c(#2320)含 sigit 1.6.3 与 1.0.50。均由 acp-release-bot[bot] 提交。
  • 窗口内无协议变更类 PR——上一期的 subagents cancel 语义 RFD(#2308)与 structured text 格式协商 RFD(#2314)仍是协议侧最新动向。

社区讨论 / 行业方向:

信号观察:

  • registry 活动模式切换:上一期是「每日新增 Threadlines / Raven / CallBro / AgentDeck 等多家新 client」,本期 4 次同步全是已有 client 的版本号跟进(claude-agent-acp、copilot-cli、kilocode、cline、sigit),没有新名字进入。这更像「协议已被默认客户端接受、进入常规版本维护期」的节奏,而非扩张期。
  • 协议演进暂时停在 RFD 层:subagents 取消语义(#2308)与 structured text 格式协商(#2314)都还是 RFD / open PR,schema 版本停在 v1.24.x——v1 的 wire contract 在本窗口内没有实质变动。

yxc023/yxc023.github.io

个人技术博客(Astro);本仓库作为 daily-research 报告自动同步的目标。| stars: 1 | open issues: 27 | 默认分支: master | 最近 push: 2026-10-07T00:40:56Z | 主页: https://yxc023.github.io

近 N 周 release 重点:

  • 窗口期内无 release。

其他重要 commits / PRs:

  • 6e8b697 auto(reports): 同步 daily-research 2026-10-07(@yxc023,2026-10-07T00:40:56Z)——上一份报告的自动同步,deploy pipeline 与 daily-research 的衔接正常。

社区讨论 / 行业方向: 暂无(个人博客站)。

信号观察:

  • 自动同步流程连续正常:2026-10-07 的报告已同步并推送,daily-research → blog 仓库的自动化链路无中断。

跨项目观察

  • 同一个外部模型事件在两个项目 24h 内落地:Anthropic 2026-10-07 发布 Claude Haiku 5.5,pi 的 f76c1db 当天接入并随 v1.1.0 发布,opencode 的三条 commit 当天补进 Console 与 Zen / Go 模型表。从模型发布到 harness 适配的延迟已压到小时级,「provider 支持」不再是周级事项。
  • 「让外部程序知道 agent 在干什么」正在协议化:pi 的 OSC 7501 Program Status(结构化 idle / working / blocked / done / error,且明确不泄漏 prompt 与助手文本)与 opencode 的 stats canonical redirects + JSON / Markdown content negotiation(v1.18.35)是同一件事的两端——一个对外暴露运行时状态,一个对外暴露用量数据,两者都不依赖解析私有输出。
  • provider 兼容性 bug 是本窗口两大项目的共同主因:pi(Mistral finish_reason: "error" 不重试、Bedrock 上 OpenAI 模型忽略 thinking level、models.dev 定价元数据把 cache write 价当 input 价)与 hindsight(Bedrock 拒绝带 minimum/maximum 的 structured-output schema、OpenAI-compatible relay 静默吞 response_format、Qwen 3.8 thinking 模式拒 tool_choice、Qwen 畸形 done JSON)。两家本周都选择在序列化 / 反序列化边界统一处理(pi 的 provider_json_schema、hindsight 的 strict_json_schema 与 completed-finish_reason 修复闸门),而不是逐模型打补丁——这个修法值得作为其它 harness 的参考。
  • agent 的分类能力被单独立为一类 model 形态:pi 一次 release 内同时接入 OpenAI Decisions(GPT-6 Luna,bool 问题→predicates)与 llama.cpp 0.6.0+ 的 decision models(Julia-1 / Laya / Kev / lev / OpenJev),并让 codemode models.classify() 直接吃图像;hindsight 侧则把 Jev 作为 reranker 用过(0.10.1)。两边的共同点是分类结果的结构化程度比文本更重要。
  • subagents 语义正在被多方独立实现反向对齐:pi-web 的 #1091 / #1034 明确以 pi-subagents 的 profile 行为为准;ACP 把 background subagents 的 cancel 语义写进 RFD(#2308,上期);opencode v2 有 add subagent context forks 的 PR 在列。子代理的 profile、取消、上下文分叉这三件事,正在同时出现在协议层与 UI 层。
  • 开发重心的分布差异明显:hindsight 24h 26 commit 里 24 条是正确性 fix(面向已部署规模),pi 23 commit 里一半是长尾环境 / TUI 打磨(面向终端与平台差异),opencode 只有 6 commit 且过半是商业基建。三种节奏对应三种阶段:成熟度追赶、单点打磨、商业化收口。

元信息

  • 报告生成时间: 2026-10-08T00:32:36Z
  • 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告 reports/latest.md 的 基准时间: 字段)
  • 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-08T00:32:36Z(约 29.6 天)
  • 数据源: GitHub API(gh CLI)+ mmx web search
  • API rate limit 剩余: 5000

评论