AI Agent 输入契约:让数字员工先拿到正确上下文再开工

这篇文章记录万象片场如何给 AI Agent 设计输入契约:把目标、边界、资料、验收标准和失败处理写清楚,让数字员工不再靠猜测执行自动化任务。

AI自动化数字员工Agent实战工作流
笔记本电脑旁的文档与流程图,象征 AI Agent 开工前需要明确的输入契约和上下文包

在万象片场的自动化实践里,我越来越确信一件事:很多 AI Agent 任务失败,不是模型不会做,而是它一开始拿到的输入就不够清楚。

人类同事接到任务时,会追问背景、目标、截止时间、权限边界和验收方式。但数字员工往往不会主动问那么多,尤其在定时任务里,它会直接根据当前提示和本地环境开工。输入模糊时,它也许依然能产出内容、改文件、跑命令,可结果可能偏题、重复、越界,或者完成后没有足够证据证明任务真的做好。

所以我现在把 AI Agent 的任务输入当成一份“输入契约”来设计。它不是一段随意提示词,而是一份让数字员工可以安全开工的上下文包:今天要做什么、参考什么、不能做什么、做完怎么算合格、失败时怎么停。

这篇文章记录万象片场正在使用的一套最小输入契约方法。

一、为什么提示词不等于输入契约

很多人把 Agent 自动化理解成“写一段更聪明的提示词”。这当然有用,但还不够。

提示词更像临时说明,输入契约更像开工单。两者的区别在于:

项目普通提示词输入契约
目标可能只说“帮我写一篇文章”明确数量、方向、产物和闭环
上下文依赖模型记忆或临场猜测指定必须读取的文件、目录和历史记录
权限常常默认“能做就做”明确哪些动作允许自动执行,哪些必须停止
验收写完就算完成规定预览、构建、部署、线上验证、Git 状态
异常出错后随机补救规定重试、降级、停止和交接方式

对一次性的聊天任务来说,提示词可能够用。但对每天自动运行的数字员工来说,只靠提示词很危险。因为长期任务的难点不是“今天能不能生成”,而是“每天能不能在正确边界内稳定完成”。

万象片场的博客自动发布就是典型例子:如果只说“早上发一篇 AI 自动化文章”,Agent 可能写出重复标题,也可能跳过本地预览,甚至顺手修改不该动的项目。输入契约的作用,就是在它开工前先把轨道铺好。

二、输入契约的第一块:唯一主目标

数字员工最怕目标同时过多。

一个模糊任务可能这样写:

今天继续优化博客内容系统,写点 AI 自动化方向的东西,顺便看看能不能部署。

这句话对人类来说还能理解,但对 Agent 来说有太多岔路:是写草稿,还是发布?是优化旧文章,还是新增文章?是只看博客,还是也动社媒和主站?

输入契约里的主目标必须压缩成一句可执行的话:

今天早间槽只发布 1 篇 AI 自动化 / 数字员工 / Agent 实战方向的博客文章,
完成 Markdown 写入、本地预览、构建、部署、线上验证和 Git 同步。

这里有几个关键限定:

  1. 只发布 1 篇:防止任务膨胀;
  2. 只做早间槽方向:避免跑到 AI 视频、变现或其他栏目;
  3. 必须完成闭环:不是写完 Markdown 就停;
  4. 包含 Git 同步:让结果进入版本管理。

主目标越窄,Agent 执行越稳。自动化不是把所有愿望塞进一次任务,而是让每个任务都有清晰边界。

三、输入契约的第二块:必须读取的现场

Agent 不能凭记忆工作。

对万象片场的博客任务,我会把“必须读取的现场”写得很具体:

  • 内容计划文件:今天属于哪个槽位,优先主题队列是什么;
  • 已有文章目录:哪些标题已经发布,避免重复;
  • 内容体系文件:品牌定位、平台分工、文章结尾承接方式;
  • Git 状态:工作区是否干净,是否存在无关改动;
  • 项目路径:只操作指定博客项目,不触碰禁止项目。

这一步看似基础,却能解决很多自动化事故。

比如计划文件里前 10 个早间槽主题已经全部发布,如果 Agent 不读取已有文章,它很容易重复写《我如何用 AI 搭建一个自动发布博客的数字员工》。如果它不看 Git 状态,就可能把上一次遗留的无关文件一起提交。如果它不确认项目路径,就可能误操作另一个站点。

输入契约的原则是:凡是会影响判断的上下文,都不要让 Agent 靠猜。

四、输入契约的第三块:权限边界

