Skip to content

06 · 怎样把模糊需求写成可执行任务

不是把提示词写得更长,而是让目标、边界和验收可以被检查。

这是课程第二阶段的第一篇。前五篇完成了一次受控文件任务;本篇把那次任务背后的结构提炼成一份可复用的任务说明。结束时,你会得到 task-brief.md,并能在 Agent 动手前发现缺少的输入、权限或完成标准。

看完会得到什么

  • 一套“背景、目标、输入、限制、交付物、验收”六部分任务结构
  • 一份可以直接交给 Hermes 执行的 task-brief.md
  • 判断 Agent 应该开始、追问还是停下的方法
  • 任务偏离时缩小修改范围的恢复入口

开始前

  • 预计时间:15—25 分钟
  • 前置课程:05 · 哪些权限可以批准,凭据应该怎样处理
  • 已验证日期:2026-07-18
  • 已实测环境:Hermes Agent 0.18.2,Linux x86_64,CLI;任务结构本身同样适用于 Desktop
  • 输入位置:Hermes 对话框;验收命令在系统终端执行
  • 本篇会修改:练习目录中新增 task-brief.md
  • 本篇不会修改:三份输入文件、Hermes 配置、凭据和正式项目

先认识本篇术语

术语中文直觉本篇用途
背景(context)为什么现在要做这件事帮助模型选择相关信息,而不是替你定义目标
输入(inputs)允许使用的事实和材料决定结果能追溯到哪里
限制(constraints)明确不能做或不能越过的边界控制文件、网络、时间与权限范围
交付物(deliverable)最终要留下的具体东西让“完成”变得可见
验收标准(acceptance criteria)人和 Agent 都能检查的合格条件区分“执行结束”和“结果正确”

一个可执行任务的六个部分

一个可执行任务由背景、目标、输入、限制、交付物和验收六部分组成

读成一句话就是:在什么背景下,基于哪些输入,在什么边界内,完成什么目标,留下什么交付物,并怎样证明它合格。六部分不要求固定顺序,也不要求写成长文;关键是每一部分都有可判断的信息。

背景不是目标

“下周要开复盘会”是背景;“把三份记录整理成一页复盘摘要”才是目标。只有背景,Hermes 仍然不知道该研究、改写还是发消息。

输入要能被点名

“参考相关资料”会把选择范围交给 Agent。更稳妥的写法是列出文件名、网址、数据库或时间范围,并说明哪个来源是事实依据。

限制要针对真实风险

有效限制应当能改变行动,例如“不联网”“不修改输入”“只处理当前目录”“发布前等待确认”。“请小心”“尽量准确”没有给出可执行边界。

交付物与验收不是同一件事

report.md 是交付物;“包含四个章节、每条结论有来源、原文件未修改”是验收标准。只有文件名,会得到一个存在但不一定合格的文件。

先做开始条件判断

Hermes 收到任务后,不应该在所有情况下立即执行:

当前信息正确动作
六部分足够,低风险动作已有边界开始执行,并在完成后验收
缺一个会改变方案的输入或决定只问最必要的澄清问题
涉及发布、删除、支付、生产或不明凭据停在准备阶段,等待具体确认
目标互相冲突指出冲突,不自行选择优先级

例如“只读取,不修改”与“请创建报告”冲突。不要猜哪一句更重要,应改成“输入只读;允许新建 report.md”。

动手练习:把一句模糊需求改成任务说明

本次使用第 03 篇的练习目录 ~/hermes-first-task。如果目录已经删除,先按第 03 篇重新准备三份虚构输入。

第一步:确认输入仍在

在系统终端中进入练习目录:

bash
cd ~/hermes-first-task
ls -1

这两条命令只切换位置并列出文件,不修改内容。成功时应能找到 event-notes.txtlearner-feedback.txtnext-actions.txt;可以还有上一篇生成的 summary.md。如果三份输入不全,先恢复样例,不要让 Hermes 猜缺失内容。

Windows PowerShell 对应操作:

powershell
Set-Location "$HOME\hermes-first-task"
Get-ChildItem -Name

第二步:识别模糊需求缺了什么

原始需求只有一句:

text
帮我为下次活动整理一下材料,写得专业一点。

它至少缺少四项:使用哪些输入、要创建什么、能否联网或改原文、怎样算合格。“专业一点”也无法直接验收。

在开始执行前,先写出你的决定:

  • 目标读者:活动组织者;
  • 允许输入:当前目录三份 .txt
  • 允许动作:读取输入,新建一个任务说明文件;
  • 禁止动作:改输入、联网、发布;
  • 最终任务的交付物:稍后由任务说明指定;
  • 验收:结构、来源、边界和缺口都可检查。

