ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Kimi Code CLI 功能冒烟测试 Prompt 模板:单轮/多轮决策与五段式验证范式

Kimi Code CLI 功能冒烟测试 Prompt 模板:单轮/多轮决策与五段式验证范式 Kimi Code CLI 功能冒烟测试 Prompt 模板单轮/多轮决策与五段式验证范式【免费下载链接】kimi-cliKimi Code CLI is your next CLI agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kimi-cli在 Kimi Code CLI 这类以 Agent 为核心的开源命令行工具中为新增或变更功能做端到端冒烟测试最大的难点不是跑命令而是如何写出可复用、可追溯、不依赖模型记忆幻觉的测试 prompt。本文围绕仓库内.agents/skills/feature-smoke-test/references/prompt-patterns.md提供的 Prompt 模板体系展开讲解单轮/多轮的选择标准、占位变量、探索—执行—观察—复盘—兼容性校验五类模板的完整用法并结合feature-smoke-testSkill 的非交互运行方式与context.jsonl/wire.jsonl等 session 产物给出可直接落地的冒烟测试实操方案。读完本文你将能独立为 Kimi Code CLI 的任何功能设计出结构化、证据可查的多轮冒烟测试流程。一、模板定位脚手架而非固定答案Prompt 模板的定位是脚手架scaffold它们不替你决定测试内容而是约束 Agent 的行为边界避免测试过程中出现假设旧接口仍然正确一次性长回复盲写把观察与执行混在一起等典型失控。原始模板文档明确要求运行前替换占位符且不得信任过时的文档、旧 prompt 或旧 tool 名称——一切以当前代码中的真实对外接口为准。这一设计理念与 SKILL.md 中先读事实来源面向用户的文档、changelog、agent/tool prompt、实现层入口、已有测试的步骤一一对应模板负责流程事实来源负责内容。二、第一步决策单轮还是多轮模板文档给出的决策规则是满足以下任一条件时使用多轮功能有状态session、后台任务、审批状态等功能依赖时序或并发功能需要审批、清理或恢复session 产物本身是证据的一部分工具接口可能近期发生过变化而仅对无状态的窄范围检查使用单轮。这条规则在 Skill 中被进一步强调为默认策略如果功能涉及状态、异步、审批流或时序敏感逻辑默认认为单条 prompt 不够并且多轮测试时每一轮单独调用 CLI在两轮之间检查上一轮的输出和产物再决定下一轮的 prompt不要把多轮 prompt 一次性塞进 stdin——那是盲写无法根据上一轮结果调整见 SKILL.md。判断要点问自己这一轮跑完我是否需要根据它的产物决定下一轮做什么需要——就是多轮不需要——单轮即可。三、起草前的变量清单模板文档要求在起草 prompt 前填写以下 8 个字段。这些占位符贯穿所有模板务必先想清楚再动手占位符含义填写示例feature被测功能名称kimi export会话导出goal当前场景的目标验证导出 JSON 包含完整消息列表source_paths需要阅读的源码路径src/kimi_cli/cli/export.py、src/kimi_cli/utils/export.pyconstraints执行约束不修改仓库文件、不使用网络、限定在/tmp工作目录success_signals成功信号退出码为 0、产物文件存在且 JSON 可解析failure_signals失败信号退出码非零、产物缺失、内容字段为 nullartifact_paths需要检查的产物路径$SMOKE_DIR/export.jsonsession_dirsession 目录路径~/.kimi/sessions/md5(work_dir)/session_id/其中session_dir的定位有明确的仓库依据Session.create会把context.jsonl写入session_dir / context.jsonl并把wire.jsonl以WireFile(pathsession_dir / wire.jsonl)的形式挂在 Session 上见 src/kimi_cli/session.py而session_dir位于 work-dir 对应的sessions/命名空间下。四、五段式 Prompt 模板详解以下五个模板是prompt-patterns.md的绝对核心逐条继承并附使用说明。占位符必须替换后才能运行。4.1 探索 promptExplore先复述真实接口我要验证 feature。 先阅读这些文件并只总结当前真实对外接口不要假设旧文档、旧 prompt 或旧 tool 名称仍然正确 source_paths 然后给我一个最小 smoke test 计划只包含 1. happy path 2. 一个边界/异常场景 3. 一个清理、恢复或中断场景 每个场景都写清楚目标、预期信号和要检查的产物。使用说明这一轮的目的是事实对齐——让 Agent 先读源码/文档输出当前真实接口与最小三场景计划。它天然与 SKILL.md 的三个场景默认覆盖正常路径 / 边界条件、非法输入或容量极限 / 中断、重试、清理或恢复一致。如果 Agent 在此轮复述出与仓库不一致的接口名应立即纠正不要带病进入执行轮。4.2 执行 promptExecute一轮只执行一个场景在当前 session 里只执行这个场景goal 约束 constraints 执行前先复述你将使用的工具或命令。执行时记录关键 task id、输出片段、文件路径和任何需要后续复盘的标识符。不要扩展到其他场景。使用说明执行轮强制先复述再执行这是让 Agent 的行动可预测的关键机制不要扩展到其他场景用于防止 Agent 在测试中顺手帮忙做了别的操作例如顺便改配置、跑额外命令污染证据。关键标识符task id、审批 id、输出路径必须记录因为它们是复盘轮的索引。4.3 观察 promptObserve只读不跑现在不要继续跑新的测试。 只读取并总结这次运行已经产生的状态和文件 artifact_paths 请明确指出哪些证据支持了预期哪些证据反驳了预期哪些地方仍然不确定。使用说明观察轮把读取证据与继续测试硬性分离。模板要求输出三分类结论——支持预期的证据 / 反驳预期的证据 / 仍不确定的点。这与 SKILL.md 汇报环节的已确认 / 与预期不符 / 仍有歧义三分法完全同构是避免仅凭 assistant 最终文本推断正确性的手段运行时文件和工具结果才是事实来源见 SKILL.md。4.4 复盘 promptRetrospective从 session 产物回溯全流程请根据这个 session 目录复盘整个 smoke test session_dir 重点阅读 context.jsonl、wire.jsonl 和相关运行产物。输出 1. 实际执行流程 2. 关键 tool 调用与结果 3. 与预期不一致的点 4. 最小复现步骤使用说明复盘轮是证据链的最终落点。context.jsonl记录会话上下文各 role 的消息、tool_calls、usage 等wire.jsonl记录 Wire 协议层的结构化事件流。两者在仓库中的实现值得注意context.jsonl在Session.create中创建若已存在会被截断重建src/kimi_cli/session.pywire.jsonl由WireFile管理首行写入带protocol_version的 metadata 头后续每行是一条WireMessageRecordtimestamp WireMessageEnvelopesrc/kimi_cli/wire/file.py。wire 事件类型覆盖TurnBegin、StepBegin、ContentPart、ToolCall、ApprovalRequest、StatusUpdate等见 src/kimi_cli/wire/types.py因此复盘轮不仅能还原Agent 说了什么还能还原每一步调用了哪个工具、审批流如何走、上下文 token 如何变化——这正是最小复现步骤的素材来源。4.5 兼容性校验 promptCompatibility Check防接口幻觉在运行 smoke test 之前先从提供的文档或代码中复述当前真实可用的工具及其准确名称。不要臆造旧版工具名。如果任务涉及状态或时序将工作拆分为多轮而非一次性长回复。使用说明这是一个前置护栏通常在探索轮之前或与探索轮合并使用。Kimi Code CLI 的 tool 集合在持续演进例如文件工具、shell 工具、plan 工具的 prompt 均在src/kimi_cli/tools/下有各自定义旧示例中的工具名可能已经失效。此模板强制 Agent从当前文档或代码复述工具名从源头杜绝幻觉接口。五、模板落地结合非交互模式的完整冒烟流程模板只有配合正确的运行方式才有意义。feature-smoke-testSkill 给出了一套与上述模板严丝合缝的执行协议5.1 会话隔离SMOKE_DIR$(mktemp -d /tmp/kimi-smoke-XXXXXX)使用/tmp下的一次性目录作为--work-dir。CLI 的 session 路径由~/.kimi/sessions/md5(work_dir)/决定不同的 work-dir 自动产生独立 session 命名空间不会污染正常项目的 sessionSKILL.md。如果功能会编辑文件绝不要用活跃仓库作为 work-dir。5.2 默认执行方式uv run python -m kimi_cli.cli \ --print \ --prompt 你的测试 prompt \ --work-dir $SMOKE_DIR echo exit_code$?--print是 print 模式非交互其 CLI 定义为auto-dismisses AskUserQuestion and auto-approves tool calls for this invocationsrc/kimi_cli/cli/init.py等价于自动启用--yolo--yolo/--yes/-y/--auto-approve见同文件 L189-L198适合无人值守冒烟。执行后必须先检查退出码非零表示 CLI 本身崩溃或超时应优先排查进程级错误再看 session 产物。5.3 备选执行模式需求命令要点长 prompt 通过 stdin 传入cat PROMPT \| uv run python -m kimi_cli.cli --print --input-format text --work-dir $SMOKE_DIR结构化输出便于程序解析追加--output-format stream-json输出逐行 JSON只看最终结果用--quiet等价于--print --output-format text --final-message-onlysrc/kimi_cli/cli/init.py注意--input-format、--output-format、--final-message-only都要求配合--print使用否则 CLI 会报参数错误src/kimi_cli/cli/init.py。5.4 检查 session 产物运行后按复盘模板检查~/.kimi/sessions/.../context.jsonl~/.kimi/sessions/.../wire.jsonl功能创建的 session 级文件仓库提供了定位工具uv run python .agents/skills/feature-smoke-test/scripts/inspect_session.py --share-dir ~/.kimiinspect_session.py 会自动定位最新 session汇总文件清单、context.jsonl按 role 统计 尾部记录摘要assistant 记录会列出工具名、wire.jsonl按消息类型统计含StepBegin/ContentPart/ToolCall/ApprovalRequest等摘要以及后台任务tasks/下的 spec/runtime/control/consumer 与 output.log。脚本退出码 0 正常汇总1 session 目录缺失或无法解析。如果功能会创建后台任务、通知或附属文件直接检查这些文件不要只依赖模型摘要。六、模板的刻意执行纪律与汇报规范最后模板体系背后有一条贯穿性纪律SKILL.md执行过程中维护运行日志记录完整 prompt、关键工具调用、task id/输出路径/审批 id、时序敏感时的时间戳——不要仅凭 assistant 最终文本推断正确性。汇报时把结果分为三类已确认的行为 /与预期不符的行为 /仍有歧义、需要更确定性复现的行为。对每个 bug 或回归记录触发它的 prompt、精确 session 路径、证明它的产物路径、可推导的最小复现步骤。当发现与预期不符时模板工作流并不止于报告Skill 建议对每个问题同时启动多个独立探查方向从入口沿调用链追踪、检查输入数据各阶段变化、检查持久化状态一致性、运行相关单元/集成测试每条方向独立汇报方向与范围、发现的事实附文件路径和行号、结论已定位根因 / 已排除 / 需进一步调查最终综合输出根因、证据链、修复建议与回归风险。七、小结prompt-patterns.md提供的是把冒烟测试从随性对话升级为可复现实验的模板体系先按状态/时序/审批/产物/接口变化判定单多轮再填好 8 个变量然后依次走探索、执行、观察、复盘、兼容性校验五段流程最后结合--print非交互模式、--work-dir隔离与context.jsonl/wire.jsonl产物完成证据闭环。这套方法不依赖任何特定模型的能力只依赖流程约束与产物事实可稳定复用于 Kimi Code CLI 后续每一个新功能的回归验证。模板原文references/prompt-patterns.mdSkill 完整流程SKILL.mdsession 产物检查脚本scripts/inspect_session.py产物落盘实现src/kimi_cli/session.py、src/kimi_cli/wire/file.py【免费下载链接】kimi-cliKimi Code CLI is your next CLI agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kimi-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表