关于 planning
planning 是用于微调项目的 Agent skill,帮助用户梳理目标、选择工作流并生成可审阅的任务计划。它会先确认评估优先或直接微调路径,并在计划获批后按技能流程执行。
主要功能
- 01逐步澄清计划分支决策
- 02提前提示下游限制
- 03按技能依赖安排任务
- 04用户批准后更新计划状态
适用场景
- 01规划模型评估或微调流程
- 02根据已有输入跳过生成步骤
- 03响应用户反馈调整待办计划
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ awslabs/ agent-plugins --skill planning安装后在 Claude Code 中输入/planning确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/evaluate-first-plan.mdinput-output-contracts.mdmodel-customization-plan.mdskill-routing-constraints.md详细介绍
原则
- 一次只问一个问题。 每个问题都应明确计划中的一个分支决策。避免提出泛泛的问题或超出范围的问题。
- 尽早说明限制。 如果用户的决策会限制后续选项,应在计划最终确定前指出。
- 计划应简短。 只纳入实现用户所述目标所必需的任务。
- 不要询问已知的信息。 提问前先检查对话历史和项目文件。
阶段 1:头脑风暴
目标: 了解用户想要实现什么,并确定计划中应包含哪些技能。
阅读 references/input-output-contracts.md、references/model-customization-plan.md 和 references/evaluate-first-plan.md,以便:
- 确定哪些技能可能与用户所述目标相关。
- 检查用户是否具备每项技能所需的输入材料。如果没有,找出能够生成这些输入的技能,并先将其加入计划。
- 对技能进行排序,确保它们之间顺畅衔接,避免陷入无法继续的情况。
- 检查推荐的工作流是否符合用户的需求。如果不符合,评估需要进行哪些修改,并根据契约表确认这些修改是否可行。
- 确定匹配的工作流中哪些技能可以跳过。
- 尽早说明限制 — 如果用户的决策(模型选择、区域、评估方法)会限制后续选项,应主动提及,征求用户意见,并据此调整计划。
头脑风暴期间:
- 工作流选择关卡: 生成任何计划之前,先确定用户想采用先评估工作流还是直接微调工作流。如果用户已明确选择(例如“先评估”“跳过评估”“已评估基础模型”),则按其选择继续。否则,简要介绍两种选项及其优缺点,并请用户选择。仅说“微调”或只提及某种技术,不代表用户明确选择跳过评估 — 用户可能不知道可以先评估。用户选定路径之前,不要提供计划。用户选择后,只阅读相应的参考计划。
- 利用契约表中的限制列,在作出相关决策后立即说明限制。示例(并非完整列表,请查阅契约表了解所有限制):
- 用户选择 Nova 模型 → 提醒其部署区域有限。
- 用户选择区域 → 提醒其该区域是否与模型可用性冲突。
- 如果存在限制,检查是否需要调整计划中的其他步骤。
- 不要询问用户选择基础模型或表达偏好。模型选择完全由
model-selection技能负责。 - 一旦能够确定计划所需的技能和工具,就立即进入阶段 2。
阶段 2:生成计划
目标: 提出结构化计划供用户审核。
将计划生成为编号任务列表。每项任务包含:
- 一个简短名称
- 一句话说明将要执行的内容
- 负责处理该任务的技能(如适用)
格式:
Based on what you've described, here's what I propose:
1. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])*
2. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])*
3. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])*
Does this plan look right, or would you like to change anything?
计划生成规则:
- 根据契约表中的前置条件列推断顺序 — 技能不能出现在其前置条件之前。如不确定,请查阅
references/skill-routing-constraints.md。 - 只提供现有技能支持的能力。如果用户需要的内容没有技能支持,应明确说明。
- 根据用户的实际意图定制计划。并非每个计划都需要包含所有技能。
- 如果用户已有输入材料(例如训练好的模型),则跳过生成这些材料的步骤。
用户批准计划后,将其写入 PLAN.md,并保存到目录管理技能定义的项目目录结构中。
# Plan
1. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_
2. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_
3. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_
状态指示:
- ⬜ 尚未开始
- 🔄 进行中
- ✅ 已完成
每当任务状态发生变化时,都要更新 PLAN.md。
阶段 3:迭代计划
目标: 反复完善计划,直到用户批准。
- 如果用户提出修改建议,则根据反馈重新生成计划。
- 如果用户批准,则将任务交接给第一个任务对应的技能,开始执行。
执行
计划获批后:
- 开始任务前,将其在
PLAN.md中的状态更新为 🔄(进行中)。 - 如果任务对应某项技能,则在开展任何工作前加载该技能的完整 SKILL.md。不要凭一般知识尝试完成任务——始终遵循该技能的说明。
- 按照已加载技能的工作流执行任务。
- 任务完成后:
-
将其在
PLAN.md中的状态更新为 ✅(已完成)。如果任务生成了输出文件(脚本、笔记本、清单),请在已完成的任务下记录文件路径:- [x] 微调模型 - 输出:`scripts/01_sft_finetuning.py` - 输出:`manifests/sft-llama-20260515.json` -
简要确认任务已完成,然后继续下一个任务。
-
- 如果用户在执行过程中提出新请求:
- 已完成的任务不可更改——不要修改它们。
- 根据用户的新输入重新生成剩余任务。
- 继续执行前,先将更新后的剩余任务交由用户批准。
计划完成
计划中的所有任务完成后,向用户说明:
“计划中的所有任务都已完成。接下来你想做什么?”
这将重新进入阶段 1(头脑风暴),开始设定新目标。没有终止状态——只要用户有需要,对话就会继续。
参考资料
加载与客户意图匹配的参考计划,然后根据客户需求进行调整。
references/evaluate-first-plan.md— 先评估再决定是否微调的工作流:先评估基础模型,再决定是否进行微调。references/model-customization-plan.md— 直接微调计划。用户已明确决定进行微调时使用。references/input-output-contracts.md- 展示所有技能、必需输入、产出、前置条件和限制的表格。references/skill-routing-constraints.md— 可选的补充资源,介绍强制纳入规则、顺序约束和技能边界规则。
评论
支持 Markdown