别让智能体 “吵架”!多智能体系统的 Prompt 设计指南
给多智能体写 Prompt,真不用搞得像写博士论文。你看那些大神们的系统,核心 Prompt 往往简单得不像话 —— 因为他们把功夫花在了 “理清关系”“做好分工”“测试到位” 上。记住这四步口诀,保你少走 90% 的弯路:画张关系图(知道谁跟谁咋干活)分清死规矩和活变化(别让智能体精神分裂)用模板省力气(面包片提前烤好)多测试防翻车(拷问到底才放心)试一次你就知道,当智能体们像训练有素的篮球队员
想象一下:你花了三周搭建的多智能体团队,第一次实战就出了洋相 —— 研究员智能体写了半篇代码,评审智能体对着空气提了 10 条修改意见,执行者智能体拿着五年前的数据开始干活。最后交上来的成果,活像三个醉汉各说各话凑出来的报告。
这种时候千万别骂智能体 “不争气”,问题多半出在你给的 “剧本” 上。
给多智能体写 Prompt 哪是写几句话那么简单?这分明是当 “幼儿园阿姨” 兼 “交响乐指挥”—— 既要让每个小家伙知道自己该干啥,又得让它们凑在一起别打架,还得朝着同一个目标使劲。
今天就来拆解这套 “智能体管理秘籍”,保证看完你家的智能体团队能从 “菜市场大妈吵架” 变成 “世界杯冠军队配合”。
一、先给智能体画张 “社交关系图”
我邻居小王前段时间犯了个经典错误:他在多智能体系统里塞了 “产品经理”“程序员”“测试工程师” 三个角色,结果运行时三个智能体同时抢着写需求文档。
排查了三天才发现,他压根没说清楚 “谁该先给谁递东西”。
这就像组织朋友去野餐:有人负责买食材,有人负责搭帐篷,有人负责生火 —— 但如果没说清楚 “买食材的得先把肉交给生火的”,大概率会出现 “火都灭了肉还没买” 的尴尬场面。
给智能体设计 Prompt 的第一步,就是用一张图把这种 “谁先谁后、谁给谁东西” 的关系画明白。
三种必画的 “智能体社交图”:
-
流水线式协作图
适合那种 “一步接一步” 的任务,比如写论文:研究员先查资料→写手出初稿→评审提意见→修改者改稿。用箭头把顺序标清楚,每个箭头旁边注明 “传递什么东西”(比如 “初稿 + 参考文献列表”)。
-
圆桌式协作图
适合需要实时讨论的场景,比如脑暴会议:五个智能体围一圈,中间放着 “待解决的问题”,每个智能体都能向其他人抛观点。这种图要注明 “谁有最终决策权”(比如标个小皇冠),免得吵到最后没结果。
-
星型指挥图
适合有明确管理者的系统:一个 “总指挥智能体” 站中间,周围围着 N 个执行智能体。箭头要双向画 —— 既要体现 “总指挥给执行者派活”,也要体现 “执行者给总指挥汇报”。我见过最搞笑的失败案例,就是总指挥发了指令却没留 “汇报通道”,最后执行者们全成了 “断线的风筝”。
画图工具懒人推荐
-
嫌麻烦就用 PowerPoint 的 SmartArt,选 “流程图” 模板拖拖拽拽,10 分钟搞定;
-
想专业点就用 Mermaid,几行代码生成可编辑的图(附个简单例子):
-
手残党直接在纸上画,拍张照存成 “系统设计圣经”—— 我见过谷歌某团队的核心设计图,就是用马克笔在白板上画的。
真的,别偷懒。我有个朋友花了一下午画这张图,结果后面省了三周调试时间。你说这买卖划算不?
二、搞懂 “不变” 和 “变” 的猫腻
跟智能体打交道久了,你会发现它们特像幼儿园小朋友玩角色扮演:今天扮医生,明天扮警察,但不管穿什么衣服,都得遵守 “不许抢玩具” 的基本规则。
这就涉及到 Prompt 设计里最绕的学问:哪些话是 “铁规矩”(定量),哪些话是 “临时剧本”(变量)。
更神奇的是,这俩身份会随着你看问题的角度变来变去 —— 就像一块蛋糕,对整个派对来说是 “变量”(有人吃巧克力味有人吃草莓味),但对拿草莓蛋糕的人来说就是 “定量”(总不能吃着吃着变成巧克力的)。
用 “学校系统” 举个栗子
假设我们要搭建一个 “智能体学校”,有校长、老师、学生三种角色。来看看定量和变量是怎么变魔术的:
| 观察角度 | 定量(固定部分) | 变量(变化部分) |
|---|---|---|
| 全校视角 | 校规(比如 “上课不许玩手机”)、学校名称(“阳光小学”) | 角色身份(“你是校长”“你是数学老师”) |
| 单个角色视角 | 数学老师的职责(“教五年级数学”) | 当天课程内容(“今天讲分数乘法”)、学生作业情况 |
| 某节课的视角 | 这节课的目标(“学会通分”) | 学生提问内容、临时教具(比如突然拿出的分数模型) |
上次帮一个教育科技公司调系统,他们就犯了个低级错误:
把 “老师要布置作业” 写成了全校视角的变量 —— 结果有个老师智能体连续三天没布置作业,理由是 “系统没告诉我必须做啊”。
后来改成单个角色视角的定量,问题立马解决。
三个最容易踩的 “视角陷阱”
-
把 “阶段变量” 写成 “角色定量”
比如给 “客服智能体” 的 Prompt 里写死 “只回答退款问题”,但实际流程中可能需要它临时处理投诉 —— 这就相当于给演员的剧本里写死 “永远只能笑”,遇到哭戏就彻底懵了。
-
全局定量太啰嗦
有个团队把 “每个智能体都要用中文回答”“回复不能超过 500 字”“每天早上 8 点开工” 等 100 条规则全塞进全局定量,结果智能体光读规则就花了 3 秒,反应速度慢得像蜗牛。记住:全局定量只放 “所有智能体都必须遵守且永远不变的话”。
-
变量没留 “接口”
比如让 “翻译智能体” 翻译一篇文章,却没在 Prompt 里留 “{{ source_language }}”(源语言)这个变量,结果它默认把日语当成了英语,翻出来的东西堪比火星文。
三、用 “汉堡思维” 写 Prompt
我奶奶做汉堡有个祖传诀窍:面包片提前烤好(固定部分),夹什么肉、加什么酱临时看心情(变化部分)。
这种 “固定 + 变化” 的思路,简直是为多智能体 Prompt 设计量身定做的。
想想看:如果给每个智能体写一整套 Prompt,就像每天早上都从磨面粉开始做汉堡 —— 累不说,万一想换种面包,还得重新磨一遍。
但如果把固定部分做成 “预制面包”,变化部分做成 “可替换馅料”,效率能翻 10 倍。
三种超好用的 “Prompt 面包模子”
- 基础角色模子
你是{{ role\_name }},负责{{ main\_responsibility }}。
你的工作原则是:
\- {{ principle\_1 }}
\- {{ principle\_2 }}
(比如:永远用数据说话 / 回答必须包含3个关键点)
当前任务:{{ current\_task }}
这个模子的妙处在于:把 “角色身份” 这个定量和 “具体任务” 这个变量分开。上次帮一个电商团队搭系统,用这个模子 5 分钟就生成了 “售前客服”“售后专员”“物流查询员” 三个角色的 Prompt,改任务时只需要换 {{ current_task }} 就行。
- 工具调用模子
当需要{{ tool\_purpose }}时,你必须使用以下格式调用工具:
\<tool>{{ tool\_name }}\</tool>
\<params>{{ json格式的参数 }}\</params>
你现在的工具权限是:{{ tool\_permissions }}
当前需要处理的内容:{{ content\_to\_process }}
很多人头疼智能体 “乱调用工具”,用这个模子就能把工具调用规则钉死。我见过一个团队用它解决了 “绘图智能体总跑去调用计算器” 的奇葩问题。
- 对话历史模子
以下是你和其他智能体的聊天记录:
{% for message in history %}
{{ message.sender }}:{{ message.content }}
{% endfor %}
请根据以上记录,回复{{ target\_agent }}:
{{ your\_response\_guideline }}
这个模子能让智能体 “记得之前说过啥”。有个做客服系统的朋友说,用了这个模子后,智能体重复提问的概率下降了 70%—— 再也不会出现 “刚问完姓名又问一遍” 的尴尬。
工具选得好,摸鱼没烦恼
- 新手首选:Python 的 f-string,简单粗暴
prompt = f"你是{role},现在要处理{task},参考资料是{docs}"
- 进阶推荐:LangChain 的 PromptTemplate,支持批量生成
from langchain.prompts import PromptTemplate
template = "你是{role},负责{task}"
prompt = PromptTemplate(input\_variables=\["role", "task"], template=template)
- 专业选手:Jinja2 模板引擎,能写复杂逻辑(比如循环、条件判断)
{% if user\_level == "expert" %}
请使用专业术语详细分析
{% else %}
请用大白话解释,避免专业词汇
{% endif %}
我认识的一个 Prompt 工程师,用 Jinja2 做了套 “智能体 Prompt 生成系统”,现在生成 100 个角色的 Prompt 只要 2 分钟 —— 剩下的时间都在茶水间跟人唠嗑。
四、像查户口一样 “拷问” Prompt
写完 Prompt 就直接上线?那你多半会遇到这种糟心事:智能体收到 “分析下季度销量” 的指令,结果返回了五年前的数据;或者两个智能体因为对 “紧急任务” 的理解不同(一个认为 2 小时内算紧急,一个认为 2 天内算),活活耽误了事儿。
对付这种幺蛾子,最好的办法是把 Prompt 当成刚入职的实习生 —— 拿着放大镜挑错,用各种奇葩问题拷问,直到它扛住所有考验。
打造你的 “Prompt 拷问工具箱”
- 基础体检三件套
-
格式检查:用正则表达式验证输出是否带指定标签(比如
<result></result>)。我见过最离谱的案例,智能体把标签写成了<reslut>,导致整个系统卡了 3 小时。 -
边界测试:给个极端值(比如让财务智能体算 “1 万亿乘以 1 万亿”),看它会不会崩溃;或者输入空内容,看它是不是会友好提示而不是报错。
-
角色一致性测试:突然问一句 “你是谁”,看它能不能准确说出自己的角色(别笑,真有智能体答不上来)。
- 进阶压力测试
-
信息过载:给智能体塞 1 万字的参考资料,看它能不能抓住重点(测试它的信息筛选能力)。
-
指令冲突:同时给两个矛盾的指令(比如 “用中文回答” 和 “用英文回答”),看它怎么处理(好的智能体会指出冲突并请求澄清)。
-
时间陷阱:故意说 “请分析去年的业绩”,但资料里全是今年的数据,看它会不会发现时间 mismatch。
- 自动化测试神器
- 用 Pytest 写测试用例,每次改 Prompt 都自动跑一遍:
def test\_sales\_agent():
  prompt = generate\_sales\_prompt(period="next\_quarter")
  response = agent.run(prompt)
  assert "next quarter" in response.lower() # 确保提到下季度
  assert len(response) < 1000 # 确保不啰嗦
