SuperAPI AI 工具集

agent-reproduce-feature

智能体与模型

查看项目

更新于 10-16 08:21

技能介绍

用途

该技能用于把参考智能体(Codex 或 Claude Code)中观察到的某个功能,转化为 Qwen Code 的实现任务。工作流把当前会话当作外层测试框架,将嵌套的参考智能体进程作为被测程序运行,从而捕获其行为并复现到目标智能体 CLI 中。

默认目标仓库为当前工作目录,仅在用户明确提供路径时才使用用户指定的路径。

参考智能体选择

首先需要选择且仅选择一个参考智能体:

  • codex:使用嵌套的 Codex 作为参考实现。
  • claude-code:使用嵌套的 Claude Code 作为参考实现。

如果用户未选择,需在捕获前询问一次。随后应发现本地命令,而不是假设命令存在:

command -v codex || true
command -v claude || command -v claude-code || true

将选定的适配器记录到运行笔记或场景中:

{
  "reference_agent": "codex",
  "reference_interactive_command": "codex",
  "reference_headless_command": "codex exec",
  "target_agent": "qwen-code",
  "target_repo": "."
}

工作流

  1. 用一句话定义功能面:命令、触发条件、预期 UI/输出,以及一个能触发该功能的最小提示。
  2. 选择 codex 或 claude-code 作为参考智能体,并发现其本地启动命令。
  3. 在修改代码前,检查目标仓库以识别可能的模块边界和 Qwen Code 启动命令。
  4. 针对该功能运行嵌套参考智能体并启用捕获:
    • 通过 scripts/capture_state.py 在场景前后捕获本地状态。
    • 通过 scripts/run_with_mitm.sh 捕获 HTTP/请求体。
    • 当功能为交互式或 TUI 可见时,通过 scripts/run_tmux_capture.sh 捕获终端。
    • 当功能具有稳定的命令行路径时,进行无头/非交互执行。
  5. 从追踪中提取行为事实:
    • 与该功能相关的 system/developer 提示差异
    • 请求体形态,包括 messages、tools、functions、schemas、tool choice、模型设置
    • 可见的终端状态和命令输出
    • 本地智能体状态变化、文件编辑、退出状态和错误路径
  6. 使用 Qwen Code 现有模式实现最小的兼容行为。
  7. 添加聚焦测试或可复现的冒烟命令。
  8. 当实现已存在且需要迭代对齐时,移交给 $agent-reproduce-align。

在会话中首次运行捕获前,请阅读 references/capture-workflow.md。

捕获默认值

每次运行最好使用全新的输出目录:

mkdir -p .repro-runs/slash-command-baseline
.qwen/skills/agent-reproduce-feature/scripts/run_with_mitm.sh \
  .repro-runs/slash-command-baseline \
  -- codex exec "exercise the Codex feature here"

对于 Claude Code,如果存在已发现的无头命令则使用它;否则使用 tmux:

.qwen/skills/agent-reproduce-feature/scripts/run_tmux_capture.sh \
  .repro-runs/slash-command-claude \
  claude

对于交互式斜杠命令或终端渲染,使用 tmux:

.qwen/skills/agent-reproduce-feature/scripts/run_tmux_capture.sh \
  .repro-runs/slash-command-tui \
  codex

mitm 脚本会为 Node、Python 和基于 curl 的 CLI 设置常见的代理和 CA 变量。如果 TLS 失败,请阅读 references/capture-workflow.md 中的证书说明,并在将缺失流量解释为产品行为之前修复信任问题。

在运行前后捕获参考智能体状态:

.qwen/skills/agent-reproduce-feature/scripts/capture_state.py \
  snapshot .repro-runs/slash-command-baseline/state-before \
  --agent codex

# Run the reference scenario here.

.qwen/skills/agent-reproduce-feature/scripts/capture_state.py \
  snapshot .repro-runs/slash-command-baseline/state-after \
  --agent codex

.qwen/skills/agent-reproduce-feature/scripts/capture_state.py \
  diff \
  .repro-runs/slash-command-baseline/state-before \
  .repro-runs/slash-command-baseline/state-after \
  --out-dir .repro-runs/slash-command-baseline/state-diff

使用 --agent claude-code 可快照 ~/.claude 而非 ~/.codex。仅在自定义状态目录或测试时使用 --root PATH。

实现规则

  • 不要将所有捕获的提示文本复制到 Qwen Code 中。应将其转换为所需的最小行为、schema 或测试。
  • 将捕获的请求体视为敏感的本地工件。在将示例保存到文档、提交、issue 或 PR 之前,先对令牌进行脱敏。
  • 状态差异同样视为敏感的本地工件。状态工具会脱敏常见令牌形态,并省略敏感路径的内容,但在将任何摘录复制到受跟踪文件之前,请先审查 state-diff.md。
  • 保持首次实现范围狭窄:一个功能、一个触发路径、一个可观察的对齐目标。
  • 优先使用断言行为的兼容性测试,而非断言精确提示措辞的脆弱测试。
  • 如果捕获的 schema 揭示了稳定的公共契约,请将该契约编码为 Qwen Code 中的类型化结构或 fixture。

完成标准

  • 在 .repro-runs/ 或等效的忽略/本地路径下存在基线参考智能体追踪。
  • 参考智能体状态变化已被捕获,或明确标记为与该场景无关。
  • Qwen Code 包含聚焦实现和至少一条验证路径。
  • 如果 Qwen Code 仓库已记录类似功能,则任何用户可见的命令行为都应在 Qwen Code 中记录。
  • 下一步对齐可由 $agent-reproduce-align 运行,而无需重新发现设置。