2026 2026年10月4日 29 min · 8.1k chars by yxc023

GitHub 调研周报 2026-10-04

扫描窗口:2026-09-08T09:23:29Z → 2026-10-04T00:30:48Z(约 25.6 天)| 基准来源:上次报告 2026-10-02

2026-10-04 GitHub 调研周报

扫描窗口:2026-09-08T09:23:29Z → 2026-10-04T00:30:48Z(约 25.6 天)| 基准来源:上次报告 2026-10-02

仓库范围:config/repos.yaml 中 6 个项目。窗口期最大事件仍在上份报告已经覆盖的 Pi 1.0 stable 与 ACP v1.10 + schema-v2 alpha.7;本期新增核心信号是 earendil-works/pi v1.0.1 收尾(2026-10-03,Nix flake / 项目级 MCP 覆盖 / MCP OAuth CIMD / Anthropic 中段 inline tool 重定义 保 cache)、agegr/pi-web v0.10.0 上 pi 1.0(2026-10-02,Settings › MCP 全面接管 + 升级到 pi 1.0),以及 ACP v2 在 session/prompt 后用 state_update 上报错误(PR #2281,Ben Brandt, 2026-10-02)+ hindsight 跨实例整库迁移(PR #1953,2026-10-03)补齐 “agent runtime 持久化” 最后一公里。

本期速览

  • earendil-works/pi:v1.0.1(2026-10-03)—— 4 项新功能(Nix flake nix run github:earendil-works/pi/stable、oauth.clientRegistration: "cimd"(Client ID Metadata Documents)、pi.registerToolRenderer() 给未注册的 MCP tool 也能渲染、Cloudflare Clef / Clef-Flash 分类器进 codemode);项目级 MCP 覆盖:.pi/mcp.json 不带 command / url 的条目只覆盖 enabled / exposure / toolExposure,/mcp 可在当前项目一键开关;**Anthropic mid-conversation tool 改为 inline 定义**——同一名字重定义保留 prompt cache 而不重发整张工具表**;**pi update 推荐从 npm 全局迁移到 managed installer(npm shrinkwrap 移除)**;**Codemode 脚本输出加 16 Mi 字符 / 100000 item 上限**(#10283),防止 print 循环 OOM host;brace-expansion` 钉到 5.0.12(GHSA-q2hr-2g5m-vwhr 等 3 个 CVE,#10288);Kitten / WezTerm / Ghostty / Warp 的非 PNG 图片正常显示(#10292)。
  • agegr/pi-web:v0.10.0(2026-10-02)—— 本期最大 release:把 pi 1.0 的 MCP 与 codemode 全部上 web 端。Settings › MCP 全面接管(粘贴 install 命令 / JSON / OAuth 一条龙,工具暴露方式选 codemode / tool-search / direct / hidden,test / OAuth 登录退出 / 开关 / 删除可撤销);codemode 在 settings 里独立控制(Auto / Always on、是否接管内置工具、tool list budget);只读会话拦截未标 readOnlyHint 的 MCP 工具;信任对话框列出 .pi/mcp.json 服务器与它们会运行的命令;运行中可 fork 会话、调整 reasoning level;侧边栏可在系统文件管理器中打开工作区;默认 cwd 按本地日期 ~/pi-cwd/YYYYMMDD;/mcp 命令直接打开 Settings › MCP。
  • agentclientprotocol/agent-client-protocol:PR #2281(Ben Brandt, 2026-10-02,merge)—— v2 的 session/prompt 在消息被插入会话后立即响应,错误无法再走 prompt 响应回报;补一个 idle state_update + stopReason: "error" + 可选 JSON-RPC error 字段承载”前台失败”语义;StopReason 改成 tagged union by stopReason 并 flatten 进 idle update,v1↔v2 桥接无损。PR #2276 v2 migration guide 增加 terminal auth methods 段;window 内共 7 次 update registry agents 自动 bot commit(agent 生态继续扩张)。
  • vectorize-io/hindsight:PR #1953(Nicolò Boschi, 2026-10-03,merge)—— whole-bank export / import 落地:源实例 hindsight-admin export-bank --bank my-bank --output my-bank.zip [--include-history]、目标实例 hindsight-admin import-bank --archive my-bank.zip;archive 装 docs / facts / observations / bank config / mental models / directives / webhooks,永不打包 embedding(目标端用新模型重 embed),不触发 webhooks / 不重跑 consolidation(迁移 = 还原,不是再生);BACKUP_TABLES 分类为 logical / carried / history / skipped,未来新增表必须归类才能过 CI。配合 v0.10.2 的 bank alias + rename + clone,Hindsight 完成 “bank 是可搬移、可重建、可演进对象” 的完整闭环。PR #5129 给 metrics 加 opt-in memories_backend label;PR #5091 批量导入文档并在 import-bank 崩溃时干净重试。
  • anomalyco/opencode:窗口内无 release(最近 v1.18.34 已在上份报告覆盖);v2 stack 收尾:#47144 / #47147 / #47148 / #47150 / #47152 全部合并(plugin panel slots 渲染 diffs,PR #47152 by @jlongster 是最后一块);PR #47107 by @everest-an 新增 task-parallel 工具:primary agent 把 2–5 个独立子任务并发 fan out 到独立 subagent session,wall-clock ≈ 最慢那个;PR #44535(@internetisalie)修了 phantom unknown tool parts(~21% 的 tool-part event 是 opencode 自己造的”假”事件,#33618);PR #47130 skill 发现改用 depth-1 glob 并保留 n deps;PR #50101 等 provider 调度重试窗口;Console 继续收尾 S3 数据湖下线 + canonical redirects(#52525/#52514/#72515)。
  • earendil-works/pi 其他重要 commits:#9776 samplingParamsByThinkingLevel(@mrexodia,2026-10-03 merge)—— 同一模型不同 thinking level 可各配 temperature / top_p / top_k / min_p / presence_penalty / repetition_penalty,cherry-pick 了 #9505 并修了 responses stream 的同类问题;70eceaa fix(durable): persist provider session identities(Mario Zechner, 2026-10-03)—— pi-durable 现在把 provider 的 session id 持久化下来,重启后还能续聊;49b9df4 把默认 NVIDIA 模型从已下架的 nvidia/nemotron-3-super-120b-a12b 改到 Nemotron 3 Ultra。
  • yxc023/yxc023.github.io:8bf065b auto(reports): 同步 daily-research 2026-10-02(@yxc023,2026-10-02)—— 自动化同步流程正常。
  • 跨项目共有信号:① “v1 stable / v2 alpha” 双轨已落定——pi 是 v1 真 stable,ACP 是 v1 stable + v2 alpha;本期 pi 在 v1.0.1 上收尾(修安全 CVE + 加 project-level MCP 覆盖 + 修 OOM),ACP 在 v2 alpha 上把 subagent + error stop reason + terminal auth 一起收口;② “agent runtime 持久化” 三方各自到岸:hindsight 的 whole-bank export/import 允许 bank 跨实例跨 embedding 模型迁移(不只是迁移数据,而是迁移心智 + 配置),pi-durable 把 provider session identities 持久化(续聊能力),opencode 给 model 请求附 namespaced session identity headers(#52370)+ S2 数据湖下线(langfuse-style 自有 stats 完成收口);③ MCP 在所有项目完成”工具暴露策略”统一抽象:pi v1.0.1 项目级 enable / exposure / toolExposure 三件套 + pi-web v0.10.0 把同样的暴露方式变成 UI;④ “工具定义 inline” 成为 cache 优化的关键:pi v1.0.1 把 Anthropic 中段新增 / 重定义的 tool 改为 inline 定义,重定义同名 tool 仍能命中 prompt cache——这是 v1.0 之后第一个针对生产 cache 命中率的非功能优化;⑤ “协议级停止原因” 收口:ACP v2 把 error stop reason 提到 schema 一等公民(PR #2281),与 pi 的 emergencyTerminalExit(PR #10443,2026-10-04)形成”任意一边都能用统一语义说失败”。

各仓库详情

earendil-works/pi

AI agent 工具集:统一 LLM API、agent loop、TUI、coding agent CLI;MIT 许可,月活”数十万”级(Earendil 自述)。| stars: 112,156 | open issues: 265 | 默认分支: main | 最近 push: 2026-10-03 | 主页: https://earendil.com

近 N 周 release 重点:

  • v1.0.1(2026-10-03)— v1.0 第一个稳定补丁,4 新功能 + 1 行为变化 + 13+ 修复

    • Nix flake:nix run github:earendil-works/pi/stable 跑最新版,nix profile add github:earendil-works/pi/stable 安装(#9137 by @mitsuhiko)。
    • 项目级 MCP 覆盖:.pi/mcp.json 中不带 command / url 的条目只覆盖 user-level server 的 enabled / exposure / toolExposure,/mcp 可在当前项目一键开关(#10277)。
    • oauth.clientRegistration: "cimd":MCP 授权服务器可按 Client ID Metadata Document URL(pi.dev)放行 pi,替代每个 AS 都走 dynamic registration(#10302)。
    • pi.registerToolRenderer():可以为任何 tool 选择 renderer,包括未注册的工具(如 resumed session 中的 MCP 工具),HTML export 不再等 MCP server 连接(#10285)。
    • Cloudflare Clef / Clef Flash 分类器加入 cloudflare-workers-ai,codemode 脚本和 extensions 可调用(#10316 by @ndisidore, #10322 by @RealAlexandreAI)。
    • pi update(npm 全局安装)现在推荐迁移到 pi.dev managed installer——managed 安装钉住所有依赖,npm shrinkwrap 移除(581e)。
    • Anthropic 中段工具改为 inline 定义:会话中新增 / 重定义 tool 时不再追加到完整工具表,同名重定义保留 prompt cache 不重发整张(b271b0a)。
    • 修复:codemode print 循环加 16 Mi 字符 / 100 000 item 上限(#10283);brace-expansion 钉到 5.0.12 修复 GHSA-q2hr-2g5m-vwhr / GHSA-qhr7-859c-m2p7 / GHSA-6j4f-fj2g-mc7p(#10288);Kitten / Ghostty / WezTerm / Warp 的非 PNG 图片正常显示(#10292);Kitty fullscreen 图片滚屏后不再塌成单行(#10319);“Selected model is at capacity” 改重试而非结束 turn(#10278);Cloudflare AI Gateway Claude 改用 dashed model id(claude-opus-5-5 而非 claude-opus-5.5);Sign in with ChatGPT 回调端口被占时直接报端口占用错误而非 “OAuth state mismatch”(#10265);Bedrock OpenAI > 272k 输入 token 走 long-context pricing(#10326);Bedrock Claude 在 system prompt / tools 变更后丢 thinking block 的问题修了(#10324);Together DeepSeek V4 Pro 模型 ID 更新(#10336 by @cv);默认 NVIDIA 模型改到 Nemotron 3 Ultra(49b9df4);--models 尾随逗号不增加额外模型(#10334);OAuth 登录页加 app.message.copy(ctrl+x)复制 URL(ced72c2);恢复 3D pi logo + 3D Armin easter egg(c450f2c)。
    • 完整 release notes: https://github.com/earendil-works/pi/releases/tag/v1.0.1
  • v1.0.0(2026-10-01)— stable 主版本,已在上份报告详述:fullscreen 默认、codemode 缩减 ~40% prompt token、models.generateImages() 进 codemode、/login 集成 Radius 与 Anthropic copy-code、MCP OAuth 加 RFC 9207 iss 校验 + per-server 凭据 + step-up 保留 granted scopes、quietStartup: "header"、durable 实验线(async SQLite、pi-durable 端口、vacation planner demo)。

(如不再读 v1.0.0 / v0.99.x,请翻 reports/2026-10-02.md)

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

  • #9776 feat(ai): add per-thinking-level sampling parameters (@mrexodia, 2026-10-03 merge) — samplingParamsByThinkingLevel 把同一模型不同 thinking 级别的采样参数解耦(thinking 模式 temperature=1.0 / top_p=0.95 / top_k=20、instruct 模式 temperature=0.7 / top_p=0.80 / top_k=20 / presence_penalty=1.5),并 cherry-pick #9505 修了 OpenAI responses stream 同类 bug。
  • 70eceaa fix(durable): persist provider session identities (Mario Zechner, 2026-10-03) — pi-durable 把 provider 返回的 session id 持久化,重启 / 重连后能继续续聊。
  • #9137 feat(coding-agent): add Nix flake (@mitsuhiko, 2026-10-02 merge) — Nix 包,stable ref 始终指向最新 release。
  • #10302 feat(coding-agent): opt-in MCP OAuth client ID metadata documents (Armin Ronacher, 2026-10-02) — oauth.clientRegistration: "cimd"。
  • #10277 feat(coding-agent): allow project mcp.json to override enabled and exposure of user-level servers (Armin Ronacher, 2026-10-02) — 项目级 MCP 覆盖。
  • #10283 fix(codemode): cap script output so print loops cannot exhaust host memory (Armin Ronacher, 2026-10-02) — 16 Mi 字符 / 100000 item 上限。
  • #10288 fix(coding-agent): pin brace-expansion 5.0.12 (Armin Ronacher, 2026-10-02) — 修 3 个 transitive 依赖 CVE。
  • #10285 fix(coding-agent): render MCP tool calls before their server connects (Armin Ronacher, 2026-10-03) — MCP server 还没连上时 MCP tool 调用也能渲染(resume session + HTML export 不再无限展开)。
  • #10443 fix(coding-agent): route stdin dead-terminal errors to emergencyTerminalExit (@zichen0116, 2026-10-04) — 与 ACP v2 的 stopReason: "error" 形成”两边都能用统一语义说失败”的对称。

社区讨论 / 行业方向:

  • Pi 1.0 Ships Minimal, Pi Durable Ships Everything Else — Clauday(2026-10-02):Pi 1.0 当日 HN 451 points;“Pi already has hundreds of thousands of weekly users, and the team’s rule is to adopt something only after it has proven itself elsewhere. The list of things they tried and dropped is longer than the list they kept.”
  • Earendil ships Pi 1.0 agent harness plus Pi Durable — PithWire(2026-10-02):Harness Codemode with native MCP support + image models + Jev;新增 full-screen TUI theme;Pi Durable 目标是 long-running, steerable agents,与 Pi coding agent 并行而非替代。
  • Pi 1.0 — Earendil blog(2026-10-01):官方公告;明确 “Pi must become more durable”,所以把 durable 拆成单独的 experimental package 而不污染 pi coding agent 的 minimal root;MIT licensed。
  • Pi Durable — Earendil blog(2026-10-01):harness = storage + 跑多个并行 LLM 会话的 machinery;整个 framework 不含 test 约 15 000 行(GPT ~150k token / Claude ~250k token),agent 真的能读完;storage backends 自带 memory / SQLite / JSONL + 一套 conformance suite,Bun 与 Cloudflare Durable Object 上跑只需要”小适配”。
  • Pi Coding Agent — pi.dev:codemode 现在支持 list_mcp_servers() / list_tools({ namespace }) / search_tools({ query }) 三件套——MCP 的工具列表分页和搜索已经稳定下来。
  • Discussions 中 Pi Hooks for Checkpointing and LSP(General, 8 评论)、Custom compaction/context compression logic(General, 1 评论)、Thoughts on implementing “cross sessions” tools?(General, 3 评论)—— 社区关注点是”checkpoint / 跨会话工具 / 自定义压缩”三大主题,与 Pi Durable 的方向高度对齐。

信号观察:

  • v1.0.1 的所有 focus 项都偏 post-stable hardening:安全 CVE 修复(brace-expansion)、内存 OOM 防护(codemode 输出上限)、cache 命中率优化(Anthropic 中段 tool inline)、安装器去 npm shrinkwrap 改 managed——这是”v1 stable 之后一周”的典型 pattern:核心功能不动,把生产陷阱填上。
  • pi-durable 在 v1.0.1 同步合入了 fix(durable): persist provider session identities——durability 已经从”实验包发布”走到”自己过实践”的阶段,未来一段时间 pi-durable 的 commit 会更密集。
  • per-thinking-level sampling parameters(#9776)把 open-weight 模型(Qwen3.8-27B / DeepSeek 等)推荐的不同 thinking / non-thinking 采样参数做成 first-class 模型属性——采样参数从”provider / 模型硬编码”变成”模型元数据可声明”,这是 models.dev 之后第二个让 open-weight 模型配置可声明的 key。
  • pi update 推荐迁移 managed installer 是 v1 stable 之后第一个主动推弃用路径的变更——Earendil 用 pi.dev managed installer 替代 npm 全局安装是把安装边界、依赖钉版、签名 / 公证链条收回到自己的可控范围。

agegr/pi-web

pi coding agent 的 web UI;npm: @agegr/pi-web,与 pi 同步迭代。| stars: 7,044 | open issues: 69 | 默认分支: main | 最近 push: 2026-10-02 | 主页: (无)

近 N 周 release 重点:

  • v0.10.0(2026-10-02)— 把 MCP 与 codemode 全部搬上 web 端,并升级到 pi 1.0

    • MCP 服务器集中在 Settings › MCP:粘贴 install 命令或 JSON 配置即可添加;test 连接;OAuth 登录 / 退出;开关;删除(可撤销);每个 server 可选工具暴露方式——Code mode / tool search / direct / hidden。
    • Code mode 在 settings 里独立配置:Auto 或 Always on、是否接管内置工具、tool list 预算;聊天中 codemode 调用显示为脚本 + 它发起的 tool calls(#907 / #946 / #968 review follow-ups)。
    • 项目信任对话框列出 .pi/mcp.json 中所有 server 及它们将运行的命令;新增文件夹可以在添加 server 时一并信任。
    • 只读会话更安全:未标 readOnlyHint 的 MCP 工具在只读 preset 下被拦截。
    • 升级到 pi 1.0(同步合入 pi 主线行为):
      • MCP 服务器不再拖慢首条消息,只有暴露为 “direct” 工具的 server 会阻塞。
      • MCP 登录按 server 单独保存,同 URL 不同 server 可用不同账号;老登录自动迁移。
      • codemode 提示词 ~40% 缩减、脚本可 models.generateImages() 生成图片。
      • Anthropic 登录新增 “复制代码” 方式,浏览器不在同一台机器时可用。
      • mcp.json 支持 description / oauth.clientName / oauth.authServerMetadataUrl / auth.provider。
    • 运行中可 fork 会话、调整 reasoning level(#1010);发送键可选 Enter 或 Ctrl+Enter;输入框 Markdown 列表自动续行(#946)。
    • /mcp 命令直接打开 Settings › MCP。
    • Skills / Plugins 一键 enable all / disable all。
    • 文件夹选择器可新建文件夹;侧边栏可在系统文件管理器中打开工作区;默认 cwd 按本地日期 ~/pi-cwd/YYYYMMDD。
    • 修复:Safari / iOS 16.2 支持;手机上输入框不再被键盘挡住;Stop 能结束被 orphan child process 占住输出的 bash;自动压缩显示”正在压缩”而非”等待模型”;子代理结果、断线重连、草稿、扩展对话框、工作树删除、Markdown 渲染多处修复。
    • 升级注意:旧 codemode-deferred(“代码模式,按搜索查找”)现在按 plain Code mode 处理,行为不变;项目 .pi/mcp.json 使用 auth 的条目被拒(必须写到全局 mcp.json);server 名只差 - / _ 的,后一个会被跳过。
    • npm: @agegr/pi-web@0.10.0
    • 完整 release notes: https://github.com/agegr/pi-web/releases/tag/v0.10.0
  • v0.9.3(2026-09-23)— 已在上份报告之前;窗口期内属于”小修小补”。

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

  • #722 ci: add checks and isolated session history E2E (@agegr, 2026-10-01 merge) — 把 session history E2E 拉到独立 CI runner。
  • #948 chore(deps): trim the production install and bump next, semver, undici (@agegr, 2026-10-01 merge) — 精简生产依赖,next / semver / undici 升版。
  • #934 feat(subagents): switch individual built-in sub-agents off (#874) (@agegr, 2026-10-01 merge) — 单独关闭某个 built-in sub-agent。
  • #930 feat(models): enabledModels switches in Settings → Models, as minimal edits (@agegr, 2026-10-01 merge) — 模型启用用开关而非列表删除。
  • #955 feat(subagents): scope skill and extension loading by profile (@acniray, 2026-10-01 merge) — subagent profile 可单独 scope skill / extension,append / replace prompt mode 都生效。
  • #1011 fix(chat): collapse process details once a turn's answer appears (@agegr, 2026-10-01 merge) — turn 出答案后自动收起过程详情。
  • #1008 fix(chat): report compaction instead of "waiting for model" during auto-compaction (@agegr, 2026-10-01 merge) — 与 pi v1.0.0 “quietStartup” 同步:“compacting” 而不是 “waiting for model”。
  • #951 feat: open and reveal paths in the OS file manager (@planb788, 2026-10-03 merge) — 侧边栏 / 设置中可在系统文件管理器打开 / 揭示路径。

社区讨论 / 行业方向:

信号观察:

  • v0.10.0 的核心改动是把 MCP + codemode 的所有 pi 主线能力搬上 web 端,是 pi-web 第一次完全跟上 pi 主线——之前 web 端是”只读 + subagent + chat”的子集;从此 web 端与 TUI 端的能力是对等的。
  • “Settings › MCP” UI 把所有 MCP 暴露方式做成可视化选项——codemode / tool-search / direct / hidden 四档——这是 pi 主线 “tools schema + exposure hint” 在产品层的最终落地。
  • “运行中 fork 会话 + 调整 reasoning level”——web 端给非终端用户会话可重塑的能力(不停下 turn 就能切 reasoning level),是 TUI 做不到的 UX。
  • 把 session history E2E 拉到独立 CI runner(#722)是 web 项目第一个测试基础设施硬化动作。

anomalyco/opencode

开源 AI 编程 agent(CLI / TUI / Desktop / Web 四种形态,model-agnostic,75+ provider);OpenCode Zen 模型市场 + Console 订阅。| stars: 211,634 | open issues: 6,269 | 默认分支: dev | 最近 push: 2026-10-03 | 主页: https://opencode.ai

近 N 周 release 重点:

  • 窗口期内无新 release(最近 v1.18.34 在 2026-09-30,已在上份报告覆盖)。

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

  • #47152 feat(tui): render diffs in plugin panel slots (@jlongster, 2026-10-03) — v2 plugin panel slots 系列(#47144 / #47147 / #47148 / #47150)的最后一块;append diff plugin 到 session.panel,仅在 panel.name === "diff" 时渲染;保持 review state / scroll position / loaded data 在 docked / full-screen 切换时不丢。
  • #47107 feat(opencode): add task-parallel tool to fan out independent subtasks concurrently (@everest-an, 2026-10-03) — task-parallel 工具:primary agent 把 2–5 个独立子任务并发 fan out 到独立 subagent session,wall-clock 接近最长那个;用 deriveSubagentSessionPermission / sessions.create(parentID) / ops.prompt 与现有 task 工具同机制。
  • #44535 fix(session): stop creating phantom "unknown" tool parts on re-emitted deltas (@internetisalie, 2026-10-03, closes #33618) — 修了 ~21% 的 phantom “unknown” tool-part event(laradji 的 measurement:0 orphans、每个 unknown 都配对 completed on same callID)。
  • #50101 fix(core): wait out provider-scheduled quota retry windows (@sghng, 2026-10-03) — provider 自己说要等一会才能重试时,opencode 不再立即重试。
  • #47125 fix(core): include provider wait in token throughput timing (@opencode-agent[bot], 2026-10-03) — throughput timing 包含 provider wait,让 token/s 指标更真实。
  • #47118 fix(opencode): log worker crashes instead of swallowing them (@maxmad64bis, 2026-10-03) — worker 崩溃不再静默吞掉。
  • #47130 fix(skill): graceful skill discovery + depth-1 glob patterns; preserve deps (@haitaur-htr, 2026-10-03) — skill 发现用 depth-1 glob,n deps 保留。
  • #53041 feat(app): load custom themes from URL (@IsaVonxz-type, 2026-10-04) — 自定义主题可从 URL 加载(社区贡献)。
  • #52515 / #52514 / #52572 chore(stats): retire legacy s3 lake + chore(stats): remove s3 lake ingestion (Adam, 2026-10-01 / 2026-10-02) — Stats 数据从自有 S3 data lake 切到自有 API + canonical redirects + agent-readable data formats(#52525/#a79ecfe);这是 opencode stats 第一次不再依赖第三方对象存储——langfuse / clickhouse-style 自托管统计体系完整收口。

社区讨论 / 行业方向:

信号观察:

  • v2 plugin panel 体系完整合并:#47144 / #47147 / #47148 / #47150 / #47152 五块全部合入,下一个 dev 周期就是 v2 本身的开 release 准备。
  • task-parallel 是 opencode 第一次把”fan out + join”做成一等公民工具——与 ACP v2 subagent RFD、pi v1.0.1 的 subagent schema 形成跨项目”subagent 原语”统一:3 个项目都在用不同方式描述”一个主 agent 可以并发跑多个子任务”。
  • Phantom unknown tool parts 是 opencode 自己造的”假”事件(不是模型输出),21% 的 tool-part event 受影响——这是 v1.18.x 之后最影响”会话可信度”的 bug 之一,#33618 在社区盯了相当长时间才在 #44535 合上。
  • S3 data lake 下线意味着 opencode 不再依赖第三方对象存储做统计——自己(Adam)把数据、schema、canonical redirects、sitemap 收口,是 Console 团队第一次完成自有 telemetry 基建。

vectorize-io/hindsight

Agent memory that learns——为 LLM agent 提供长期记忆;benchmarks 上 LoComo 92%、LongMemEval-S 94.6%。| stars: 45,106 | open issues: 305 | 默认分支: main | 最近 push: 2026-10-02 | 主页: https://hindsight.vectorize.io/

近 N 周 release 重点:

  • 窗口期内无新 release(最近 v0.10.2 在 2026-09-29,已在上份报告覆盖)。
  • v0.10.2:bank alias + 改名 + 跨实例 clone、per-scope consolidation strategies、mental model 各自独立的 refresh budget、reflect 看文档 metadata 做来源排序、CUDA for ONNX embeddings、streamed export 让大 bank 不再 OOM。

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

  • #1953 feat(transfer): whole-bank export/import for cross-instance migration (#1884) (@nicoloboschi, 2026-10-03 merge) — 跨实例整库迁移:
    • 源端:uv run hindsight-admin export-bank --bank my-bank --output my-bank.zip [--include-history](read-only,不需要 embedding 模型)。
    • 目标端:uv run hindsight-admin import-bank --archive my-bank.zip(用目标实例的 embedding 模型 / vector extension / text-search backend 重 embed)。
    • archive 是 documents archive 的超集——documents / facts / observations / bank config (disposition / mission / config) / mental models / directives / webhooks,绝不打包 embedding(目标端重 embed)、不触发 webhooks、不重跑 consolidation(迁移 = 还原,不是再生)。
    • Schema-drift guard:BACKUP_TABLES 把每个 bank-scoped 表归类为 logical / carried / history / skipped;test_export_bank_covers_schema 在 CI 失败如果未来 migration 加表没分类。
  • #5129 feat(metrics): opt-in memories_backend label on operation and recall-phase metrics (@nicoloboschi, 2026-10-02 merge) — metrics 加 opt-in memories_backend label(用户可以在不上传到 Pi 后观察 backend 表现)。
  • #5091 perf(transfer): batch imported documents; retry a crashed import-bank cleanly (@nicoloboschi, 2026-10-02 merge) — import 文档批量写入;import-bank 中途崩溃可干净重试。
  • #5126 fix(grok-bot): point the plugin homepage at the live docs page (@cdbartholomew, 2026-10-02 merge) — Grok plugin 主页指向 live docs。
  • 一系列 chore(deps): bump urllib3(@furthouse,2026-10-02,多个集成仓)—— 8 个集成仓(litellm / langgraph / haystack / google-adk / dify / cursor / crewai / continue / composio / claude-agent-sdk / autogen / aider / agentcore / vapi)集体 bump urllib3 到 fix 版本。

社区讨论 / 行业方向:

信号观察:

  • PR #1953 让 bank 真正成为”可搬移对象”:换 embedding 模型、换 vector extension、换 text-search backend——任何 backend 升级都不用丢记忆;这是 Hindsight 从 “memory backend” 进化到 “memory as artifact” 的关键。
  • “迁移 = 还原”是 PR #1953 的核心原则——重 embed(必要的),但不重跑 consolidation、不触发 webhooks——这种”最小变化即迁移”的设计是 agent memory 第一次具备 production-grade data 治理的特征。
  • BACKUP_TABLES schema-drift guard 让 Hindsight 第一次用 CI 守数据完整性——和 ACP TCK(#2263)形成”协议 / 产品都用机器可跑测试守护”的同步。
  • 中文社区(wmh.cn / GitCode 博客)开始出 Hindsight 运维实战指南——是 Hindsight 在中文圈工程化使用的早期信号。

agentclientprotocol/agent-client-protocol

任何编辑器连接任何 agent 的协议(JSON-RPC over stdio / HTTP / WebSocket);类比 LSP。| stars: 4,365 | open issues: 45 | 默认分支: main | 最近 push: 2026-10-03 | 主页: https://agentclientprotocol.com

近 N 周 release 重点:

  • 窗口期内无新 release(最近 v1.10.2 / schema-v1.24.1 / schema-v2.0.0-alpha.7 都在 2026-09-30 / 2026-10-01,已在上份报告覆盖)。
  • v1.10.0 + schema-v1.24.0 + schema-v2.0.0-alpha.7 把 subagent / available_commands / request-scoped MCP 同时写进 unstable schema。

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

  • #2281 feat(unstable): report failures after prompt insertion with an error stop reason (@benbrandt, 2026-10-02 merge) — v2 prompt RFD 的 follow-up:session/prompt 消息被插入后立即响应,因此错误响应不能再回报 turn 中后段的失败。解决方案:idle state_update + stopReason: "error" + 可选 JSON-RPC error 字段承载”前台失败”语义;StopReason 改为 tagged union by stopReason 并 flatten 进 idle update,v1↔v2 桥接无损;error code 例如 -32000(auth required)保持原意;v1 child snapshot 复用同 stop reason(v1 child 没有自己的 prompt 响应);v1 的 PromptResponse 不变。
  • #2276 docs: cover terminal auth methods in the v2 migration guide (@benbrandt, 2026-10-02 merge) — v2 migration guide 增加 terminal auth methods 段。
  • #1992 feat(unstable): Intial RFD and schema for subagents (@Ololoshechkin, 2026-10-01 merge) — RFD + schema for subagents,已在上份报告覆盖;本期无新内容。
  • #2273 fix(rust): remove skipped-entry deserialization logging (@benbrandt, 2026-10-01 merge) — Rust SDK 不再为跳过的列表项打 Serde error 日志。
  • 7 次 docs: update registry agents(@acp-release-bot[bot], 2026-09-30 → 2026-10-03)—— ACP registry agent 数量持续扩张,每个 release 都要刷一次。

社区讨论 / 行业方向:

信号观察:

  • PR #2281 是 ACP v2 在 “如何报告失败” 这个基础能力上的重要收口——session/prompt 响应早返回后,错误必须用 state_update + stopReason: "error" 承载;协议必须把”前台失败”和”消息未插入”严格区分开(后者仍走 prompt 响应,error code 例如 -32800 请求取消)。
  • StopReason 改为 tagged union by stopReason 并 flatten 进 idle update 是协议设计哲学变化:从”字段语义分散”走向”语义标签化”,与 v1 的 prompt_response 单一形态形成鲜明对比。
  • Subagent Sessions RFD 把 subagent 明确为 agent 内部对象:Client-initiated session mutations 默认禁用,只开放 cancellation——这与 pi 主线 go() / owner / child tasks、opencode task-parallel 形成三方对 subagent 语义的共识:subagent ≠ 父会话的另一个用户。
  • Model selection Discussion 13 评论是窗口期内最热的社区主题——ACP 协议层面对 Pi 的 Radius 模型路由是否应该原生支持,社区还在讨论;Radius 已经在 pi v1.0.0 / v1.0.1 实现了应用层的模型路由,但协议层还没有统一约定。

yxc023/yxc023.github.io

个人 GitHub Pages 博客(@yxc023),自动同步 daily-research 报告。| stars: 1 | open issues: 27 | 默认分支: master | 最近 push: 2026-10-02 | 主页: (无)

近 N 周 release 重点: 窗口期内无 release。

其他重要 commits / PRs:

  • 8bf065b auto(reports): 同步 daily-research 2026-10-02 (@yxc023, 2026-10-02)

社区讨论 / 行业方向: 窗口期内未观察到 Discussions 动态。

信号观察:

  • 仓库主要承载 daily-research 报告与 posts/* 调研文章。8bf065b 与 44d48be 连续两天的 auto(reports): commit 说明自动同步流程正常工作。

跨项目观察

  • “v1 stable / v2 alpha” 双轨已落定:earendil-works/pi v1.0.1(v1 真 stable,一周后第一个稳定补丁)与 agent-client-protocol schema-v2.0.0-alpha.7(v2 仍在 alpha)形成对比;pi 的 v1.0.1 修 CVE / OOM / cache 命中率优化是 v1 stable 之后的典型 pattern,ACP 的 v2 alpha 把 StopReason 改 tagged union + subagent schema + error stop reason 是协议演进期的典型 pattern——纯产品(pi)可以快速 stable,协议(ACP)必须保持 alpha 以保留调整空间。
  • “agent runtime 持久化” 三方各自到岸:hindsight 的 whole-bank export/import(PR #1953)让 bank 跨实例跨 embedding 模型迁移(不打包 embedding、不触发 webhooks、不重跑 consolidation),pi-durable 把 provider session identities 持久化(70eceaa,重启 / 重连可续聊),opencode 给 model 请求附 namespaced session identity headers(#52370)+ S3 数据湖下线(langfuse-style 自有 stats 完成收口)——三方各自把”agent 可挂起 / 可重建 / 可观测”做到生产级。
  • MCP 在所有项目完成”工具暴露策略”统一抽象:pi v1.0.1 项目级 enabled / exposure / toolExposure 三件套(#10277)+ pi-web v0.10.0 把同样的暴露方式变成 UI(Code mode / tool-search / direct / hidden)+ ACP v1.10.0 unstable schema 给出 MCP-over-ACP request-scoped——MCP 工具暴露策略从”硬编码”变成”每个项目可配”,这是 MCP 生态从”能不能连”走向”怎么连”的关键。
  • “工具定义 inline” 成为 cache 优化关键:pi v1.0.1 把 Anthropic 中段新增 / 重定义的 tool 改为 inline 定义(b271b0a),重定义同名 tool 保留 prompt cache 而不重发整张工具表——这是 v1.0 之后第一个针对生产 cache 命中率的非功能优化,与 codemode 40% 缩减 token 一脉相承,都是把”成本结构”做成 first-class 工程问题。
  • “协议级停止原因” 收口:ACP v2 用 stopReason: "error" + 可选 error 字段(PR #2281),pi 主线用 emergencyTerminalExit(PR #10443)——两边都能用统一语义说失败,而且语义在不同项目中是对称的(任意一边都能识别对方的失败)。
  • subagent 在三个项目同步进入 schema:ACP v2 unstable 的 subagent subagent_update(PR #1992 + RFD)、pi-web 的 subagent profile skill/extension scoping(#955)、pi 主线 go() / owner / child tasks + pi-durable 的 durable storage——三方对齐到同一抽象:subagent 是 agent 内部对象,不是父会话的另一个用户;opencode 的 task-parallel(#47107)把”fan out + join”做成一等公民工具,是这条线上最新的具体能力。
  • codemode 现在是 “chat + classify + generate images” 三 API 的稳定形态(pi v1.0 + v1.0.1):codemode 脚本可生成图像、调用分类器、调用 Jev 做 typed answer,未来 predict / embed 极可能沿用同一形态,codemode 正成为 pi 的”脚本化多模型调用平台”。
  • 生态战争焦点从”能不能做”走向”做得便宜”:pi v1.0.1 的 cache 命中率优化、codemode 输出上限 16 Mi、prompt token 减 40%、opencode token throughput 包含 provider wait、hindsight streamed export 大 bank 不 OOM——这些都是”成本真的”工程优化,意味着 v1 runtime 已经把”跑得起”做到位,开始竞争”跑得便宜”。
  • Figma MCP allowlist 现象(Clauday 文章):Figma 的 remote MCP server 只接受 allowlist 上的 client,Pi 不在 list 上——“开放协议 + 闭门客户端”是 SaaS MCP 的实际形态,harness 必须要在每个 SaaS 的 allowlist 上有座位才能用其 MCP server,这是 MCP 商业化推进的副作用。
  • Docusaurus / SPA 抓取的实践问题:hindsight blog(“What Changes Now That Hindsight Is a Hermes Plugin”)用 Docusaurus SPA 提供,curl 抓回的是 0.6KB 空壳 + 600KB JS shell,肉眼读不到正文——现代文档站越来越不 friendly to curl,是 agent 抓取实践要面对的新边界。

元信息

  • 报告生成时间: 2026-10-04T08:30:48+08:00
  • 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告 reports/latest.md 的 基准时间: 字段)
  • 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-04T00:30:48Z(约 25.6 天)
  • 数据源: GitHub API(gh CLI 认证,6 仓库 × 5 endpoint = 30 次 API 调用;opencode 的 discussions endpoint 返回 HTTP 410 “Discussions are disabled for this repo”),mmx web search(8 次 query:pi / pi-durable / opencode / hindsight / ACP / stats 等主题)+ 官方文档直抓(earendil.com Pi 1.0 / Pi Durable blog,ACP subagent RFD,hindsight blog index,clauday.com)
  • API rate limit 剩余: 5000

评论