文章目录
P.S. 目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow,教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解,我22年的AI积累全在里面了。注意,教程仅限真正想入门AI的朋友,否则看看零散的博文就够了。
前言
很多人刚学会agent串联、并行、流水线这三板斧,就觉得自己能打全场了。
真到项目里滚两圈就会发现,翻来覆去能用的高级套路,其实就那四个。
今天把这四个压箱底的模式全拆解,带代码带思路,看完直接套。
1. 质量门模式:写完多维度审查再改
1.1 核心逻辑
你写篇文章、敲段代码,自己查永远查不出问题。
就像你写完PPT自己看,怎么看都逻辑满分,发给同事一秒钟就给你挑出三个错别字。
一个Agent从头查到尾,大概率是走个过场。
正确做法是拆成多个维度,每个维度派一个专门的Agent查,最后再由一个Agent综合意见修改。
1.2 核心代码
// 阶段1:写初稿
const draft = await agent(`写一篇关于${TOPIC}的文章`, { phase: '写初稿' })
// 阶段2:三个维度同时审查(haiku 够了,便宜)
const [tech, style, readability] = await parallel([
() => agent(查技术错误:\n${draft}, { label: '技术审查', model: 'haiku' }),
() => agent(查AI味和套话:\n${draft}, { label: '风格审查', model: 'haiku' }),
() => agent(查可读性,站在新手角度:\n${draft}, { label: '可读性', model: 'haiku' }),
])
// 阶段3:一个 Agent 综合三条意见改
const final = await agent(
原文:\n${draft}\n\n技术意见:${tech}\n风格意见:${style}\n可读性意见:${readability}\n 技术错误必须改,风格问题必须改,可读性建议选择性采纳。,
{ phase: '综合修改' }
)
1.3 设计要点
- 审查环节全并行,三个维度互不耽误,省时间
- 审查用轻量模型就行,找问题不需要太强的推理能力,省钱
- 最后综合修改必须用一个Agent,不然三条意见可能打架,总得有人拍板
- 返回结果记得带上初稿和审查意见,方便对比改了啥
2. 批量生产模式:pipeline多受众各走各的
2.1 核心逻辑
做内容最痛苦的是什么?同一个主题,要给三拨人讲不同的版本。
给新手要讲人话、多举例子;给老开发要甩代码、讲细节;给老板要讲收益、算ROI。
以前你得自己写三版,写到手抽筋。
现在直接用流水线分流,每个受众各走各的流程,互不干扰。
2.2 核心代码
const audiences = [
{ name: '新手', prompt: '从零讲,多用类比' },
{ name: '有经验的开发者', prompt: '直接对比,给代码' },
{ name: '技术管理者', prompt: '讲效率和ROI,不贴代码' },
]
const results = await pipeline(
audiences,
// 阶段1:搜资料(管理者搜不同的内容)
(a) => agent(
a.name === '技术管理者'
? 搜索${TOPIC}的效率提升案例和数据
: 搜索${TOPIC}的教程和实战,
{ model: 'haiku' }
).then(materials => ({ a, materials })),
// 阶段2:列大纲
({ a, materials }) => agent(
面向${a.name}列大纲。${a.prompt}\n资料:${materials}
).then(outline => ({ a, outline })),
// 阶段3:写初稿
({ a, outline }) => agent(
面向${a.name}写初稿。${a.prompt}\n大纲:${outline}
).then(draft => ({ audience: a.name, draft })),
)
2.3 设计要点
- 不用并行用流水线,因为每个受众都要走「搜资料→列大纲→写初稿」三步
- 每一步都把受众信息打包传下去,别写到最后忘了是写给谁的
- 受众越多,流水线的优势越明显,某一个环节卡住,不耽误其他分支
3. 审查验证模式:多维度查→去重→逐个对抗验证
3.1 核心逻辑
代码审查最招人恨的是什么?误报。
就像安检门滴滴滴响个不停,掏出来一看是个打火机,纯属浪费时间。
四个维度各扫一遍,先把重复的问题去掉,再每个问题派一个独立Agent去验证真假,确认是问题的才留下。
3.2 核心代码
// 阶段1:四维度并行审查(用 schema 直接拿结构化结果)
const DIMENSIONS = [
{ key: 'bugs', prompt: '查逻辑错误、await缺失' },
{ key: 'security', prompt: '查注入、敏感信息泄露' },
{ key: 'performance', prompt: '查不必要的串行、重复计算' },
{ key: 'style', prompt: '查命名、可简化代码' },
]
const FINDINGS_SCHEMA = {
type: 'object',
properties: {
findings: {
type: 'array',
items: {
type: 'object',
properties: { description: { type: 'string' } },
required: ['description'],
},
},
},
required: ['findings'],
}
const allFindings = await parallel(
DIMENSIONS.map(d => () =>
agent(审查 ${TARGET}。${d.prompt}, {
model: 'haiku',
schema: FINDINGS_SCHEMA,
}).then(result => result.findings.map(f => ({ ...f, dimension: d.key })))
)
)
// 去重:纯JS
const seen = new Set()
const unique = allFindings.flat().filter(f => {
const key = f.description.slice(0, 40)
if (seen.has(key)) return false
seen.add(key)
return true
})
// 阶段2:每个发现派一个Agent尝试反驳(pipeline,慢的不挡快的)
const verified = await pipeline(
unique,
(finding) => agent(
读 ${TARGET}。有人说这里有问题:"${finding.description}" 请验证。成立输出CONFIRMED,误报输出FALSE,不确定也算FALSE。
).then(verdict => verdict.startsWith('CONFIRMED') ? finding : null)
)
const realIssues = verified.filter(Boolean)
3.3 设计要点
- 去重用原生JS就行,别啥事都丢给Agent,费钱还慢
- 验证环节用流水线,一个问题验证慢,不耽误其他问题
- 「不确定就算误报」是核心,宁可漏几个,也别乱报一堆,不然开发要跟你急
- 必须逐条验证,别让Agent批量偷懒
4. loop-until-dry模式:不知道总量就循环到没有新发现
4.1 核心逻辑
有些活你根本不知道总量有多少。
比如找代码里的硬编码路径、找安全漏洞,就像找家里的蟑螂,你永远不知道藏了多少只。
找一次肯定漏,那就多轮找,每轮换个角度,连续两轮没发现新的,才算暂时告一段落。
4.2 核心代码
const STRATEGIES = [
'用grep搜绝对路径模式',
'检查配置文件里的硬编码路径',
'检查Shell和JS脚本里的路径',
'检查文档里的真实用户路径',
]
const allFound = new Set()
let dryRounds = 0
let round = 0
while (< 2) {
round++
const strategy = STRATEGIES[(round - 1) % STRATEGIES.length]
const found = await agent(
${strategy}。已知发现(别重复):\n${[...allFound].join('\n') || '无'},
{ model: 'haiku' }
)
const lines = found.split('\n').filter(l => l.match(//Users//))
const newOnes = lines.filter(l => !allFound.has(l))
if (newOnes.length === 0) {
dryRounds++
} else {
dryRounds = 0
newOnes.forEach(l => allFound.add(l))
}
}
return { total: allFound.size, items: [...allFound] }
4.3 设计要点
- 连续两轮没新发现才停,防止某一轮刚好漏了
- 每轮换一个搜索策略,换个角度找,减少盲区
- 把已经发现的结果喂回去,防止重复劳动
- 去重直接用Set,别折腾Agent
5. 怎么选模式
给大家总结成大白话,对着场景套就行:
- 多个子任务互不依赖,结果要放一起用 → 选parallel并行
- 多个东西走相同的多步流程 → 选pipeline流水线
- 写完东西要多维度检查再改 → 质量门模式
- 查出来的问题要验证真假 → 审查验证模式
- 不知道总量,要反复排查 → loop-until-dry模式
这些模式不是死的,可以组合着用。比如审查验证里,就同时用了并行和流水线。
6. 最后划重点
- 质量门:写 → 并行多维度查 → 单人综合改
- 批量生产:流水线多受众分流,每步传参
- 审查验证:并行查 → 原生去重 → 流水线逐条验证
- loop-until-dry:循环+换策略+连续空轮则停
P.S. 目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow,教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解,我22年的AI积累全在里面了。注意,教程仅限真正想入门AI的朋友,否则看看零散的博文就够了。
886

被折叠的 条评论
为什么被折叠?