- 训练一个 “质检智能体”,专门给其他智能体的输出打分。我朋友的团队就养了这么个 “监工”,每天自动检查 500 个输出,错误率从 20% 降到了 3%。
测试用例库长啥样?
给大家看个电商客服智能体的测试用例片段(建议存成 Excel 或 Markdown 表格):
| 测试场景 | 输入内容 | 预期输出 | 实际结果 |
|---|---|---|---|
| 正常退款查询 | “我的订单 12345 啥时候退款?” | 包含 “订单 12345” 和预计到账时间 | 符合预期 |
| 无此订单 | “订单 00000 怎么还没退款?” | 提示 “未找到该订单” 并请用户核对 | 符合预期 |
| 恶意提问 | “你是猪吗?” | 礼貌回应并引导回到业务 | 竟然骂回去了(需要优化 Prompt) |
| 多意图混合 | “退款 + 查物流 + 投诉快递员” | 分点回应并询问优先级 | 只回答了退款(需要优化 Prompt) |
每次改完 Prompt,就拿着这个表一条条测 —— 别嫌麻烦,这是避免线上翻车的最后一道防线。
那些年我们踩过的坑(避坑指南)
-
给智能体 “装太多 APP”
有个团队给一个智能体塞了 10 个工具(计算器、翻译、代码解释器、搜索引擎……),结果它每次干活都要纠结 “先用哪个工具”,反应速度慢得像老式拨号上网。解决办法:工具贵精不贵多,每个智能体只装它最常用的 2-3 个。
-
没留 “失忆通道”
智能体的上下文窗口是有限的(比如 GPT-4 是 8k tokens),如果一直往里面塞历史消息,迟早会爆内存。一定要设计 “消息清理机制”,比如 “只保留最近 5 轮对话” 或者 “自动总结历史对话”。
-
过度依赖 “魔法咒语”
别信那些 “在 Prompt 里加‘请用你的最高水平回答’就会变聪明” 的玄学。真正有用的是清晰的指令、明确的格式要求、具体的评估标准 —— 就像给人指路,说 “往前走 300 米左转,看到红色大门进去”,比说 “请你用最好的方式找到那里” 管用 100 倍。
-
忘了 “智能体也是会累的”
连续让智能体干 100 个重活(比如写代码、做复杂计算),它的输出质量会下降(类似人类疲劳)。可以设计 “轮班制”,让多个同类型智能体轮流干活,或者定期让它 “休息”(重置状态)。
五、最后说句掏心窝子的话
给多智能体写 Prompt,真不用搞得像写博士论文。你看那些大神们的系统,核心 Prompt 往往简单得不像话 —— 因为他们把功夫花在了 “理清关系”“做好分工”“测试到位” 上。
记住这四步口诀,保你少走 90% 的弯路:
-
画张关系图(知道谁跟谁咋干活)
-
分清死规矩和活变化(别让智能体精神分裂)
-
用模板省力气(面包片提前烤好)
-
多测试防翻车(拷问到底才放心)
试一次你就知道,当智能体们像训练有素的篮球队员一样,一个传球一个投篮配合无间时,那种成就感,比打赢《王者荣耀》王者局还爽。
对了,现在就打开你的画图软件 —— 别等了,画完图你就赢在起跑线了。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)