一、消息处理流程图
钉钉消息处理流程始于用户输入,消息经钉钉服务器安全验证后,通过WebSocket推送至系统。主控Agent(MainAgent)首先读取对话历史,再协调各功能Agent协同处理,最终生成并结合上下文与情感的自然响应。结果经格式化后,通过WebSocket返回并由钉钉客户端展示,同时更新对话记忆。
配套视频教程👉《AI智能体实战开发教程(从0到企业级项目落地)》共62节(已完结),从零开始,到企业级项目落地,这套课程将为你提供最完整的学习路径。不管你是初学者还是有一定经验的开发者,都能在这里获得实实在在的成长和提升。

二、详细处理步骤说明
2.1 用户发送消息/操作
- 输入:用户通过钉钉界面输入文本
- 处理逻辑:
- 钉钉客户端收集用户输入内容
- 封装为标准消息格式
- 输出:结构化消息对象
2.2 钉钉推送回调消息
- 输入:用户消息对象
- 处理逻辑:
- 验证消息签名(使用钉钉SDK)
- 检查消息类型(仅处理文本/事件消息)
- 添加系统元数据
- 通过WebSocket连接推送
- 输出:增强后的消息对象
- 性能指标:处理延迟 < 50ms
- 安全措施:
- HMAC-SHA256签名验证
- 消息去重(5秒内相同msgId视为重复)
2.3 WebSocket转发消息
- 输入:钉钉回调消息
- 输出:消息+连接ID转发到MessageHandler
2.4 MessageHandler提取消息数据
- 输入:WebSocket原始消息
- 处理逻辑:从回调消息中提取数据
- 输出:标准化消息对象发送到MainAgent
2.5 MainAgent读取对话历史
- 输入:标准化消息对象
- 处理逻辑:获取最近对话历史记录预处理
- 输出:预处理后的对话历史
2.6 调用功能Agent处理
- 输入:用户消息 + 对话历史(作为上下文背景了解)
- 处理逻辑:调用多Agent协同处理
2.7 响应代理生成响应
- 输入:用户消息 + 对话历史 + 功能Agent处理结果
- 响应生成:
- 功能代理结果存在:结果解释 + 附加操作
- 无功能代理:LLM生成自然语言响应
- 响应增强:生成符合用户情绪、结合上下文信息的自然对话响应
2.8 更新对话历史
- 输入:用户消息 + 系统响应
- 处理逻辑:分别存储用户输入消息、系统响应到对话记忆存储
2.9 MainAgent返回响应数据
- 输入:响应代理生成的响应对象
- 输出:增强的响应对象发送到MessageHandler
2.10 MessageHandler处理响应消息
- 输入:MainAgent的响应对象
- 输出:钉钉兼容的响应格式
2.11 WebSocket发送响应
- 输入:格式化后的响应
- 处理逻辑:
- 查找原始WebSocket连接
- 异步发送(非阻塞)
- 消息确认机制
- 输出:消息发送状态(成功/失败)
2.12 钉钉展示结果
- 输入:WebSocket响应
- 处理逻辑:
- 渲染消息组件
- 更新会话状态
- 用户交互处理