数字员工最需要被提前告知的,不只是“能做什么”,还有“不能做什么”。

我会把权限边界分成三层:

1. 可自动执行

这类动作属于任务闭环,可以直接做:

  • 读取计划和已有文章;
  • 新增或修改本次文章 Markdown;
  • 启动本地预览;
  • 检查首页、归档页、文章页;
  • 运行 build 和 deploy;
  • 验证线上文章链接;
  • 提交并推送本次相关文件。

2. 可观察但不修改

这类动作可以检查,但不要改变状态:

  • 查看线上页面是否可访问;
  • 查看 Git diff;
  • 查看部署输出;
  • 检查图片 URL 是否能加载;
  • 比对已有标题和计划主题。

3. 必须停止或交接

这类动作不能让 Agent 自己硬跑:

  • 登录、验证码、安全验证;
  • 付款、投流、购买服务;
  • 删除线上资源;
  • 修改社交账号名称、头像、简介;
  • 操作明确禁止的项目;
  • 覆盖不属于本次任务的文件。

权限边界不是降低效率,而是建立信任。一个可靠的数字员工,不是“什么都敢做”,而是知道什么时候应该停下来。

五、输入契约的第四块:验收标准

如果任务开始前没有定义验收标准,任务结束时就很容易陷入“看起来完成了”。

我现在会在输入契约里提前写好验收清单:

  • 文章文件在正确目录下;
  • frontmatter 包含标题、描述、日期、标签、hero 图和 alt;
  • 标题不与已有文章重复;
  • 本地首页能看到新文章;
  • 本地文章页排版正常;
  • hero 图片加载成功;
  • npm run build 通过;
  • npm run deploy 成功;
  • 线上文章 URL 可访问;
  • Git 只提交本次相关文件并成功推送。

这份清单的作用,是让 Agent 不再用一句“已完成”替代证据。

在万象片场,我希望每次自动发布都能留下可审计结果:文章路径、线上链接、部署状态、Git 状态。这些证据不是给机器看的,而是给未来的自己、后续复盘和内容资产化看的。

六、输入契约的第五块:失败处理

输入契约还应该提前说明:如果中途失败,Agent 应该怎么做。

我通常把失败处理写成四类:

  1. 内容类问题:标题重复、主题偏离、frontmatter 不合法,先修正再继续;
  2. 构建类问题:Markdown、Astro 或依赖报错,先定位并修复,不部署失败版本;
  3. 线上验证问题:如果原始 HTTP 检查异常,优先用更接近浏览器的方式验证,不要只凭一次请求判断站点坏了;
  4. 权限类问题:遇到登录、验证码、账号权限、付款或删除风险,停止并交接。

这能避免 Agent 在错误方向上越跑越远。

一个成熟的数字员工应该知道:失败不是问题,失败后乱补救才是问题。输入契约把失败处理写在前面,就像片场开拍前先讲安全预案,真正出状况时才不会慌。

七、一个最小输入契约模板

下面是我会给 AI Agent 使用的最小版本:

任务主目标:
- 今天只完成:
- 产物路径:
- 最终线上 URL:

必须读取:
- 计划文件:
- 已有内容目录:
- 品牌/内容体系:
- Git 状态:

允许自动执行:
- 写入/修改本次相关文件
- 本地预览
- build / deploy
- 线上验证
- Git 提交推送

禁止或需交接:
- 登录/验证码/付款/删除
- 社交账号资料修改
- 非本项目文件修改
- 无关项目操作

验收证据:
- 文件路径:
- 本地预览:
- 图片加载:
- build:
- deploy:
- 线上链接:
- Git 状态:

失败处理:
- 内容问题:修正后继续
- 构建问题:不部署,先修复
- 权限问题:停止并交接

这个模板不复杂,但它能显著提升 Agent 的稳定性。尤其是当任务变成每天、每周、每月自动运行时,输入契约比“灵感提示词”更重要。

结尾:先给数字员工一张清楚的通告单

如果把 AI Agent 当成数字员工,就不能只在它犯错之后再怪它“不懂”。很多时候,它缺的不是能力,而是一张清楚的通告单。

万象片场接下来会继续把这些自动化经验沉淀成可复用资产:晨会机制、输入契约、验收清单、交接记录、复盘模板。它们看起来不像炫技,却是一个人长期运营 AI 内容系统的底层基础。

下一步,我会继续拆解:如何把这些输入契约沉淀成固定任务模板,让每一个新 Agent 上岗时都先学会按规则开工,而不是靠临场猜测。