前面我们干了很多事情来完善一个有温度、有记忆、会倾听的情感聊天机器人 —— ”kaguya“。它可以理解用户情绪、记住对话历史、基于提示词工程展现一个稳定的人格,通过上下文管理实现自然连贯的交互体验。
但是,我们还有一个问题要思考: 它真的能主动关心我吗? 这答案,可能是否定的。
当前的”kaguya“ 本质上还是一个”反应系统“ —— 它在等待用户输入,然后生成回应。它不会在你连续三天情绪低迷的时候,提醒你注意心理健康,不会在你生日当天送上祝福,无法根据你的生活习惯建议冥想时间或者直接推送舒缓音乐。
这只不过是一台对话机器,不是一位陪伴伙伴。
要实现真正的智能,需要进行一次范式跃迁: 被动响应 走向 主动服务,从语言模型调用者变为 智能体设计者。
我们来引入 Agent 架构,赋予 AI “思考-决策-行动”的闭环能力,让“kaguya”从一个会说话的模型,成长为一个能感知、会规划、可执行的数字生命!(图恒宇!)
先抛出三个问题:
- 什么是Agent?它和普通聊天机器人有什么本质上的区别?
- 如何基于Agent架构重构“kaguya”? 让它拥有主动关怀、任务执行和长期陪伴的能力?
- Agent 技术如何与已有模块(Prompt、RAG、记忆系统)协同,构建更加强大的情感支持系统?
Agent的本质:不只是工具调用,“自主性”的觉醒
什么样的系统才算“智能“? 传统软件是固定的:
输入 A,执行逻辑B,得到结果C
大模型带来了概率性生成的能力,让系统可以”说人话“
真正让AI接近”智能体“的,则是至关重要的一步: 自主性
1.1 什么是Agent?
Agent就是”智能体“或者说”代理“,指的就是一种可以感知环境、自主决策、采取行动并且达成目标的软件实体。
与传统程序或者简单聊天机器人相比,Agent具备下面四个关键的能力:
- 感知:获取用户输入、系统状态、外部数据等信息
- 规划:根据目标定制执行路径,拆解任务步骤
- 行动:调用工具、访问数据库、发送消息等等
- 反思:评估结果,调整策略,持续优化行为。
Agent 不等于 调用API的脚本。真正的Agent 拥有 “目标驱动“的行为逻辑,能够在复杂环境中动态调整策略
在很多人心里,Agent实际上就是高级牛逼的ChatGPT进化版,实则不然,OpenAI在他们的白皮书有专门定义过Agent是什么:
agents是那种能够代表用户自主执行多步任务的系统。它不仅理解指令,还可以决定流程、调用工具、纠错,甚至在必要的时候把控制权还给用户。
也就是说,一个Agent需要具备下面的特点:
- 利用LLM来管理工作流、做决策。
- 能判定工作流是否完成。
- 能够遇错中断或者说回退,然后邀请人工进行干预。
- 拥有访问外部工具(APIs、数据库、服务)的能力。
相比之下,传统的chatbot或者说单一模型的应用,只不过是得到一个回答而已,没有流程感,没有行动力。
1.2 Agent vs 普通聊天机器人: 从应答到行动
OpenAI的白皮书明确指出:只有在以下场景,Agent才有被选择的意义:
| 类型 | 特征 | 示例 |
|---|---|---|
| 复杂判断/决策 | 需要权衡条件、判断标准 | 审批退款、风险评估 |
| 规则难以穷尽 | 规则繁多、不断变化 | 供应商管理、合规审查 |
| 处理非结构化数据 | 文本、图像、语音 | OCR票据处理、合同解析 |
作为对比,我们来看看哪些不适合用Agent:
- 纯粹的简单操作(定时发邮件)
- 完全确定性、可写死判断的流程
- 对资源敏感、成本极度考究的场景
首先问问自己:这个流程,是否”超出了传统自动化的范畴“。如果你说Yes,那才是值得用Agent的。就用我们的聊天场景来举例子:
| 维度 | 普通聊天机器人 | Agent |
|---|---|---|
| 响应模式 | 被动响应用户输入 | 主动感知 + 目标驱动 |
| 决策机制 | 基于Prompt生成回复 | 规划任务路径,选择最优策略 |
| 工具使用 | 无或者固定流程调用 | 动态判断是否调用什么工具 |
| 记忆利用 | 仅用于上下文延续 | 用于长期行为建模和个性化服务 |
| 用户关系 | 单次交互 | 持续陪伴和关系演进 |
举例来说,当你说“我最近睡不好”,普通机器人可能会回复:“你可以试一试冥想”
但是一个Agent化的“kaguya”他会主动服务你:
- 感知:识别出是睡眠问题 + 持续 + 情绪低落
- 规划:判断是否需要获取历史记录睡眠信息、是否建议专业咨询、是否设置提醒
- 行动:查询用户日志、调用冥想音频接口、发送每日晚安提醒
- 反思:一周之后进行回访,询问“你最近是否睡的还好?需要调整建议吗?”
Agent 核心架构解析:构造“kaguya”的智能大脑
为了让“kaguya”具备上述的能力,我们需要对其设计一套完整的Agent架构。如图:包含了四个核心组件:记忆中枢,规划模块,工具调用模块以及反思模块。

