docs(blueprint/agent-client-parity): P7 实测服务器说明仅 Claude/DSH 带入模型上下文,保留 skill 引导 #30

Merged
lanrtop merged 1 commits from feat/agent-client-parity-p7 into master 2026-10-03 04:14:06 +08:00
Owner

目标

蓝图 agent-client-parity P7(S 级):在 MCP initialize 下发带唯一标记的 instructions,判定 Claude Code、Codex、DSH 三端是否把服务器说明带入模型上下文。全部支持则把引导提示迁到服务器说明、skill 只留排障;部分支持则如实记录、保留 skill 引导。

结论

部分支持:Claude Code 支持,DSH 支持,Codex 不支持。 按 acceptance 不迁移:

  • 引导提示仍以 lian-jing skill 与 AGENTS.md 托管块为三端单一来源;
  • src-tauri/src/mcp_server.rs 的服务器说明保持现状,只作 Claude/DSH 的增强层;
  • 新增稳定边界:三端都须遵守的引导不得只写在服务器说明里。

证据

方法:node 写的最小 MCP 桩服务(streamable-http,纯 JSON 响应)。每端开两个端口,实验组 initialize 带 instructions(含该端专属随机标记),对照组不带 instructions 字段,其余完全相同。标记只出现在 instructions 里,工具 probe_ping 的名字、描述、返回值都不含标记。问题统一为「MCP 服务器说明里有什么标记字符串?只回答标记,不调用工具,没收到就答 NONE」。桩服务记录收到的请求。所有探针 cwd 为临时空目录,未改用户配置、未连运行中的炼境,零凭据。

客户端 实验组回答 对照组回答 输入 token(实验 / 对照) 桩服务日志
Claude Code 2.1.173(sonnet-4-6,claude -p --mcp-config --strict-mcp-config) LJ-P7-3067CE459B NONE 10774 / 10675(+99) initialize(claude-code) → initialized → tools/list
Codex CLI 0.155.0-alpha.9.2(codex exec --json,-c mcp_servers.<名>.url 覆盖) NONE NONE 16320 / 16320(+0) initialize(codex-mcp-client, 2025-06-18) → initialized → tools/list
DSH 桌面版内置运行时 headless(--patch 叠加层) LJ-P7-B0628021BF NONE 6487 / 6434(+53) server/discover(-32601) → initialize(dsh-mcp-client) → tools/list

Codex 的补充对照(排除「没连上」):

  • 宽问法「全部上下文里是否有 LJ-P7- 开头的字符串」:两组都答 NONE,输入 token 16335 = 16335;
  • 让模型调用 probe_ping:它确实发起 mcp_tool_call(server=ljprobe, tool=probe_ping)(被 approval policy never 拦下),说明桩服务的工具在模型视野里;
  • 该会话 rollout 文件中标记出现 0 次;
  • 加开发中特性 --enable mcp_2026_07_28 后仍答 NONE,输入 token 仍为 16320。

DSH 的思考过程原样复述了说明全文;对照组思考里写着没有看到服务器说明块。DSH mcp-client 配置有 maxInstructionBytes(默认 32768)。

改动

  • .blueprint/modules/agent-client-parity.md:P7 标 ✅,记录结论、三端证据与 known_limits
  • docs/ai-context/agent-button-system.md:「本地 Agent 控制面的稳定边界」增一条——服务器说明只是增强层,三端都须遵守的引导以 skill 与 AGENTS.md 托管块为单一来源
  • .blueprint/manifest.yaml:agent-client-parity 进度 55 → 64,note 补 P7

不改代码:mcp_server.rs、lian-jing skill、接入包模板与版本均不动。

