高德开放平台Skill创意实践:如何设计一个有“性格“的 AI Agent 角色系统
本文以我的参赛作品「路线先遣队」为例,聊聊在 AI Agent 中设计多角色系统的方法论——如何让同一组数据通过不同性格视角产生完全不同的输出,以及这种设计模式在企业 AI 应用中的潜力。
引言:同一组数据,为什么需要多种"声音"
AI Agent 领域有一个被低估的设计维度:输出人格化。
大多数 Agent 的输出风格是单一的——要么正式严谨,要么轻松友好。但在实际业务场景中,不同用户对信息的消费方式差异巨大:
- 决策者想要一句话结论
- 执行者想要操作步骤
- 旁观者想要轻松易读的摘要
我在高德开放平台Skill创意征集赛的参赛作品「路线先遣队」中,尝试了一种方案:用角色系统让 AI 以多种性格视角解读同一组数据。
🔗 Skill地址:https://clawhub.ai/qhvssonic/amap-route-reviewer
一、设计目标
场景:用户提出旅行需求,系统调用高德 API 生成路线方案,然后需要帮用户做决策。
传统做法:列出方案的距离、耗时、费用让用户自己比较。
问题:冰冷的数字很难帮人做决策。“飞机2.5h / ¥1200” vs “高铁8h / ¥600”——信息都给了,但用户还是纠结。
我的思路:让 AI 替你体验一遍,再用你能共鸣的方式告诉你感受。而且不同人需要不同的"感受视角",所以设计了四个角色。
二、四角色系统设计
2.1 角色定义的三层结构
每个角色不是一句"你是一个毒舌的AI"就够了,需要三层定义:
第一层:性格内核(决定看问题的角度)
第二层:语言风格(决定怎么表达)
第三层:行为锚点(具体场景下的典型反应)
以「毒舌里子」为例:
| 层级 | 定义 |
|---|---|
| 性格内核 | 用反讽和冷嘲表达真实评价,吐槽中藏着有用信息 |
| 语言风格 | 反话正说、"恭喜你"系列、短句为主、冷幽默 |
| 行为锚点 | 堵车→"三环冥想体验";下雨骑行→"你真是个天才";费用高→"家里有矿" |
为什么需要第三层?
只给 LLM 前两层定义,输出容易"飘"——有时候很毒舌,有时候又突然变温柔。行为锚点的作用是给模型足够多的"校准样本",让它理解"毒舌的分寸"在哪里。
2.2 四个角色的设计逻辑
不是随便定了四种性格,而是基于信息消费需求的分类:
| 角色 | 满足的需求 | 用户画像 |
|---|---|---|
| 🔥 热血小高 | “我需要被推一把” | 犹豫型用户,需要正面鼓励 |
| 👵 碎碎念德仔 | “我需要知道细节风险” | 谨慎型用户,怕遗漏 |
| 🤡 毒舌里子 | “我需要听真话” | 理性型用户,讨厌废话 |
| 🧊 高冷阿巴 | “我只需要数据” | 分析型用户,自己下判断 |
四者覆盖了用户决策风格的四个象限。用户可以按自己的当前心态自由组合。
2.3 角色之间的冲突是"Feature"
同一条路线,四个角色给出的评价可能完全相反:
- 下雨天自驾:热血说"浪漫",毒舌说"愚蠢",碎碎念说"危险",高冷说"风险+40%"
- 高消费方案:热血说"值得",碎碎念说"心疼",毒舌说"有矿",高冷说"性价比0.6"
这种冲突不是bug,是核心价值。 用户看完四种截然不同的观点后,自然会形成自己的判断。这比AI给一个"正确答案"更有决策帮助——因为旅行选择没有客观正确答案,只有主观偏好。
三、数据→性格反应的映射机制
角色系统最大的技术挑战是:如何保证角色的反应是基于真实数据的,而不是AI在"编段子"。
3.1 触发规则表
我设计了一张数据条件→角色反应的映射表,作为 Prompt 的核心组成部分:
| 数据条件 | 热血小高 | 碎碎念德仔 | 毒舌里子 | 高冷阿巴 |
|---|---|---|---|---|
| 降水 + 户外活动 | 雨中浪漫 | 带伞/别感冒 | 天才决策 | 滑倒概率% |
| 拥堵 > 2小时 | 听歌享受 | 带水/别憋尿 | 免费冥想 | 拥堵占比% |
| 步行无遮荫 > 3km | 晒太阳补钙 | 防晒霜/带水 | 免费桑拿 | 紫外线指数 |
| 景点评分 < 4.0 | 小众有惊喜 | 评分低别踩雷 | 花钱看差评 | 评分x.x/5 |
| 连续驾驶 > 2h无服务区 | 风景看不够 | 别疲劳驾驶 | 膀胱赛跑 | 服务区间距km |
这张表的本质是"领域知识的结构化表达"。
它约束了 LLM 的发挥方向——不是让模型随便联想,而是在"满足条件X时,角色Y必须从方向Z来评价"这个框架内创作。既保证了真实性(每条评价都关联具体数据),又保留了创造性(具体怎么表达由模型发挥)。
3.2 数据深挖指引
为了让评价更有"内行感",我在 Prompt 中列出了高德 API 返回数据中值得挖掘的细粒度字段:
- POI评分 + 评论数:低分景点让毒舌重点关照
- 营业时间:如果到达时已关门,碎碎念提醒、毒舌嘲讽
- 沿途设施密度:无厕所/便利店区段触发"膀胱挑战赛"
- 红绿灯数:过多触发"停车起步大师训练营"
- 收费站数量和费用:累计费用让毒舌发挥"这条路是金子铺的"
- 公交换乘步行距离:换乘多让碎碎念发挥"别坐过站"
数据越细,角色评价越像真的"走过一遍",而不是在泛泛而谈。
四、两种输出模式的设计
4.1 速评模式
每个角色给一段总评。适合快速决策。
🤡 毒舌里子:
"经典热门路线,排队2小时拍照30秒。
不过飞机至少体面,花钱买罪受也得有底线。"
设计要点:控制在3-5句话内,有观点、有数据、有态度。
4.2 实况模式
角色模拟按时间线行进,逐段发消息:
🤡 [08:00 出发]:"外面飘着小雨。你确定不是在拍公路灾难片?"
🤡 [09:30 到达]:"门票80,停车20。2000年前李冰治水没想到有人下雨来看水。"
🤡 [17:00 返程]:"全程280km,花了一天钱看了一天雨。"
设计要点:
- 每条消息关联一个路线节点(出发/途经/到达)
- 每条消息至少引用一个真实数据点
- 按时间线排列,有"实时感"
实况模式的灵感来自"朋友旅行时给你发消息"的真实体验——你不在场,但通过对方的实时动态有代入感。
五、这种设计模式的更广泛适用性
角色系统不只适用于旅行评价,它的本质是一种多视角信息解读框架。以下场景也适用:
| 场景 | 角色设计思路 |
|---|---|
| 代码审查 Agent | 安全官(只看漏洞)+ 性能控(只看效率)+ 架构师(看设计)+ 新人(看可读性) |
| 投资分析 | 乐观派(看增长)+ 悲观派(看风险)+ 数据派(只看财报)+ 趋势派(看行业) |
| 产品评审 | 用户视角 + 开发视角 + 商业视角 + 竞品视角 |
| 设备运维 | 效率导向(最快修好)+ 成本导向(最省钱)+ 安全导向(最稳妥)+ 预防导向(看趋势) |
核心模式:N个固定视角 × 同一组数据 = N种有明确立场的解读。
比起让一个 AI 给"全面而平衡"的答案(实际上往往是废话),多角色系统强制从不同极端给出观点,用户在冲突中形成自己的判断。这符合决策心理学中的"考虑对立面"(consider the opposite)去偏技术。
六、Prompt Engineering 的关键经验
做完这个Skill,总结几条角色系统设计的Prompt工程经验:
6.1 行为锚点比性格描述重要10倍
不要:你是一个毒舌的AI,说话要阴阳怪气
要:堵车→"恭喜解锁三环冥想";下雨骑行→"你真是个天才";费用高→"家里有矿"
给10个具体例子,比写100字性格描述有效得多。
6.2 触发条件要跟数据绑定
不要:如果用户的方案不好,就吐槽(什么叫"不好"?模型自己判断会飘)
要:如果降水概率>60%且活动类型=户外,则触发天气相关吐槽(数据条件明确)
6.3 限制输出长度
角色容易"话太多"。需要明确约束:
- 速评:3-5句话
- 实况每条消息:1-3句话
- 每条消息必须关联一个数据点
6.4 显式定义"不做什么"
毒舌里子不能真的冒犯用户,只能吐槽"方案/情况"。
碎碎念德仔不能变成"否定一切"的悲观主义者。
角色的边界和角色的特征同样重要。
七、总结
「路线先遣队」的角色系统设计,核心是三件事:
- 基于用户决策需求设计角色(不是为了搞笑而搞笑,每个角色服务一种信息消费方式)
- 用触发规则表绑定数据和角色反应(确保输出有据可查,不是AI编故事)
- 在可控框架内保留创造性(约束方向,不约束具体表达)
这种"多角色×同一数据"的设计模式,在任何需要"从多个角度解读信息帮助决策"的 AI 应用场景中都适用。
🔗Skill地址:https://clawhub.ai/qhvssonic/amap-route-reviewer
更多推荐




所有评论(0)