用途:当需要让 Rust 实现与 Python 变更保持逻辑一致(排除 UI 与登录/认证)时使用此技能,代码与测试都要同步。Rust 二进制名为 kagent,Rust 中面向用户的 CLI/输出文本须使用 kagent 而非 kimi。
主要能力与流程:
- 建立变更清单:检查暂存变更与最近提交,例如 git diff --cached --name-only、git diff --cached -- src packages、git log --oneline -20 -- src packages、git diff HEAD~20..HEAD -- src packages,并查看 CHANGELOG.md 前 50 行。
- 分类变更:排除 UI 与登录/认证变更,其余都需在 Rust 中镜像;维护“文件→变更摘要→Rust 目标→状态”的清单。
- 映射 Python 到 Rust,常见映射如 src/kimi_cli/llm.py→rust/kagent/src/llm.rs,src/kimi_cli/soul/→rust/kagent/src/soul/,tools、utils、wire 同理,packages/kosong/→rust/kosong/,packages/kaos/→rust/kaos/。
- 谨慎移植逻辑:错误消息与工具输出文本要完全匹配(测试常断言字符串),保持输出类型与顺序,验证 ContentPart 包装与序列化,新增辅助模块时镜像最小 Rust 工具,用 rg 查找现有对应实现。
- 更新测试:更新断言内容/字符串/部件的 Rust 测试,镜像 Python 单元与集成测试,E2E 用现有 Python 套件对 Rust 二进制运行(设置 KIMI_E2E_WIRE_CMD,不要在 Rust 重写 E2E)。可先运行 cargo test -p kagent --test <name>,再跑全量。
- 强制验证:运行完整 Rust 测试套件并确保全部通过;用 KIMI_E2E_WIRE_CMD 将 wire 命令换成 Rust 后运行 E2E 并确保通过。
- 最终报告:列出同步文件与逻辑、明确跳过的 UI/登录变更、列出运行的测试与结果。
限制与注意:不要跳过 llm.py;不要用提交消息过滤代替完整 diff;输出文本/部件变化时记得更新 Rust 测试;不要把 UI/登录变更混入核心同步;测试一致性状态需明确说明。资料未提供安装命令、收费或价格信息。