2.1 记忆中枢:长期关系的基石
Agent的记忆不仅仅是对话历史,更是行为日志 + 情感画像 + 反思记录的综合体。我们把原有记忆系统升级成三层结构,就像这样:
| 层级 | 内容 | 用途 |
|---|---|---|
| 短期记忆 | 最近五次对话 | 上下文感知 |
| 长期记忆 | 用户偏好、人格标签、关键事件 | 个性化服务 |
| 行为记忆 | 工具调用记录、反思日志、目标进度 | 智能规划和优化 |
这三层记忆,“kaguya”不仅仅可以记住你说的话,还可以记住它为你做过的事情,哪些做的好,哪些还要改进
哪些做的好,哪些做的需要改进要怎么判断呢?
“系统化的反思机制+记忆系统+用户反馈信号”三者协同的结果。
这是一个“感知->行动->反思->优化”的逻辑闭环
就像这样👇🏻

2.2 规划模块:让AI想清楚了再做
这个模块就是Agent的战略层。负责把模糊目标转换为可以执行的任务序列。
比如说,我们的目的是“帮助用户改善睡眠”,planner的流程就是:
- 目标解析。比如用户说:“我最近总是失眠。” 解析为:“改善睡眠质量”。
任务拆解。根据目标拆解成具体任务:
- 是否有睡眠日志? -> 查询记忆系统
- 最近有没有压力事件? -> 分析情感趋势
- 是否需要专业建议? -> 分析严重程度
- 是否提供放松资源? -> 调用冥想库
- 路径选择。 根据用户性格(内向)、历史偏好(点赞过轻音乐),决定优先推荐“白噪音+呼吸练习”
实现方式:可以使用思维链(Chain-of-Thought)或者任务分解提示(Task Decomposition Prompt)引导大模型自主生成计划。
示例Prompt:
你是一位心理健康陪伴Agent,请根据用户描述制定改善睡眠的行动计划。
请按以下步骤思考:
1. 明确用户核心诉求;
2. 检查已有信息(情绪趋势、生活习惯);
3. 列出可能的干预措施;
4. 按优先级排序并给出理由;
5. 输出最终执行方案。2.3 工具调用模块(Tool Use):赋予动手能力
没有工具的Agent,就像有脑无手。工具调用是Agent实现闭环服务的关键。“kaguya”届时会考虑集成以下的工具:
| 工具名称 | 功能说明 | 调用场景 |
|---|---|---|
| get_user_mood_trend() | 获取最近一周的情绪变化曲线 | 判断是否需要干预 |
| play_meditation_audio(genre) | 播放冥想音乐 | 缓解焦虑 |
| set_daily_reminder(time, message) | 设置每日提醒 | 养成作息习惯 |
| search_mental_health_resources(query) | 检索专业心理文章 | 提供知识支持 |
| send_follow_up_message(user_id) | 发送回访消息 | 验证效果 |
最佳实践:使用结构化输出格式(JSON)规范工具调用需求,便于程序解析。
{
"action": "tool_call",
"tool": "set_daily_reminder",
"parameters": {
"time": "21:00",
"message": "该冥想啦,今晚试试‘星空呼吸’吧 🌌"
}
}
现代模型已经原生支持函数调用(function Calling),开发者只需要定义工具Schema,模型就会自动判断什时候调用什么工具。
2.4 通信协议:引入MCP实现模块协同标准化
在复杂的Agent系统中,模块之间的高效、可靠通信是系统稳定运行的关键。仅依赖自由文本或者内部对象传递状态,容易导致上下文丢失、调试困难以及拓展性受限。
为此,我将引入MCP(Model Context Protocol,模型上下文协议) —— 这是一种专门为大模型智能体设计的结构化通信协议。MCP以json格式封装每一轮交互的核心要素,主要包含:
- content:自然语言内容(用户输入或者AI输出)
- context:结构化上下文(用户画像,情感状态,任务目标,记忆摘要等等)
- tool_calls / tool_responses:工具调用指令与执行结果
简而言之,MCP就是一种更加标准化的方式,让大语言模型安全、一致地使用各种外部工具,核心思想就是构建一个“中间协议层“,如图:

