乐于分享
好东西不私藏

AI工作流的依赖注入

AI工作流的依赖注入

编程有个概念叫依赖注入——不把东西写死,运行时动态加载。

今天搞了一个很复杂的AI工作流,我觉得也需要这个dependancy injection的概念。

现在的痛点:

大多数AI应用,prompt是硬编码的。要改行为?改prompt。加能力?改prompt。换个场景?重写prompt。

这像早期编程——所有逻辑写在一个main函数里,改一个地方,处处牵连。

我能想到的解法:依赖注入逻辑。

把AI工作流拆成三层:

主干prompt = 应用骨架。
定义角色、目标、约束。不关心具体怎么做,只关心做什么。

相当于程序入口。

Harness = 编排层。
决定调用哪个skill、什么顺序、怎么传数据。相当于IoC容器。

Skill = 具体能力。
每个skill是独立的,有自己的prompt、工具、输入输出,还能带入能力边界和反例。他们像插件一样,插拔自如。

举个例子:

主干prompt: "你是一个研究助手"
harness: 根据用户问题,加载行业专家经验和思维框架
├── skill: web-search (搜索)
├── skill: summarize (摘要)
├── skill: fact-check (事实核查)
├── skill: report (生成报告)
└── skill: review (评审改进)

用户问一个问题,harness拆解问题关键字和核心变量,再决定怎么用skill,每一个skill 调用顺序,调用几次...

每个skill都是独立的markdown文件。要换搜索工具?换一个skill文件就行。主干prompt不用动。

这就是解耦的力量。

程序猿们花了二十年学会这个。AI工作流,现在就已经开始了。