Agent 的 Profile 该分成哪几节
岗位卡写完了,它还是不知道下一步干什么
我给那个写公众号文章的 Agent,最先写的是岗位卡。八段:岗位名称、一句话岗位定义、输入、处理动作、输出、成功标准、人工兜底、本期不做。写完那一刻我以为可以直接开跑了。
真跑起来才发现,岗位卡回答的是「这个岗位允许做什么、做到什么算成功」,回答不了「这一步做完先干哪个、怎么判断能不能往下走」。最明显的是它对处理范围的交代——分析素材、确认写作方向、完成文章和封面,这几件事都写进去了,但没有交代「确认写作方向」是排在「评估选题价值」之前还是之后,也没有交代方向还没确认的时候,是停下来等,还是先把正文写了回头再改。
这两类问题的读者不是同一个。岗位卡我是在开工前和验收后读的,我要靠它决定「这活儿归不归它、这次算不算干完」。Profile 是 Agent 在执行中的每一步都要读的,它要靠这份文件决定「现在做什么、做完检查什么、卡住了找谁」。
所以 Profile 不是岗位卡的扩写版。同一件事在两份文件里都出现,不算重复,因为两边写的是它的不同侧面:岗位卡写「人工兜底」是为了让我知道什么情况下该我上场,Profile 写「人工兜底」是为了让 Agent 知道在哪一步必须停下来问。
判据:这一段删掉,是谁会不知所措
我用来给每一段文字归位的问法只有一个:把这段删掉,是 Agent 不知道下一步该做什么,还是我不知道该不该批准它?
前者归 Profile,后者归岗位卡。
举两个当场就能判的例子。「不编造事实、数据、案例或引用来源」这条,删掉之后 Agent 照样能跑完全程,出来的东西我却不敢用——它决定的是我批不批,所以它的主场在岗位卡的「本期不做」。而「提纲确认之后再去检索和核验资料」这条,删掉之后我该批还是批,但 Agent 会不知道核验该放在提纲前还是提纲后——它决定的是执行顺序,主场在 Profile。
还有第三份文件夹在中间。我这个岗位另有一份工作流卡片,它既不写边界也不写顺序,只写判断:十二个判断点,每个都写成「判断点 + 判断依据」两段。比如「哪些资料必须核验」这个判断点,配的依据是「只有会影响核心结论或读者决策的数字和事实才必须查证」。这个成对的写法是我后来觉得最值的一处:只写怎么判,遇到卡里没写到的边界情况就没法推广;补上为什么这么判,Agent 才能在没被写到的情况下做出跟我一致的选择。
三份文件的分工,我自己的说法是:岗位卡讲边界,工作流卡片讲判断,Profile 讲执行。
我实际用的十节
Profile 我分成了十节,顺序是:岗位目标、输入范围、工作流程、输出标准、质量标准、自检规则、异常处理、人工兜底、不允许做的事、完成前检查清单。逐节说一下它们各自在管什么。
岗位目标是一句话,写的是目标态。这里有个我没有回避的落差:岗位卡的一句话定义把交付终点写成「保存到指定目录及微信公众号草稿箱」,而草稿箱写入这条链路到今天还没接通,实际的交付终点是「文章和封面已生成并保存」。我没有因为没做到就把这半句从目标态里抹掉,而是让目标态和现状说明并存——抹掉它,我会忘了这条链路还欠着;只写目标态不写现状,Agent 又会把「已保存到本地」当成「已进草稿箱」上报。
输入范围管的是什么样的输入允许开工。它跟约束是连着的:不能绕过登录、付费墙或访问权限去读文章,遇到这类链接就不是「想办法读」,而是转人工要一份可读的替代素材。
工作流程是十三步:解析输入并建立任务上下文、确认账号阶段和内容策略、评估选题价值、生成写作方向并等待选择、生成并确认提纲、检索和核验资料、撰写正文、优化标题和搜索关键词、生成和检查封面、执行最终质量与风险检查、保存结构化成果、同步草稿箱、等待最终确认并记录发布效果。
这十三步的边界不是按篇幅均分的,我是压在三类位置上:需要人工确认的地方、产出物形态发生变化的地方、失败后回退目标不同的地方。第三类最容易被忽略——正文写得没有真人感,回退目标是「重写正文」;核心依据核验不过去,回退目标是「重新评估选题」。这两种失败退回的深度完全不同,所以它们中间必须有一刀。
输出标准管的是交付物长什么样。我的做法是不止存终稿,而是把每个人工确认节点的输入和输出都单独落盘:
01-source.md 原始链接、主题和素材
02-direction.md 备选方向和最终选择
03-outline.md 确认后的提纲和主要观点
04-references.md 补充资料和引用来源
05-article.md 公众号文章正文
06-cover.png 文章封面图
02 存的是「给了哪几个方向、最后选了哪个」,03 存的是「确认后的提纲」。闸门处的决定被固化成文件,而不是留在对话记录里。
质量标准放的是判什么算合格。它跟工作流卡片的判断依据有重叠,我的处理是把执行时当场要用的那几条抄进 Profile:提纲过不过看删除测试,删掉这段读者是否会失去重要的认知或行动依据,不会就删;语气分区处理,开场、过渡、解释、个人观点可以口语化,事实、风险、承诺必须严谨;标题可以适度强化吸引力,但正文必须兑现承诺,法律风险、数字、事实、人物言论绝对不能夸大。
自检规则和质量标准的差别,是前者判动作有没有真的做成,后者判产物好不好。我在这一节里写死的一条是:以回查到结果为准,不以调用没报错为准。草稿链路我先写好了成功判据——拿到返回标识之后再去查一次草稿列表,并且明文禁止把「接口已提交」当成「草稿已创建」上报,尽管这条链路本身至今还没接通。另一条来自封面:文件名叫 png,文件头却是 JPEG,本地保存的时候不会报错,接下游接口才暴露。所以落盘自检要校验内容特征,而不是校验文件名。
异常处理管失败之后往哪走。这一节我写的不是「报错就停」,而是给关键的外部能力留一条合法的降级路径:浏览器读取起不来的时候,改用命令行工具去取原文,这条是走通过的。
人工兜底是我改动最多的一节。常规闸门只有三个:确认写作方向、确认提纲、终审正文与封面——它们都卡在信息量收敛之后,也就是返工成本跳变的位置。其余闸门只在特定失败分支上触发,不占正常路径。另外发布权是单独一道:审核通过之后同步草稿不需要再问一遍,公开发布必须我确认。同步草稿和公开发布在我这里是两个权限等级。
不允许做的事是黑名单:不绕过人工确认直接公开发布、不编造事实数据案例引用来源、不洗稿或大段复制其他作者的内容、不擅自处理和发布高风险内容、不使用版权不明的素材、不绕过登录和付费墙、不承诺阅读量涨粉或转化结果。最后一条是对外口径,跟岗位卡里写的那些内部目标是两套东西,我没让它们混在同一节里。
完成前检查清单这一节不新增规则,它把散在前面几节、必须真的做一遍的动作重新列一次:六个文件齐不齐、封面的内容特征对不对、终审有没有拿到我的确认。写在各节里的检查,执行时最容易被顺过去;单独拉成一节,它就变成交付前必须走完的最后一道。
什么时候不用这么分
第一,任务只有一两步、而且失败了立刻就能看见,拆十节属于过度设计。这十节是从这个岗位实际的失败方式反推出来的,不是一份通用清单。
第二,岗位还没定形的时候,不要先写 Profile。我手上第二个岗位是给自己听播客、看视频做笔记用的,目前只写了岗位卡,正在拆工序,工作流卡片还没产出——我没有先去写它的 Profile,因为工序还没稳,写出来的执行细则改起来比重写还麻烦。
第三,三份文件的粒度不必强行对齐。同一个岗位,Profile 的工作流程是十三步,工作流卡片是十二步,差别在于后者把「保存结构化成果」和「同步草稿」并成了一步。我一开始想把数量对齐,后来放弃了:Profile 要指导执行,两个动作的失败方式不同就该分开;工作流卡片要给判断,这两步共用同一个判断依据,合并反而更清楚。为了对齐去改,丢掉的是信息。
这篇的判据来自我自己带 Agent 干活的实践,样本有限。它更像一份可以拿去验证的假设,而不是一份可以照抄的规范。
延伸阅读
- 下一篇(写大脑):把 Agent 的输出结构写死:每种词形各有固定段落
- 专题导读与七个阶段的地图:把 Agent 当成一个要上岗的员工来带:这个专题讲什么