题目
同一个 Agent 接入网页、飞书和钉钉时,如何设计消息模型与渠道适配器?
答案
核心业务使用统一消息模型,包含内部用户身份、会话 ID、消息 ID、文本、附件、回复目标和事件类型。各渠道适配器负责把外部事件转换成该模型。 输入侧处理渠道认证、签名校验、用户映射、重复消息和附件权限;输出侧将统一回复转换成文本、卡片或文件,并适配长度、频率和格式限制。 核心 Agent 不直接依赖某个平台的消息字段。渠道不支持流式输出时,可以分阶段更新卡片或最终发送结果,但要避免每个 Token 都发一条消息。 ![多个入口,共用一套 Agent 逻辑](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/question/agent-development/extra-channel-adapters-84166825ad817869.png) 渠道可能重复推送回调,所以按渠道消息 ID 去重,并将回复与原任务绑定。发送消息是外部副作用,需要记录发送状态,处理超时和重复回复,不能只靠前端按钮防重。