这里回顾一下MCP的知识:
它本质上就是提示词工程发展到高级阶段的必然产物。向模型提供更具体、结构化的上下文信息(例如本地文件、数据库记录、实时网络数据),能够显著提升推理精确性和任务完成度。
在没有MCP的年代,开发者往往需要手动从数据库筛选信息,将其拼接到提示词中。随着任务复杂度的提升,”手工喂料“的方式不仅效率低下,还容易出错。为了解决这个问题,LLM主流平台,OpenAI,google等,退出了function Calling(函数调用)功能,允许模型在推理过程中动态调用预定义函数,从而实现一定程度的自动化。
但是,这个功能也有明显的局限性:
- 平台绑定太强:不同厂商的函数调用接口不兼容,切换模型需要重写大量的代码;
- 扩展性差:难以支持复杂的多工具协作或者自定义数据流;
- 安全性和可控性不足:敏感数据可能被无意识暴露给模型;
所以,MCP来了,MCP就是针对于这些痛点提出的通用解决方案。如图所示,他就是一个万能转接头。让LLM能够灵活、安全访问本地或者远程的工具,同时保持对数据流的完全控制。
MCP的核心优势体现在三个方面:
- 生态丰富:社区已提供大量现成的插件(日历,音频播放器,心理知识库),即插即用
- 模型无关:不依赖LLM平台,任何支持MCP的模型都可以无缝切换
- 数据可控:敏感信息不用传到云端,开发者可以通过自定义接口精准决定传输内容,保障隐私和安全。
而在“Kaguya”的未来设想里,MCP的引入会带来质的飞跃:
- 规划器: 可以明确输出结构化的行动指令
- 工具调用:能精准解析并且执行工具调用
- 反馈器:基于完整的交互链进行反思和优化
所有的模块只需要遵循同一套协议,即可实现低耦合、高内聚的协同工作。
MCP协议的引入为“Kaguya”Agent系统带来了:
- 标准化的模块通信
- 完整的上下文传递
- 可追溯的交互链
- 更好的可维护性和拓展性
- 为未来多智能体协作奠定基础
嘛,可以说,MCP不仅仅是一种通信格式,更是构建下一代智能体系统的基础设施。每一次对话,都会成为一份结构清晰、语义完整、可审计可复现的“数字记忆”
2.5 反思模块(Reflector):让AI吃一堑,长一智
反思是Agent持续进化的保障。它通过评估结果、分析失败原因、调整策略,实现自我优化。
比如:
- 用户连续三次忽略冥想提醒 -> 反思:“提示方式是否太过于机械?” -> 调整为更为温暖的语气或者更换时间。
- 用户表达“你说的我不懂” -> 反思:“术语太多了?” -> 后续对话改用更口语化的表达。
实现方式:在每次交互之后,追加反思Prompt
请回顾刚才的对话:
1. 用户是否达成了目标?
2. 哪些回应可能会引起误解?
3. 下次遇到相似的情况应该如何改进?
请输出优化建议这些反思结果都可以存入向量数据库,作为未来决策的参考。
将“kaguya”升级成Agent化的陪伴伙伴
我们未来会进行统一的编码,如今,我们先来思考构思一下要怎么做,该怎么做?
3.1 需求重构:从”聊天“到”陪伴”的目标升级
原来的目标是让它提供情感倾诉的出口,新的目标则是成为用户的心理健康守护者。
- 主动关怀能力(情绪预警)
- 任务执行能力(设置冥想提醒)
- 长期成长支持(周报总结)
3.2 架构升级:引入Agent核心模块