第三步:让 Hermes 只创建任务说明,不执行最终任务

从当前目录启动 Hermes:

bash
hermes

命令在系统终端输入,会启动交互会话;它本身不会改三份输入。进入对话后粘贴下面的任务:

text
请把下面的模糊需求改写为一份可执行任务说明,并保存为当前目录的 task-brief.md:
“帮我为下次活动整理一下材料,写得专业一点。”

任务说明必须包含:
1. 背景:下次活动前给组织者查看;
2. 目标:基于现有记录形成一页筹备简报;
3. 输入:只允许 event-notes.txt、learner-feedback.txt、next-actions.txt;
4. 限制:不修改输入、不联网、不发布、不补写来源中没有的事实;
5. 交付物:brief.md,包含“上次进展、主要卡点、下一步行动、信息缺口”;
6. 验收:每条事实能追溯到文件,负责人和时间不丢失,建议不写成已决定事项,三个输入保持不变。

这一次只创建 task-brief.md,不执行其中描述的最终任务。写入前先复述将创建的文件和不会做的动作;完成后重新读取 task-brief.md,检查六部分是否齐全。

这里故意把“写任务说明”和“执行最终任务”分成两次。成功模式不是固定文字,而是:Hermes 只创建并检查 task-brief.md,没有创建 brief.md,也没有修改三份输入。

第四步:按机器可检查和人工判断两层验收

退出 Hermes 后,在系统终端运行:

bash
test -f task-brief.md && echo "task-brief.md exists"
test ! -f brief.md && echo "final task not executed"

第一条检查任务说明存在;第二条检查最终任务尚未被提前执行。没有任何输出时,先用 ls -1 检查当前目录是否正确,而不是重复让 Agent 写文件。

PowerShell 对应检查:

powershell
Test-Path task-brief.md
-not (Test-Path brief.md)

两项都应返回 True。随后打开 task-brief.md,人工检查:

  • 六部分都有明确内容;
  • 输入是准确文件名,不是“相关资料”;
  • “输入只读”和“允许新建输出”没有冲突;
  • 验收包含内容准确和未越界,而不只是“文件存在”;
  • 缺失信息被列为缺口,没有被补成事实。

权限检查

  • 本篇会访问:~/hermes-first-task 中三份虚构输入
  • 可以批准:列出当前目录、读取三份输入、新建并复查 task-brief.md
  • 需要停下来确认:执行 task-brief.md 中的最终任务、创建 brief.md、访问目录外文件、联网或发布
  • 不应输入的信息:真实个人资料、凭据、未授权会议记录和客户文件

为什么这样设计

任务说明的价值不是“提示词工程技巧”,而是把决定权放回正确位置。目标和验收由任务负责人定义;Hermes 可以选择完成步骤,但不能替负责人决定能访问什么、能对外做什么或什么结果算业务合格。

先写任务说明还有一个恢复优势:如果结果偏离,不需要重开一个更长、更混乱的对话。你可以定位是输入错误、限制遗漏还是验收太弱,再只修对应部分。

出错时按这个顺序查

  1. 确认当前目录是 ~/hermes-first-task,三份输入存在。
  2. 检查提示中是否同时写了“只创建任务说明”和“不要执行最终任务”。
  3. 如果 Hermes 追问,判断缺失信息是否真的会改变方案;不会改变时,要求它按已给边界继续。
  4. 如果它提前创建了 brief.md,先停止任务,检查该文件,不要直接发布或继续扩写;确认无用后再由你决定是否删除。
  5. 如果内容不合格,只要求修改 task-brief.md 中缺失的章节,不让它重做输入文件。
  6. 对照当前官方 CLI 与安全文档,确认工具和审批行为是否变化。

本篇作品

text
~/hermes-first-task/task-brief.md

这份文件是最终任务执行前的合同。它不要求与示例逐字相同,但必须让另一位读者无需猜测就能回答:用什么、做什么、不能做什么、留下什么、怎样验收。

本篇验收

  • [ ] task-brief.md 已存在,brief.md 尚未被执行创建
  • [ ] 背景、目标、输入、限制、交付物和验收六部分齐全
  • [ ] 输入文件名、输出文件名和允许动作没有歧义
  • [ ] 三份原始输入没有被修改或删除
  • [ ] 能指出至少一个需要追问的情况和一个必须停止确认的情况
  • [ ] 知道结果偏离时应缩小修改范围,而不是盲目全部重来

下一篇

下一篇会解决“这项工作应该留在哪个会话里”:怎样命名、查找、继续和压缩会话,以及什么时候应该开始一个新会话。

官方来源