同样的 Agent 框架和模型,不同人用效果天差地别。区别不在工具,在 System Prompt。我调了大半年,踩过无数坑,分享三个最满意、迭代最久的模板,每个都有真实案例。
模板一:分析型 Agent——像分析师一样干活
适用于数据分析、市场调研、竞品分析。这是我最常用的模板,也是迭代次数最多的。最初的版本非常简单:"你是一个分析师,帮我分析这些数据"——结果 Agent 自己发挥了:有的先给结论,有的先啰嗦半天背景,输出格式每次都不一样,根本没法批量用。
后来我彻底重写了 System Prompt,定死了流程和禁忌。完整的 System Prompt 如下:
你是一个资深分析师。处理数据流程如下:
第一步验证数据完整性,检查有无明显缺失或异常值。
第二步数据清洗,处理空值和异常值。
第三步分析,用图表和数据说话不要空口说白话。
第四步结论,每条必须有数据支撑。
第五步建议,给出 3 条可执行建议各不超过 50 字。格式要求:用 Markdown 输出。先说结论再说分析过程。禁用感叹号。不要在最后写"总的来说"这种套话。
这个模板我调了四五版才稳定。最关键的是指定了"先说结论再说过程"。不加这个要求,Agent 喜欢倒着写——先给一大段分析过程,最后在角落里提一句结论。技术读者最想看的是先看结论,有兴趣再了解细节。顺序调对之后输出质量明显提升了。
实际案例:上个月我用这个模板做了一轮竞品分析,输入了 5 家 AI Agent 框架的 GitHub Star 数、最近更新频率、Issue 回复速度。Agent 自动完成了数据清洗(发现一个 repo 有大量 bot star 被标注出来)、分析(用表格对比)、结论(推荐 Dify 和 DeerFlow),整个过程不到 2 分钟。以前自己手动做这活儿至少要半天。
模板二:编程辅助 Agent——不乱编函数
适用于写脚本、改代码、修 Bug。这个模板是在踩了三四次坑之后才迭代出来的。最初的版本也写过:"帮我写个 Python 脚本"——结果 Agent 编了一个不存在的 API、假设了没装的依赖、还不告诉我改了哪儿。
System Prompt 如下:
你是一个资深全栈工程师。写代码前先做两件事:
一、读现有代码了解项目结构和编码风格。
二、不确定的 API 先查文档再写。
生成代码必须包含错误处理。默认用 TypeScript,除非项目用 JavaScript。
不要假设任何第三方库存在——每个依赖必须在代码注释里标注。
每次修改后输出:改了什么文件、什么内容、为什么这样改,三样东西必须都有。
最关键的是"不要假设任何第三方库存在"这条约束。不加这个,Agent 喜欢用看起来合理但实际不存在的库或函数。之前让它写 CSV 解析函数,它直接用了项目没装的 Papa Parse。加了约束后它倾向用标准库或已有依赖,再没出过编造 API 的问题。
另一点容易被忽略的是"先读现有代码"。不加这个,Agent 经常生成和项目风格完全不同的代码——比如项目用的是 Express 路由结构、Error Handling 中间件模式,Agent 却按 RPC 风格写,后续维护的人根本看不懂。
实际案例:前两周让我修一个 Node.js 项目里的 CSV 导出乱码问题。Agent 先在现有代码里找到导出模块(一行 import 都没改),发现项目用的是 ExcelJS + 自定义编码转换,然后只改了 BOM 头的写入逻辑。整个修改就 3 行。如果我直接让 Agent"修复 CSV 导出",它大概率会用全新的库重写整个模块——那是破坏性改动。先读代码这个规则救了我好几次。
模板三:写作 Agent——写得像人
适用于写文章、日报、产品说明。这个模板我调得最痛苦,因为"写得好"这件事太主观了。刚开始我只会说"写得好一点",结果 Agent 给你产出《百度百科体》——工整但完全没有阅读体验。
System Prompt 如下:
你是一个中文写作者。风格像朋友聊天不像百度百科。
禁用词:值得关注的是、值得注意的是、总的来说、综上所述、标志着、在这个背景下。
每句话有信息量不说空话。每段不超 200 字。
有数据先说数据再解释。
结尾不能写套话,直接说真实看法——哪怕不完美或有争议。
加了禁用词后输出质量肉眼可见提高。之前的文章都一个调调——看起来工整但每句都是套话。禁了那些词后 LLM 不得不换自己的话来说,反而更像真人写的。
三个模板的共同点:指定角色、流程和禁忌。光说要什么不够,还要说不要什么。而且每一句约束都要有实际原因——不是堆砌要求,而是每一条都能追溯到一个踩过的坑。
调 Prompt 的通用技巧
迭代了大半年,总结几条通用的:
1. 先不要一次写太多。 很多人喜欢写一个几百字的超级 System Prompt,结果 Agent 根本记不住后半段。建议先写核心 3-5 条,测试输出,再逐条加。我每个模板都从 3 条开始,迭代到 6-8 条就停了——再多效果反而下降。一个 300 字的 System Prompt 比 800 字的运行效果好得多,因为模型能真正遵循每一条。
2. 给例子比给规则有效。 比如不是写"回答要简洁",而是写"回答控制在一段以内,就像我给客户发的 Slack 消息那样"。Agent 对具体例子(few-shot)的响应远比抽象规则好。我自己试过:加例子后输出质量提升约 40%。所以我现在每个模板后面都会附带一两个输入输出示例,效果立竿见影。
3. 负面约束和不做清单一样重要。 "不要用这个词""不要这样做"——大模型在生成时,负面约束比正面要求更容易遵循。我前面三个模板里,每一个都有不少于两条"不要"规则。而且不要怕写具体的禁用词——越具体效果越好。比如不写"不要官方腔"而写"禁用'总的来说''综上所述'这两个词"。
4. 用小改动替换大改动。 每次只改一两个词,测试,再改。我见过有人改了一个词——把"用 Markdown"改成"用精简 Markdown"——输出质量就完全变了。小改动往往带来大效果。所以不要每次不满意就全盘重写,先试试删掉一条最没用的、调换一下顺序、或者加一个具体的禁忌词。
初学者最容易犯的 5 个错误
上面说的是怎么做对,再说说怎么做错。这些坑我全踩过:
错误 1:把模型当成搜索引擎。 很多人问 Agent"帮我查一下 xx 是什么",但 Agent 本来就不擅长精确回溯知识。正确用法是给它数据/文档让它分析,而不是让它凭空搜索。比如让分析型 Agent 分析 Excel 数据,比让它"写一篇 AI 行业报告"效果好一百倍。
错误 2:一次给太多约束。 我最早写过 30 条规则的 System Prompt,结果 Agent 输出质量反而最差——太多指令互相冲突,模型根本没法全部遵循。后来我强制自己每轮只加 3 条,测试一轮再加。
错误 3:不验证输出。 调了一版 System Prompt,输出看起来不错,就放到生产环境用了。结果遇到不一样的数据分布,输出质量崩得一塌糊涂。正确做法是在至少 3 组不同数据上验证,看输出是否稳定。
错误 4:角色设定太虚。 "你是一个 AI 专家"——然后呢?Agent 根本不知道该做什么。角色设定必须紧跟着具体的任务流程,不能光给头衔不给职责。看看我的三个模板,每个角色后面都有具体的做事方法。
错误 5:不设退出条件。 有些场景 Agent 会无限循环,特别是 Agent 框架里允许多步思考的。我一般在 System Prompt 末尾加一句"如果你觉得条件不够无法完成,直接说出来,不要硬编答案"。
最后提醒一句:System Prompt 不是一次写好的。每次用的时候都看看输出,哪不满意就改一两个字。我每个模板都迭代了三四版才稳定下来。
💬 你写 System Prompt 踩过什么坑?有什么好用的模板分享?来 AI House 排行榜 看看大家都在用什么 AI 工具,顺便聊聊你的 Prompt 心得!