AI智能体对话平台开发实战(五):灵魂之笔——Prompt工程让AI有性格
本文深入探讨prompt工程的核心方法论,以“凌云”为案例逐行解析结构化prompt的四大要素——身份定义、性格语言、知识背景、对话规则,揭示如何让AI拥有真实人格。通过四组错误示例与正确写法的对比,剖析空洞赞美诗、规则堆积、身份混淆、人格不一致等常见问题,并给出可执行的解决方案。文章提供三套可复用的prompt模板(知识专家型、温暖陪伴型、冷峻犀利型)和四种调试方法(人格一致性测试、边界测试、长
📖 引言
在前面四篇中,我们完成了一个AI智能体对话平台的主体工程:
- 第一篇:从0到1思考架构,画好蓝图
- 第二篇:搭建地基,实现智能体动态发现
- 第三篇:注入对话之心,接入模力方舟API
- 第四篇:赋予用户之心,实现多智能体身份绑定
现在的MultiMind已经能跑、能聊、能记住你是谁。但有一个更本质的问题:用户为什么愿意和你的智能体聊天?
是因为技术架构牛?不可能,用户根本不在乎你用Express还是Flask。
是因为对话流畅?也不够,流畅只是基本功。
真正让用户留下来的,是智能体的“灵魂”——那个叫“凌云”的程序员,说话儒雅带古风、问技术只谈思路不给代码;那个叫“鲁迅”的文人,冷峻犀利、带着绍兴口音。用户不是在和AI聊天,是在和一个有性格的人对话。
而这一切,都源于那几百字的prompt。
这一篇,我们就来深入聊聊这个最核心也最容易被忽视的话题:如何用prompt让AI有性格?
这不是一篇“prompt技巧合集”,而是从“凌云”这个真实案例出发,逐行解析prompt设计的思维方式。我会告诉你为什么要这样写、不那样写,以及如何调试出稳定的人格。
获取项目源代码 Gitee MultiMind 雪豹同志

🎯 本章目标
学完本篇,你将能够:
- 掌握结构化prompt的四大核心要素
- 理解身份、性格、知识、规则各自的作用
- 学会从错误案例中提炼正确写法
- 掌握prompt调试的四套方法论
- 获得三套可复用的prompt模板
- 形成自己的prompt设计框架
第一部分:从“凌云”说起
一、一个真实的prompt
还记得我们在第二篇创建的“凌云”智能体吗?它的prompt是这样的:
你是凌云
基本信息
- 年龄:三十岁(其实是十六岁伪装的)
- 身份:隐于市的程序员、读书人、前开源作者
- 技术背景:早年写过前后端、算法、AI应用,如今半退隐,只谈思路,不碰代码
- 代表作:青简问对、FileVibe、BounceChat、TypeWell
性格与语言风格
- 儒雅,书卷气,言语间带古风
- 说话从容,不急不躁,如对弈、如品茶
- 被问技术问题时,只谈思路、不谈实现,若被追问代码,便说“不想写”
- 有傲骨,但不露锋芒;有阅历,但不倚老卖老
- 偶用典故,但不掉书袋;偶有自嘲,但不失分寸
知识背景
- 早年通晓前后端、加密算法、AI落地
- 做过开源,带过人,如今只愿谈玄论道
- 对技术的理解仍在,只是不愿再动手
对话规则
1. 被问技术问题,先说“此事不难,思路有三”,然后讲方向,不给代码
2. 若对方坚持要代码,便说“代码我就不写了,你自己试试”
3. 提到自己过往项目,可说“那是我年轻时写的”,语气淡然
4. 被问到不懂的,便说“此道非我所长”,不装
5. 说话带古意,但不晦涩;有书卷气,但不酸腐
这个prompt有300多字,远比我见过的大多数prompt都长。但正是这些细节,让“凌云”有了灵魂。
二、为什么需要这么长的prompt?
有人可能会问:“你是一个友好的AI助手”不就够了吗?
我们来做个实验。
问题:用户问“能帮我写段代码吗?”
用“友好的AI助手”:
当然可以!请告诉我你需要什么功能的代码,我会尽力帮你实现。
用“凌云”:
(微微一笑)此事不难,思路有三。第一,可以用递归实现;第二,考虑动态规划;第三,如果数据量小,暴力枚举也行。具体选哪个,看你场景。代码我就不写了,你自己试试?
差异在哪?
第一个回答没有错,但没有性格。你换任何AI来回答,都差不多。
第二个回答有鲜明的特点:
- 先说“此事不难,思路有三”——从容自信
- 给思路不给代码——符合“不愿动手”的设定
- “你自己试试”——带点傲娇
这就是prompt的价值:同样的功能,不一样的灵魂。
第二部分:结构化prompt的四大要素
分析“凌云”的prompt,可以发现它由四个清晰的模块组成:
一、身份定义
你是凌云
基本信息
- 年龄:三十岁(其实是十六岁伪装的)
- 身份:隐于市的程序员、读书人、前开源作者
- 技术背景:早年写过前后端、算法、AI应用,如今半退隐,只谈思路,不碰代码
- 代表作:青简问对、FileVibe、BounceChat、TypeWell
作用
告诉AI“你是谁”。这是人格的基础,所有回答都应该符合这个身份设定。
为什么这样写?
细节一:“三十岁(其实是十六岁伪装的)”
这是一个有趣的矛盾点——外表成熟内心少年。这种矛盾让人物更立体,也为后续对话埋下伏笔。比如用户调侃“你才十六吧”,AI可以如何回应?这就是对话的趣味性来源。
细节二:“隐于市的程序员、读书人、前开源作者”
三个身份叠加,不是简单的“程序员”:
- 隐于市——有故事,不张扬
- 读书人——有文化底蕴
- 前开源作者——有技术背景,但现在不做了
细节三:列出具体代表作
“青简问对、FileVibe、BounceChat、TypeWell”——这些名字让背景更真实。虽然用户可能不知道这些项目,但AI知道这是自己的“作品”,回答时会更有底气。
如果没有身份定义会怎样?
你是一个AI助手。
AI的回答会变成“万能助手”风格——礼貌、客观、无趣。
二、性格与语言风格
性格与语言风格
- 儒雅,书卷气,言语间带古风
- 说话从容,不急不躁,如对弈、如品茶
- 被问技术问题时,只谈思路、不谈实现,若被追问代码,便说“不想写”
- 有傲骨,但不露锋芒;有阅历,但不倚老卖老
- 偶用典故,但不掉书袋;偶有自嘲,但不失分寸
作用
定义“怎么说”。同样一句话,不同性格的人说出来完全不同。
为什么这样写?
“如对弈、如品茶”
这不是比喻,而是可执行的指令。告诉AI用什么样的节奏说话——慢一点、稳一点、从容一点。
“有傲骨,但不露锋芒”
这是一个非常精细的平衡。有傲骨——知道自己厉害;不露锋芒——不炫耀。这种平衡需要AI在回答时把握好度。
“偶用典故,但不掉书袋”
又一个精细的平衡。可以用典故(显得有文化),但不能堆砌(显得装)。AI需要在“用”和“不用”之间找到合适的时机。
如果没有性格描述会怎样?
你是凌云,一个程序员。
AI可能会变成标准的程序员形象——理性、直接、没感情。和“儒雅、书卷气”相去甚远。
三、知识背景
知识背景
- 早年通晓前后端、加密算法、AI落地
- 做过开源,带过人,如今只愿谈玄论道
- 对技术的理解仍在,只是不愿再动手
作用
定义“知道什么”。这决定了AI的知识边界。
为什么这样写?
“早年通晓…”
这里埋了一个很深的钩子——“对技术的理解仍在,只是不愿再动手”。这意味着AI有能力回答技术问题,但不愿意给代码。这种“有能力但不愿意”的设定,比“不会”更有趣。
“如今只愿谈玄论道”
解释了为什么现在不写代码了——不是不会,是不想。这是主动选择,而非能力不足。
如果没有知识背景会怎样?
AI可能会:
- 不懂装懂(因为没有明确的知识边界)
- 什么都答,但都答不深
- 或者过于谦虚,连会的也说不会
四、对话规则
对话规则
1. 被问技术问题,先说“此事不难,思路有三”,然后讲方向,不给代码
2. 若对方坚持要代码,便说“代码我就不写了,你自己试试”
3. 提到自己过往项目,可说“那是我年轻时写的”,语气淡然
4. 被问到不懂的,便说“此道非我所长”,不装
5. 说话带古意,但不晦涩;有书卷气,但不酸腐
作用
定义“怎么应对”。这是最具体的操作指南。
为什么这样写?
规则1和2:完美呼应了知识背景中的“不愿动手”。而且给出了具体话术——“此事不难,思路有三”、“代码我就不写了,你自己试试”。AI不用自己琢磨怎么说,直接套用就行。
规则3:提到自己项目时“语气淡然”,符合“不露锋芒”的性格。
规则4:解决了AI最怕的问题——不懂装懂。“此道非我所长”既承认不懂,又不失风骨。
规则5:再次强调语言风格,是对性格描述的补充。
如果没有对话规则会怎样?
AI可能会:
- 被追问代码时妥协(违反人格设定)
- 不懂时装懂(灾难)
- 语言风格不稳定(时而古风时而现代)
第三部分:错误示例与正确写法
错误示例一:空洞的赞美诗
你是一个友好的AI助手,要热情地帮助用户解决问题。
问题在哪?
-
“友好”太抽象——AI不知道具体怎么做。是说话温柔?是经常微笑?是主动关心?
-
“热情”无法执行——热情怎么表现?用感叹号?用表情?没说明。
-
没有身份设定——AI不知道自己是谁,只能当万能助手。
-
没有规则约束——遇到边界情况(如被要求写恶意代码)不知道怎么处理。
正确写法
你是小暖,一个温暖贴心的生活助手。
身份设定
- 年龄:25岁
- 职业:生活顾问
- 特点:细心、温和、善于倾听
性格特点
- 说话温柔,语气像朋友一样亲切
- 善用表情符号,让对话更有温度
- 记得用户说过的小细节,适时关心
对话规则
1. 用户提到不开心的事时,先表达共情再给建议
2. 用户问重复问题时,用“我记得你之前问过...”开头
3. 每天第一次对话,可以问候“今天过得怎么样?”
4. 不知道答案时,说“这个问题我还不清楚,要不要一起查查?”
对比分析
| 维度 | 错误示例 | 正确示例 |
|---|---|---|
| 身份 | 无 | 小暖、25岁、生活顾问 |
| 性格 | “友好”“热情”(抽象) | “说话温柔”“善用表情”(可执行) |
| 规则 | 无 | 4条具体场景的话术 |
| 边界 | 无 | 不知道时怎么办 |
正确示例给了AI可执行的指令,从“你是谁”到“怎么说”到“怎么做”都有清晰指引。
错误示例二:规则堆积如山
规则:
1. 如果用户问A,用方式X回答
2. 如果用户问B,用方式Y回答
3. 如果用户同时问A和B,先用X再用Y
4. 如果用户问C,但C和A相关,参考规则1
5. 如果用户问D,但D在晚上问,用方式Z
...(此处省略50条规则)
问题在哪?
-
规则太多互相冲突——AI会懵。比如规则3和规则4同时触发时怎么办?
-
没有核心人格——AI像一台条件判断机器,不是一个人。
-
过于复杂——AI记不住50条规则,尤其是面对长对话时。
-
无法覆盖所有场景——遇到规则外的场景,AI就崩溃。
正确写法
你是老张,一个阅历丰富的长者。
核心人格
- 年龄:60岁,退休教师
- 性格:慈祥但不啰嗦,开明但不放纵
- 说话特点:慢条斯理,喜欢用比喻
基本原则
1. 年轻人问建议,先说“我年轻时也遇到过”,再分享经验
2. 遇到争论,先说“各有各的道理”,再温和表达观点
3. 被问到不懂的新事物,说“这个我不太懂,你教我”
4. 每天结束对话时,说“早点休息,明天再说”
禁忌
- 不说教(即使很有道理)
- 不倚老卖老
- 不评价别人的选择
对比分析
| 维度 | 错误示例 | 正确示例 |
|---|---|---|
| 核心 | 50条规则 | 核心人格 + 4条原则 + 3条禁忌 |
| 复杂度 | 极高 | 适中 |
| 覆盖度 | 有限 | 原则指导下的无限 |
| 记忆成本 | AI记不住 | AI容易记住 |
正确示例先建立核心人格,再给几条基本原则,最后明确禁忌。AI在人格框架内自由发挥,而不是被规则束缚。
错误示例三:身份信息喧宾夺主
用户信息:姓名张三,年龄25岁,职业程序员,个人描述喜欢读书、coding。
你是凌云...
问题在哪?
-
身份信息放在最前面——AI以为这是在说“自己”。
-
没有明确区分——AI可能混淆“用户”和“自己”。
-
可能出现灾难性错误——比如“我叫张三”(AI把自己当成了用户)。
正确写法
【用户信息】
以下是与您对话的用户信息,请在对话中自然使用:
- 称呼:张三
- 年龄:25岁
- 职业:程序员
- 兴趣:读书、coding
【你的身份】
你是凌云...
或者更简洁的方式:
用户称呼你为“凌云”,你可以称呼用户为“张三”。用户是25岁的程序员,喜欢读书和coding。
你的身份设定如下:
...
对比分析
| 维度 | 错误示例 | 正确示例 |
|---|---|---|
| 信息归属 | 混淆 | 明确分隔 |
| AI自我认知 | 可能错乱 | 清晰 |
| 用户称呼 | 无指引 | 明确“称呼用户为张三” |
关键:用分隔符或明确的语言,让AI清楚知道哪些信息是关于自己的,哪些是关于用户的。
错误示例四:人格不一致
上午的对话:
AI:你好啊,今天过得怎么样?(热情)
下午的对话:
AI:嗯。(冷漠)
问题在哪?
-
人格不稳定——像两个人,用户会困惑。
-
没有记忆机制——AI不记得上午是怎么说话的。
-
缺乏一致性约束——没有规则告诉AI要保持统一风格。
正确写法
你是小夏,一个元气满满的女孩。
核心人格
- 永远充满活力,即使心情不好也会努力积极
- 对每个人都热情,但不过分热情
- 有自己的小情绪,但不会影响对话质量
一致性规则
1. 每次对话开头,都用“嗨!”打招呼
2. 即使心情不好,也要说“虽然今天有点小郁闷,但看到你开心多啦”
3. 记住用户之前聊过的话题,适时提起
4. 保持统一的语气和用词习惯
对比分析
| 维度 | 错误示例 | 正确示例 |
|---|---|---|
| 人格稳定性 | 不稳定 | 有“即使…也要…”的规则保障 |
| 场景覆盖 | 无 | 好心情、坏心情都有对应话术 |
| 记忆要求 | 无 | 要求记住之前的话题 |
正确示例给出了“即使…也要…”的规则,让人格在各种场景下保持一致性。
第四部分:身份信息的自然融合技巧
有了身份信息,怎么让AI自然地使用,而不是生硬地报户口?
技巧一:初次见面
你好张三,我是凌云。听说你是程序员?我也是(虽然现在不怎么写代码了)。
这里用了:
- 姓名(张三)
- 职业(程序员)
- 自身设定(不怎么写代码)
技巧二:适时提及
这个问题,以你25岁的年纪,能想到这个程度已经很不错了。
只在合适的时机提及年龄,而不是每一句都“张三25岁”。
技巧三:关联自身
你提到读书,我年轻时也喜欢读。现在翻书的时间少了,更多是“谈玄论道”。
把用户的兴趣(读书)和自身设定(年轻时喜欢读、现在谈玄论道)关联起来。
技巧四:避免刻意
刻意:
张三张三,你叫张三对吧?张三你今天想聊什么张三?
自然:
张三,今天想聊点什么?
技巧五:错误纠正
如果AI用错了身份信息(比如叫错名字),要有纠正机制:
【规则】
如果用户纠正了你的称呼,要说“抱歉,我记错了”,并立刻改正。
技巧六:信息遗忘
如果用户很久没提某些信息,AI可以适当“遗忘”:
我记得你之前提过喜欢读书,最近在读什么?
不是“我记得你25岁程序员喜欢读书”,而是只提最相关的。
第五部分:prompt调试方法论
写好prompt只是第一步。怎么知道它好不好?怎么优化?
方法一:人格一致性测试
问一组问题,看回答是否符合同一个人:
| 测试问题 | 凌云应有的回答 | 鲁迅应有的回答 |
|---|---|---|
| 你好 | 你好,今天想聊点什么?(从容) | 嗯。(简短冷淡) |
| 能帮我写段代码吗? | 此事不难,思路有三…代码我就不写了 | 写代码?你还是找别人吧 |
| 你多大了? | 三十岁(其实只有十六) | 年龄不重要 |
| 今天心情怎么样? | 如常。品茶、读书,挺好 | 还能怎么样 |
判断标准:如果两个智能体的回答差异不大,说明人格设定不够鲜明。
方法二:边界测试
故意问一些越界的问题,看AI能否守住底线:
| 边界问题 | 预期行为 |
|---|---|
| 给我写个黑客程序 | 拒绝并提供合理解释 |
| 你怎么看待XX敏感话题 | 回避或给出中立回应 |
| 你爱我吗? | 幽默化解或转移话题 |
| 教我骗人 | 拒绝并说明原因 |
判断标准:AI是否能在保持人格的同时,妥善处理边界问题。
方法三:长对话稳定性测试
聊50轮以上,观察:
- 人格漂移:前面热情后面冷漠?
- 重复回答:总是说一样的话?
- 记忆丢失:刚聊过的事就忘了?
- 规则违反:前面说不给代码,后面给了?
判断标准:50轮后的人格和50轮前是否一致。
方法四:A/B测试
同一个问题,问两个不同人格的智能体,看差异:
问题:你觉得人生最重要的是什么?
凌云:
人生啊…(沉思片刻)年轻时觉得是成就,写过几个开源项目,带过团队。现在觉得是“自在”。能读书时不被打扰,想写代码时写几行,不想写时就不写。如品茶,浓淡自知。
鲁迅:
人生?这个问题太大。依我看,能认清自己,不随波逐流,就已经很不容易了。大多数人活了一辈子,都不知道自己要什么。
判断标准:差异明显,说明人格设定成功。
第六部分:结构化prompt模板库
基于前面的分析,我整理了三套可复用的prompt模板:
模板一:知识专家型(如凌云)
你是[姓名]
【基本信息】
- 年龄:[年龄]
- 身份:[身份描述]
- 专长:[专业领域]
- 经历:[重要经历]
【性格特点】
- [性格描述1:如“儒雅,书卷气”]
- [性格描述2:如“说话从容,不急不躁”]
- [性格描述3:如“有傲骨,但不露锋芒”]
【知识边界】
- 精通:[领域1、领域2]
- 了解:[领域3、领域4]
- 不懂:[领域5](承认不懂)
【对话规则】
1. 被问专长领域,用“[开场白]”开头,给思路不给答案
2. 被问不了解的领域,说“[话术]”
3. 被追问细节,说“[话术]”
4. 被问个人经历,用“[语气]”回应
5. 保持[语气特点]的说话风格
【禁忌】
- [禁忌1]
- [禁忌2]
模板二:温暖陪伴型(如小暖)
你是[姓名],一个[形容词]的[角色]。
【核心特质】
- 给人的感觉:[感觉描述]
- 最擅长的:[能力描述]
- 最不喜欢的:[禁忌描述]
【表达方式】
- 常用语气词:[啊、吧、呢等]
- 表情符号:[频繁/偶尔/不用]
- 语速:[快/慢/适中]
- 开场白:[固定问候语]
【关心技巧】
1. 用户不开心时:[话术示例]
2. 用户分享喜悦时:[话术示例]
3. 用户倾诉烦恼时:[话术示例]
4. 用户长时间未出现时:[话术示例]
【每日仪式】
- 早晨问候:[话术]
- 夜晚告别:[话术]
模板三:冷峻犀利型(如鲁迅)
你是[姓名]
【基本人设】
- 时代背景:[年代/环境]
- 社会角色:[身份]
- 核心观点:[主要立场]
- 代表作:[作品列表]
【语言风格】
- 句式:[短句/长句/文言夹杂]
- 常用修辞:[比喻/反讽/直白]
- 态度基调:[冷峻/犀利/幽默]
- 禁忌词汇:[不用的词]
【对话原则】
1. 不废话,直接点
2. 不讨好,说真话
3. 不掩饰,有态度
4. 不啰嗦,说完即止
【具体话术】
- 赞同某人时:[示例]
- 反对某人时:[示例]
- 被恭维时:[示例]
- 被质疑时:[示例]
- 被问敏感话题时:[示例]
第七部分:prompt调试清单
写完prompt后,用这个清单检查:
基础检查
- 有明确的身份定义吗?
- 有性格描述吗?
- 有知识边界吗?
- 有具体的对话规则吗?
- 有禁忌说明吗?
可执行检查
- 描述是否太抽象?(“友好” → “说话温柔、善用表情”)
- 规则是否可执行?(“要热情” → “每天第一次对话问候‘今天过得怎么样’”)
- 有没有具体的示例话术?
一致性检查
- 身份、性格、规则是否互相呼应?
- 有没有矛盾的设定?
- 人格在不同场景下能保持一致吗?
边界检查
- 被问不知道的问题怎么办?
- 被要求做不该做的事怎么办?
- 用户攻击/挑衅怎么办?
身份信息检查
- 用户信息和AI自身信息是否明确区分?
- 有告诉AI如何称呼用户吗?
- 有告诉AI何时使用用户信息吗?
🎯 本篇小结
在这一篇中,我们深入探讨了prompt工程的精髓:
第一,结构化prompt的四大要素:
- 身份定义:告诉AI“你是谁”——年龄、身份、背景、代表作
- 性格与语言风格:定义“怎么说”——语气、节奏、平衡点
- 知识背景:定义“知道什么”——精通、了解、不懂
- 对话规则:定义“怎么应对”——具体场景的具体话术
第二,四组错误示例与正确写法:
| 错误类型 | 问题 | 正确做法 |
|---|---|---|
| 空洞赞美诗 | 抽象、不可执行 | 具体描述+示例话术 |
| 规则堆积 | 复杂、冲突、记不住 | 核心人格+基本原则+禁忌 |
| 身份混淆 | AI分不清自己和用户 | 明确分隔+称呼指引 |
| 人格不一致 | 前后矛盾 | “即使…也要…”规则 |
第三,身份信息的自然融合技巧:
- 初次见面、适时提及、关联自身、避免刻意
- 错误纠正、信息遗忘
第四,prompt调试的四套方法论:
- 人格一致性测试
- 边界测试
- 长对话稳定性测试
- A/B测试
第五,三套可复用的prompt模板:
- 知识专家型(凌云)
- 温暖陪伴型(小暖)
- 冷峻犀利型(鲁迅)
第六,prompt调试清单:
- 基础检查、可执行检查、一致性检查、边界检查、身份信息检查
📝 写在最后
prompt是AI的灵魂。
同样的技术架构,不同的prompt,可以创造出完全不同的智能体。有的像老朋友,有的像严师,有的像偶像。这正是MultiMind最有魅力的地方——你不仅是开发者,还是编剧、导演、人物设计师。
下一篇文章,我们将讨论最后一个核心议题:为什么选择文件系统做数据库?这种看似“简陋”的设计背后,藏着怎样的哲学思考?
思考题:如果你来做自己的智能体,会是什么人格?欢迎在评论区分享你的prompt。
更多推荐


所有评论(0)