一种通用的AI Native应用工作流

一种通用的 AI Native 应用工作流:把确定性交给代码,把创造性交给 Agent

最近我做了几个完全不同方向的 AI Skill,但是我发现:它们表面上千差万别,底层却很像——都能抽象成同一套初始化 → 反馈 → 更新的循环。

如果你也在做 AI Native 应用(尤其是 Skill / Agent 类产品),这套工作流也许对你也有一些启发。

非 AI 的总结

  • 结论一:通用工作流可以抽象成:建档(初始化)→ 更新(反馈)→ 输出(交付)。
  • 结论二:别把一切都丢给 AI:确定性的部分(取数、校验、落库)交给代码,创造性的部分(策略生成、总结、创作)交给 Agent。
  • 结论三:这不是“更保守”,而是更工程化:可用性更高、成本更稳定、token 更省。

下面把这套东西讲清楚。

1. 先把组件拆出来:四件套

我习惯把 AI Native 应用拆成四个基础组件(名字不重要,职责重要):

  1. 数据获取器(Data Fetcher):

    • 普通脚本代码
    • 负责从外部系统/API 拉取最新数据
    • 关键要求:稳定、可观测、可重试
  2. 基础信息档案(Profile):

    • 用户相对稳定的“底座信息”
    • 例如:年龄、目标、行业、定位、偏好、约束等
  3. 策略文件(Strategy):

    • 可迭代的“行动方案/规则集合”
    • 例如:训练计划、运营策略、投放节奏、选题库
  4. Skill 文件(Harness / Spec):

    • 你可以把它理解为 Harness engineering 的一部分
    • 负责定义:
      • 工具怎么用(比如 MCP / API 调用方式)
      • 策略如何生成与更新
      • 输出格式与质量要求
      • 评估方法(怎么判断好/坏)

这四件套组合起来,就能跑出一个非常通用的“闭环”。

2. 三个典型场景:建档 / 更新 / 输出

2.1 建档(初始化)

用户第一次使用时,系统需要做的不是“立刻给答案”,而是先建立长期可用的上下文:

  • 用户回答一份问卷(或半结构化访谈)
  • Agent 根据回答生成:
    • 第一版 Profile(基础信息档案)
    • 第一版 Strategy(策略文件)

这一步的关键不是“问得多”,而是:把未来更新所需的变量问出来。

2.2 更新(反馈驱动的策略迭代)

更新阶段的输入一般来自两类:

  • 最新数据:由数据获取器拉取
  • 历史策略与执行结果:由策略文件与(可选的)执行记录提供

Agent 的任务是:

  1. 读取最新数据
  2. 对比上一周期策略与目标
  3. 评估执行情况(偏差、瓶颈、异常)
  4. 产出新一版策略(增量调整,而不是推倒重来)

一句话:用数据给策略“打脸”,再让策略学会“改口”。

2.3 输出(按需交付)

输出阶段是面向用户的:

  • 用户提出当下需求(比如“给我本周计划”“复盘下哪里没做好”“帮我写三条短视频脚本”)
  • Agent 按照 Skill 规定的输出要求,把 Profile + 最新 Strategy 转换成可交付结果

这里 Skill 的价值会非常明显:它像产品的“交付规格书”,让输出稳定、可预测。

3. 为什么数据获取器要用代码,而不是让 Agent 去“自己上网看”?

因为数据获取这件事,天然属于确定性工作:

  • 你需要稳定性(今天能拉到,明天也能拉到)
  • 你需要可观测性(失败了要知道为什么失败)
  • 你需要重试/限流/登录态管理
  • 你需要合规边界(权限、速率、数据范围)

让 Agent 直接“自由浏览”当然也能做,但成本一般会变成:

  • token 换不来确定性
  • 失败还难以复盘
  • 一旦遇到 UI/状态机/登录态,你会在对话里描述 UI,AI 在 token 里猜 UI(熟悉的痛又来了)

所以我的偏好是:

数据获取交给脚本,其余能力(策略生成、总结、创作、评估)交给 Agent。

这是在“可用性”和“灵活性”之间取一个工程化的平衡点。

4. 两个例子:同一套工作流,不同的皮肤

4.1 AI 运动教练:用数据更新训练策略

在运动教练这个场景里:

  • 数据获取器:从佳明(Garmin)网站获取运动数据的脚本Garmin-Give-My-Data
    • 以 MCP 工具形式暴露给 Agent(Agent 负责调用,脚本负责稳定取数)
  • Profile:用户年龄、运动目标、训练史、偏好与限制等
  • Strategy:训练计划(例如一周训练安排、强度分配、恢复建议)
  • Skill:
    • MCP 的调用方式
    • 训练计划生成规则:长期计划+短期计划结合的两层更新策略
    • 训练效果评估方法(例如完成率、强度达标、疲劳迹象)

一个典型的“更新 + 输出”流程是:

  1. Agent 通过 MCP 拉取本周最新训练数据
  2. 对比上周训练计划与实际执行
  3. 评估执行情况(完成率、偏差原因、疲劳/恢复)
  4. 结合 Profile 调整并生成下一周训练计划

你会发现:这里 Agent 的“聪明”并不是凭空的,它是被数据喂出来、被策略约束出来的。

4.2 新媒体运营助手:用经营数据更新运营策略

换到新媒体运营场景:

  • 数据获取器:通过 API 从小红书、抖音等创作者中心获取
    • 粉丝数、播放量、互动率、完播率、涨粉来源等
  • Profile:账号定位、行业、受众画像、创作目标、资源约束(时间/预算/团队)
  • Strategy:运营策略
    • 选题方向、内容结构、发布频率、标题/封面策略、AB 测试节奏
  • Skill:运营的基础要求与技巧
    • 复盘框架
    • 指标解读口径
    • 策略更新的优先级规则

用户使用过程大致是:

  1. Agent 拉取运营数据
  2. 按 Skill 复盘策略与结果(哪些有效、哪些没用、哪些是噪声)
  3. 结合 Profile,生成新一个周期的运营策略

同一套“初始化—反馈—更新”,只是:

  • 运动教练的反馈是训练数据
  • 运营助手的反馈是经营指标

皮肤不同,骨架相同。

5. 这个抽象为什么“有拓展性”?

因为它天然支持外挂:

  • 新媒体运营助手可以外接自己的知识库/数据库
    • 存放历史爆款拆解、竞品案例、个人表达风格、禁用词库
  • 也可以把策略反哺到创作流程
    • 用运营策略生成选题池
    • 再由 Agent 直接产出脚本/标题/封面文案

当 Profile 与 Strategy 变成“可读可写的资产”,你就不再是每次都从一个聊天框重新开始。

6. 回到本质:初始化—反馈—更新

这套架构其实就是一个很朴素的循环:

初始化(建立上下文)→ 反馈(获取数据)→ 更新(迭代策略)→ 输出(按需交付)

相较于“全部交给 AI”的工作方式,它更像一种工程妥协,但这种妥协很值:

  • 把确定性的东西交给代码(数据获取、校验、落库、可观测性)
  • 把创造性的东西交给 Agent(策略生成、解释、总结、创作)

结果通常是:

  • 系统下限更高(更不容易翻车)
  • token 消耗更可控(少做无谓的猜测与重复对话)
  • 迭代更像“产品”,而不是“玄学调参”

最后留一句不严谨但很实用的话:

与其让 AI 无所不能,不如让它在你搭好的轨道上稳定地跑。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注