在原有的“大模型 + 向量数据库 + 提示工程”的基础知识增加Agent,工作流就如上图所示。
用户输入消息之后,Agent Core先向Memory Hub检索相关的记忆,结合返回的记忆画像,经过Planner分解目标、选策略生成执行计划;接着Tool Caller调用External Tools获取结果,结合LLM Service生成回复返回用户,同时将内容作为新记忆保存至Memory Hub;之后Reflector借助LLM Service反思,评估,规划回访然后返回结果,持续优化流程。
src/
└─ app/
└─ features/
└─ agent/ # Agent 业务模块:负责规划、工具调用、反思与整体编排
├─ README.md # Agent 模块说明文档,记录职责边界、调用关系与后续规划
├─ service.py # Agent 对外服务入口,供 chat 或 router 调用
├─ orchestrator.py # Agent 总控编排层,串联 planner / tool_caller / reflector
├─ planner.py # 规划模块:决定下一步动作、是否调用工具、如何拆解任务
├─ tool_caller.py # 工具调用模块:统一执行工具并返回结果
├─ reflector.py # 反思模块:评估执行结果、决定纠偏或继续下一轮
├─ schemas.py # Agent 领域的数据结构定义
└─ tools/ # Agent 可调用的具体工具集合
├─ audio_player.py # 音频播放工具
├─ calendar_api.py # 日历/日程相关工具接口
├─ psychology_db.py # 心理学知识库或资料查询工具
└─ scheduler_service.py # 日程安排、提醒等调度类工具
Agent 核心控制器,协调所有模块:
from app.features.agent.orchestrator import AgentOrchestrator
agent = AgentOrchestrator(
planner=planner,
tool_caller=tool_caller,
reflector=reflector,
memory_service=memory_service,
context_service=context_service,
)
result = await agent.process(user_input=user_input, user_id=user_id)
记忆中枢,管理短期和长期记忆:
from app.features.memory.service import MemoryService
memory_service = MemoryService(...)
memories = await memory_service.retrieve(
query="睡眠",
user_id="user_123",
top_k=5,
)
任务规划模块,生成执行计划:
from app.features.agent.planner import Planner
planner = Planner(...)
plan = await planner.plan(user_input=user_input, context=context)工具调用器,执行外部工具:
from app.features.agent.tool_caller import ToolCaller
tool_caller = ToolCaller(...)
result = await tool_caller.call(
tool_name="search_memory",
arguments={"query": "睡眠", "user_id": "user_123"},
)反思模块,评估和优化:
from app.features.agent.reflector import Reflector
reflector = Reflector(...)
evaluation = await reflector.evaluate(interaction=interaction)3.3 场景演示
我们来做一次完整的Agent式交互。
用户输入:
“唉,又失眠了,感觉压力好大”
Agent流程:
- 感知与理解:NLP识别关键词失眠、压力,随后触发“心理健康干预”流程
规划决策:
- 查询记忆:过去7天情绪评分平均3.2(满分5分),呈下降趋势。
- 判断:需干预,建议放松训练 + 情绪疏导的方案。
工具调用:
- 调用
play_meditation_audio("calming_music") - 调用
set_daily_reminder("21:30", "今晚早点放松哦")
- 调用
- 生成回复:“听起来你真的很辛苦!我为你准备了一段舒缓的音乐!现在就可以播放啦。另外,每天晚上九点半我会提醒你进行放松,好吗?你值得好好休息。”
后续行动:
- 24小时后自动发送回访:“昨晚上睡得怎么样?需要聊聊吗?”
- 若连续三天未改善,建议:“要不要试试专业的正念课程?我可以为你推荐。”
效果对比:
传统机器人: 回复安慰语句 -> 交互结束
Agent化“Kaguya“:启动服务闭环 -> 建立长期支持关系
Agent 与 RAG、Prompt的协同:构建完整智能系统
Agent 不是孤立的技术,应该是整个大模型应用里面架构的”指挥中枢“
4.1 Agent + RAG: 让主动服务有理有据
Agent做决策之前,会让RAG找到依据。当Agent决定提供心里建议的时候,不能仅仅靠模型”想象”,而应该基于权威知识。
流程:
- 用户提到“焦虑” -> Agent 判断需要提供缓解方法。
- 调用RAG系统,检索《认知行为疗法手册》相关内容。
- 结合检索结果生成建议,确保科学性。
优势:避免知识幻觉,提高可信度
4.2 Agent + Prompt工程:定义“人格化决策逻辑”
Agent的规划和反思行为,依旧还是依赖高质量的Prompt设计。
关键Prompt的设计原则:
- 角色强化: “你是一个富有同理心的心理陪伴专家”
- 决策框架:“请按照评估-> 规划 -> 行动 -> 反思的流程进行思考”
- 安全约束:“不得建议药物或者替代专业治疗”
eg.
“请以温和但坚定的方式引导用户关注自身情绪,避免过度承诺或者引发依赖”
4.3 Agent + 记忆系统: 越用越懂你!
长期记忆让Agent有了一些成长性。
比如说用户第一次说,喜欢看猫猫视频,将其计入偏好。
在之后的对话里,用户情绪低落的时候,可以主动说:“要不要看猫猫视频?你之前说过看它们会觉得很愉快”
问题
在“Kaguya”升级为Agent化情感陪伴系统后,它具备了感知、规划、行动与反思的能力,能够主动关怀用户、执行任务并持续优化服务。例如,在用户连续失眠时,它会自动播放舒缓音乐、设置每日提醒,并在几天后回访效果。
然而,这种“主动关怀”也带来了新的挑战:如果系统过于主动——比如频繁发送提醒、建议就医、推荐课程——可能会让用户感到被监视、被打扰,甚至产生逆反心理;但如果过于被动,则又回到了传统聊天机器人的局限,失去了Agent的意义。
请思考并回答以下问题:
- 在情感陪伴Agent的设计中,“主动干预”的边界应如何界定?哪些信号可以作为判断“是否该出手”的依据?
- 如何通过Agent架构中的记忆系统、规划模块、反思模块协同工作,实现恰到好处的关怀节奏(既不过度打扰,也不冷漠忽视)?
点击查看答案
- 立足观点:情感陪伴 Agent 的主动干预应遵循“适度、渐进、可撤回、以用户感受为中心”的原则,目标是支持而不是控制
- 边界界定:1. 风险等级 2. 问题持续性和重复性 3. 用户授权与偏好 4. 用户反馈和接受度
- 记忆系统负责记录状态、偏好、效果。 反思模块负责评估是否有效、是否被打扰、持续进行调优 规划模块负责决定是否介入、介入强度和频率。
- 好的情感陪伴 Agent,不是最会主动干预,而是最会判断什么时候靠近、什么时候退后