自验

  • 复核原始探针输出(本机 %TEMP%\lj-p7-probe,未入库):三端标记、回答、输入 token、桩服务请求序列与上表一致;桩服务按客户端请求的 protocolVersion 回显,instructions 只在实验组出现
  • .gitea/scripts/check-commit-msg.mjs(PR 范围)通过;lefthook conventional / feature-confirmed 通过
  • manifest.yaml 经 yaml.safe_load 解析成功,git diff --check 无问题
  • 纯文档改动,未跑 cargo test / pnpm typecheck

没验什么

  • Claude 与 DSH 只验了无头模式,Claude 只用了 sonnet-4-6
  • Codex 未验 TUI 与桌面版(桌面版可能走 app-server 路径,结论可能不同),也未验 SSE 传输
  • 探针用的是桩服务的中英混合短说明,���用炼境真实说明(238 字、500 字节)实测
  • 探针由同一工作流内的前一个 agent 执行,未经第二个 agent 独立复现;本 PR 只复核了它留下的原始日志
  • 现有服务器说明中「其他写操作须用户明确确认」「unavailable/unknown 不得当作成功」两条,在 skill 与 AGENTS.md 中只有分场景表述,Codex 会话只能从这些条目与工具描述获知;是否补成通用条目留待下次改 skill 时处理(需升接入包版本),本 PR 不改

🤖 Generated with Claude Code

