Files
Agent-Native/docs/parity-matrix.md
T
weichenandCursor fedf671a48
ci / vet-and-test (push) Successful in 5s
ci / docker-checkout-hostgateway (push) Successful in 3s
Import the current agent-native module as a fresh history.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-29 12:29:04 +00:00

7.0 KiB
Raw Blame History

title, date, task_id, track, baseline_fixed
title date task_id track baseline_fixed
U9a Parity Matrix:Agent-Native 对齐 PI 0.85.1 核心能力盘点 2026-09-29 multi-repo-design-2026-09-28 U9 (R14:产品核心能力可替代,非上游复刻) true

U9a 能力盘点(三层基线固定)

基线

层 版本/内容 证据
上游包 @earendil-works/pi-coding-agent@0.85.1(gitHead d981de12,MIT) deploy/pi-agent/Dockerfile:18
项目 wrapper deploy/pi-agent:runner.mjs(/v1/run、/v1/run/stream、/v1/search)+ entrypoint(--mode rpc --no-session、--tools read,write,edit --approve)+ extensions/tavily-search.mjs + result-v1/settle-policy/reasoning-materialize/change-report-narrative .mjs deploy/pi-agent/*
产品调用侧 internal/agent/piagent.go(typed_result、NDJSON 流式优先+一次性回落、data-root 不符拒绝、AssessStepFailure 重试分类)、pi_runner_search.go(/v1/search)、MaterializeTargets internal/agent/*
原生现状 agent-native:runtime(loop/tools/llm/session)+ exec 冻结端口 + contract v0.1.0(尚未被 runtime 消费)+ adapters/pitransport + abtest(6 例 + Judge) modules/agent-native

对标口径:产品实际依赖(wrapper 真实暴露面),不是上游全部功能。任何重构建制以固定 0.85.1 为准,不对上游 main。

Parity Matrix

状态:native = available / partial / missing / not_required。

# 能力域 上游/wrapper 现状 产品依赖 native 现状 差距 → 批次
1 多轮执行循环 + 工具调度 rpc 模式内核 必需(全部小队任务) available(loop + 并行工具 + turn cap,runtime/loop.go) 行为等价性入 Batch2 回归
2 模型流式(Chat Completions/SSE) MiniMax openai-compatible 必需 available(llm SSE 客户端) 流错误/截断负例入 Batch1
3 文件工具 read/write/edit/list wrapper 限定 --tools read,write,edit --approve 必需 available(builtin 四件 + jail 路径约束) 工具语义负例(越界/截断/错误格式)Batch2
4 工具策略(workspace/reasoning profile) wrapper 参数组合 必需 partial(jail 有;profile 组装在 Core,TaskPolicy 未接 runtime) Batch2
5 搜索(Tavily /v1/search) 项目自加扩展(非上游核心) 必需(pi_runner_search.go 消费方) missing Batch1:builtin search 工具 + Provider 接口(密钥 Core 注入)
6 typed-result-v1 编解码/摘要 result-v1.mjs(canonical JSON digest) 必需(PI 互操作合同) available(adapters/pitransport,含 Node 交叉验证测试) 维持;native 自产结果不经此编码
7 结果 settle/outcome 分类 settle-policy.mjs(agent_settled 等) 必需(成功/失败判定入口) available(exec.AssessStepFailure) Batch1:与 settle-policy 逐事件 fixture 对齐
8 过程流 NDJSON(proc 帧) /v1/run/stream 实时转发 必需(小队过程视图 2026-09-28 设计) partial(runtime Event 有;词汇表与 proc 帧未对齐) Batch1:事件词汇 conformance
9 交付物物化(Targets→Patches 校验) 产品侧 MaterializeTargets 必需 available(exec.deliverable) 回归入 Batch2
10 取消传播 产品侧 stream ctx 取消(retryable) 必需 partial(loop ctx 有;模型/工具层传播未验证,contract CapCancel 未接) Batch2
11 长上下文 compaction 上游核心有(长会话压缩);wrapper 未禁用 依赖未证实(任务为有界单发,--no-session) missing Batch3 可选:先实测长任务 token 压力再定
12 会话/执行恢复 上游 sessions;wrapper 明确 --no-session(临时会话) not_required(产品恢复走 task_runs/重跑,不延续上游会话) partial(JSONL transcript) Batch3:对齐 contract 的 Unknown/resume 语义即可
13 TS 扩展 ABI 上游支持 not_required(仅 Tavily 一个项目自写扩展 → 以 #5 builtin 工具替代) — 不做
14 终端 UI/主题/全供应商登录/全部 SDK 面 上游产品功能 not_required(方案 KTD12 明确不复刻) — 不做
15 reasoning-materialize / change-report-narrative(.mjs) 项目自加后处理 partial(app 组合根 pi-agent 条件门控的 summary/narrative) missing Batch3:由 Core 侧等价实现或显式降级,不搬 .mjs
16 usage/预算 rpc 报用量 必需(Result token 字段) partial(llm 用量有;预算/截止未贯穿) Batch2

U9b 分批补齐计划(估算按有上下文实施者工作日)

批 内容 估算 出口
Batch1 必需协议域(✅ 2026-09-29 完成) ① builtin web_search 工具(SearchProvider 接口,Tavily 兼容响应形状;密钥/端点经 Options 注入,测试用 fake)② settle/outcome 分类与 settle-policy.mjs 逐事件 fixture 对齐(Node fixture 复用 pitransport testdata 模式)③ 过程事件词汇表 conformance(runtime.Event ⇄ proc 帧:text_delta/reasoning_delta/tool_* 全集) 实际 1 日 三域全部落地:runtime/tools/search.go(密钥池轮换+输出逐字段对齐+8 测试);exec/settle_parity_test.go(10 场景 Go+Node 双侧交叉验证,Go 为终裁者契约);runtime/event_vocabulary_test.go(行为级词汇 conformance)。#5/#7/#8 关闭
Batch2 安全与语义域 ④ 取消传播(ctx→llm 请求/工具执行;contract CapCancel 接 runtime)⑤ 工具语义负例(jail 越界、长输出截断、错误格式)⑥ retry/failure 分类与传输错误矩阵回归 ⑦ 预算/截止贯穿(Budget→loop) 2–3 日 #3/#4/#10/#16 关闭;负例不冒充 PASS
Batch3 长尾与决策域 ⑧ 长任务 token 实测 → 决定 compaction 是否必需 ⑨ transcript→contract resume 语义对齐 ⑩ summary/narrative Core 等价实现或显式降级声明 3–5 日(含实测) not_required 项有书面证据;partial 项二选一定案

U9c 对比验收(扩展现有 6 例)

  • 每个必需域(#1–#10、#16)至少:正常 1 + 异常 1 + 边界 1 配对用例,双后端同输入;
  • Judge 增补:绝对成功率门槛(当前仅相对)、语义 rubric、实际后端身份断言(禁 fallback 混淆)、副作用检查;
  • 固定语料重复配对(≥10 样本/域)报告分布;P95≤1.3× 沿用但 6 例不得外推结论;
  • 准入:必需域全过 + 严重缺陷 0 + 语义无重大缺项;SKIP/零用例不算 PASS。

U9d/e 渐进启用与收口

按方案原条款执行:隔离环境/内部账号允许清单 → 按任务类别开放 → 配置 PR 显式切换 → PI 适配器保留回退。默认后端不因验收通过自动切换。

记录与证据

  • 本矩阵证据均指向仓库内文件(上文路径),不含运行时截图;
  • Batch1 完成后在本文件追加"实测证据"列;
  • 上游仅引固定 0.85.1 的 README/docs 结论,不引 main。