前面我们干了很多事情来完善一个有温度、有记忆、会倾听的情感聊天机器人 —— ”kaguya“。它可以理解用户情绪、记住对话历史、基于提示词工程展现一个稳定的人格,通过上下文管理实现自然连贯的交互体验。

但是,我们还有一个问题要思考: 它真的能主动关心我吗? 这答案,可能是否定的。

当前的”kaguya“ 本质上还是一个”反应系统“ —— 它在等待用户输入,然后生成回应。它不会在你连续三天情绪低迷的时候,提醒你注意心理健康,不会在你生日当天送上祝福,无法根据你的生活习惯建议冥想时间或者直接推送舒缓音乐。

这只不过是一台对话机器,不是一位陪伴伙伴。

要实现真正的智能,需要进行一次范式跃迁: 被动响应 走向 主动服务,从语言模型调用者变为 智能体设计者

我们来引入 Agent 架构,赋予 AI “思考-决策-行动”的闭环能力,让“kaguya”从一个会说话的模型,成长为一个能感知、会规划、可执行的数字生命!(图恒宇!)

先抛出三个问题:

  1. 什么是Agent?它和普通聊天机器人有什么本质上的区别?
  2. 如何基于Agent架构重构“kaguya”? 让它拥有主动关怀、任务执行和长期陪伴的能力?
  3. 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的流程就是:

  1. 目标解析。比如用户说:“我最近总是失眠。” 解析为:“改善睡眠质量”。
  2. 任务拆解。根据目标拆解成具体任务:

    • 是否有睡眠日志? -> 查询记忆系统
    • 最近有没有压力事件? -> 分析情感趋势
    • 是否需要专业建议? -> 分析严重程度
    • 是否提供放松资源? -> 调用冥想库
  3. 路径选择。 根据用户性格(内向)、历史偏好(点赞过轻音乐),决定优先推荐“白噪音+呼吸练习”
实现方式:可以使用思维链(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的核心优势体现在三个方面:

  1. 生态丰富:社区已提供大量现成的插件(日历,音频播放器,心理知识库),即插即用
  2. 模型无关:不依赖LLM平台,任何支持MCP的模型都可以无缝切换
  3. 数据可控:敏感信息不用传到云端,开发者可以通过自定义接口精准决定传输内容,保障隐私和安全。

而在“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流程

  1. 感知与理解:NLP识别关键词失眠、压力,随后触发“心理健康干预”流程
  2. 规划决策

    1. 查询记忆:过去7天情绪评分平均3.2(满分5分),呈下降趋势。
    2. 判断:需干预,建议放松训练 + 情绪疏导的方案。
  3. 工具调用

    1. 调用 play_meditation_audio("calming_music")
    2. 调用 set_daily_reminder("21:30", "今晚早点放松哦")
  4. 生成回复:“听起来你真的很辛苦!我为你准备了一段舒缓的音乐!现在就可以播放啦。另外,每天晚上九点半我会提醒你进行放松,好吗?你值得好好休息。”
  5. 后续行动

    1. 24小时后自动发送回访:“昨晚上睡得怎么样?需要聊聊吗?”
    2. 若连续三天未改善,建议:“要不要试试专业的正念课程?我可以为你推荐。”
效果对比
传统机器人: 回复安慰语句 -> 交互结束
Agent化“Kaguya“:启动服务闭环 -> 建立长期支持关系

Agent 与 RAG、Prompt的协同:构建完整智能系统

Agent 不是孤立的技术,应该是整个大模型应用里面架构的”指挥中枢“

4.1 Agent + RAG: 让主动服务有理有据

Agent做决策之前,会让RAG找到依据。当Agent决定提供心里建议的时候,不能仅仅靠模型”想象”,而应该基于权威知识。

流程:

  1. 用户提到“焦虑” -> Agent 判断需要提供缓解方法。
  2. 调用RAG系统,检索《认知行为疗法手册》相关内容。
  3. 结合检索结果生成建议,确保科学性。
优势:避免知识幻觉,提高可信度

4.2 Agent + Prompt工程:定义“人格化决策逻辑”

Agent的规划和反思行为,依旧还是依赖高质量的Prompt设计。

关键Prompt的设计原则:

  • 角色强化: “你是一个富有同理心的心理陪伴专家”
  • 决策框架:“请按照评估-> 规划 -> 行动 -> 反思的流程进行思考”
  • 安全约束:“不得建议药物或者替代专业治疗”
eg.
“请以温和但坚定的方式引导用户关注自身情绪,避免过度承诺或者引发依赖”

4.3 Agent + 记忆系统: 越用越懂你!

长期记忆让Agent有了一些成长性。

比如说用户第一次说,喜欢看猫猫视频,将其计入偏好。

在之后的对话里,用户情绪低落的时候,可以主动说:“要不要看猫猫视频?你之前说过看它们会觉得很愉快”

问题

在“Kaguya”升级为Agent化情感陪伴系统后,它具备了感知、规划、行动与反思的能力,能够主动关怀用户、执行任务并持续优化服务。例如,在用户连续失眠时,它会自动播放舒缓音乐、设置每日提醒,并在几天后回访效果。

然而,这种“主动关怀”也带来了新的挑战:如果系统过于主动——比如频繁发送提醒、建议就医、推荐课程——可能会让用户感到被监视、被打扰,甚至产生逆反心理;但如果过于被动,则又回到了传统聊天机器人的局限,失去了Agent的意义。

请思考并回答以下问题:

  1. 在情感陪伴Agent的设计中,“主动干预”的边界应如何界定?哪些信号可以作为判断“是否该出手”的依据?
  2. 如何通过Agent架构中的记忆系统、规划模块、反思模块协同工作,实现恰到好处的关怀节奏(既不过度打扰,也不冷漠忽视)?


点击查看答案

  1. 立足观点:情感陪伴 Agent 的主动干预应遵循“适度、渐进、可撤回、以用户感受为中心”的原则,目标是支持而不是控制
  2. 边界界定:1. 风险等级 2. 问题持续性和重复性 3. 用户授权与偏好 4. 用户反馈和接受度
  3. 记忆系统负责记录状态、偏好、效果。 反思模块负责评估是否有效、是否被打扰、持续进行调优 规划模块负责决定是否介入、介入强度和频率。
  4. 好的情感陪伴 Agent,不是最会主动干预,而是最会判断什么时候靠近、什么时候退后

最后修改:2026 年 03 月 26 日
收款不要了,给孩子补充点点赞数吧