## 目标 蓝图 `agent-client-parity` P7(S 级):在 MCP `initialize` 下发带唯一标记的 `instructions`,判定 Claude Code、Codex、DSH 三端是否把服务器说明带入模型上下文。全部支持则把引导提示迁到服务器说明、skill 只留排障;部分支持则如实记录、保留 skill 引导。 ## 结论 **部分支持:Claude Code 支持,DSH 支持,Codex 不支持。** 按 acceptance 不迁移: - 引导提示仍以 lian-jing skill 与 AGENTS.md 托管块为三端单一来源; - `src-tauri/src/mcp_server.rs` 的服务器说明保持现状,只作 Claude/DSH 的增强层; - 新增稳定边界:三端都须遵守的引导不得只写在服务器说明里。 ## 证据 方法:node 写的最小 MCP 桩服务(streamable-http,纯 JSON 响应)。每端开两个端口,实验组 initialize 带 instructions(含该端专属随机标记),对照组不带 instructions 字段,其余完全相同。标记只出现在 instructions 里,工具 `probe_ping` 的名字、描述、返回值都不含标记。问题统一为「MCP 服务器说明里有什么标记字符串?只回答标记,不调用工具,没收到就答 NONE」。桩服务记录收到的请求。所有探针 cwd 为临时空目录,未改用户配置、未连运行中的炼境,零凭据。 | 客户端 | 实验组回答 | 对照组回答 | 输入 token(实验 / 对照) | 桩服务日志 | | --- | --- | --- | --- | --- | | Claude Code 2.1.173(sonnet-4-6,`claude -p --mcp-config --strict-mcp-config`) | `LJ-P7-3067CE459B` | `NONE` | 10774 / 10675(+99) | initialize(claude-code) → initialized → tools/list | | Codex CLI 0.155.0-alpha.9.2(`codex exec --json`,`-c mcp_servers.<名>.url` 覆盖) | `NONE` | `NONE` | 16320 / 16320(+0) | initialize(codex-mcp-client, 2025-06-18) → initialized → tools/list | | DSH 桌面版内置运行时 headless(`--patch` 叠加层) | `LJ-P7-B0628021BF` | `NONE` | 6487 / 6434(+53) | server/discover(-32601) → initialize(dsh-mcp-client) → tools/list | Codex 的补充对照(排除「没连上」): - 宽问法「全部上下文里是否有 LJ-P7- 开头的字符串」:两组都答 NONE,输入 token 16335 = 16335; - 让模型调用 `probe_ping`:它确实发起 `mcp_tool_call(server=ljprobe, tool=probe_ping)`(被 approval policy never 拦下),说明桩服务的工具在模型视野里; - 该会话 rollout 文件中标记出现 0 次; - 加开发中特性 `--enable mcp_2026_07_28` 后仍答 NONE,输入 token 仍为 16320。 DSH 的思考过程原样复述了说明全文;对照组思考里写着没有看到服务器说明块。DSH mcp-client 配置有 `maxInstructionBytes`(默认 32768)。 ## 改动 - `.blueprint/modules/agent-client-parity.md`:P7 标 ✅,记录结论、三端证据与 known_limits - `docs/ai-context/agent-button-system.md`:「本地 Agent 控制面的稳定边界」增一条——服务器说明只是增强层,三端都须遵守的引导以 skill 与 AGENTS.md 托管块为单一来源 - `.blueprint/manifest.yaml`:agent-client-parity 进度 55 → 64,note 补 P7 不改代码:`mcp_server.rs`、lian-jing skill、接入包模板与版本均不动。 ## 自验 - 复核原始探针输出(本机 `%TEMP%\lj-p7-probe`,未入库):三端标记、回答、输入 token、桩服务请求序列与上表一致;桩服务按客户端请求的 protocolVersion 回显,instructions 只在实验组出现 - `.gitea/scripts/check-commit-msg.mjs`(PR 范围)通过;lefthook conventional / feature-confirmed 通过 - `manifest.yaml` 经 `yaml.safe_load` 解析成功,`git diff --check` 无问题 - 纯文档改动,未跑 `cargo test` / `pnpm typecheck` ## 没验什么 - Claude 与 DSH 只验了无头模式,Claude 只用了 sonnet-4-6 - Codex 未验 TUI 与桌面版(桌面版可能走 app-server 路径,结论可能不同),也未验 SSE 传输 - 探针用的是桩服务的中英混合短说明,���用炼境真实说明(238 字、500 字节)实测 - 探针由同一工作流内的前一个 agent 执行,未经第二个 agent 独立复现;本 PR 只复核了它留下的原始日志 - 现有服务器说明中「其他写操作须用户明确确认」「unavailable/unknown 不得当作成功」两条,在 skill 与 AGENTS.md 中只有分场景表述,Codex 会话只能从这些条目与工具描述获知;是否补成通用条目留待下次改 skill 时处理(需升接入包版本),本 PR 不改 🤖 Generated with [Claude Code](https://claude.com/claude-code)
lanrtop added 1 commit 2026-10-03 04:04:11 +08:00
docs(blueprint/agent-client-parity): P7 实测服务器说明仅 Claude/DSH 带入模型上下文,保留 skill 引导
All checks were successful
Push & PR Check / check (push) Successful in 1m1s
Push & PR Check / check (pull_request) Successful in 1m3s
cce7d92ee0
三端无头探针(node 桩 MCP 服务,实验组 initialize 带含唯一标记的 instructions,
对照组不带)结论为部分支持:Claude Code 2.1.173 与 DSH headless 答出标记、
对照组答 NONE;Codex 0.155.0-alpha.9.2 两组都答 NONE、输入 token 完全相同,
桩服务日志证明 initialize 与 tools/list 均成功、模型能调用桩工具,说明已送达
客户端却没进入模型。

按 acceptance 不迁移:引导提示仍以 lian-jing skill 与 AGENTS.md 托管块为三端
单一来源,mcp_server.rs 与 skill 均不改。

- 蓝图 P7 标 ✅,记录结论、三端证据与 known_limits(Codex TUI/桌面版与 SSE
  未验、真实说明未实测、服务器说明中两条通用规则在 skill 只有分场景表述)
- agent-button-system.md「本地 Agent 控制面的稳定边界」增一条:服务器说明只是
  增强层,三端都须遵守的引导不得只写在服务器说明里
- manifest 中 agent-client-parity 进度 55 → 64,note 补 P7

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lanrtop merged commit 367df5b88f into master 2026-10-03 04:14:06 +08:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: lanrtop/dev-manager-tauri#30
No description provided.