
把大模型接进企微不是调个 API 就完事。客户发一条消息你要判断意图、查上下文、调模型、拼回复、发回去中间任何一环出问题体验就垮了。这篇讲清楚整条链路怎么搭。先想清楚 Agent 和 Chatbot 的区别Chatbot 是你问我答一问一答没有状态。Agent 是你交代一件事它自己拆步骤、调工具、做完汇报。在企微场景里Agent 的价值在于能调企微自己的接口查客户资料、发消息、拉群、打标签。客户说给张三发个报价单Agent 自己查张三是谁、找到会话、发送文件。整体架构客户消息 → Webhook 回调 → 意图识别 → Agent 循环 → 工具调用 → 回复发送Agent 循环是核心模型判断下一步该做什么调用工具拿到结果再判断直到完成或转人工。意图识别别什么都扔给模型客户消息进来先过一层规则判断明显不是任务指令的直接走快捷回复TASK_KEYWORDS {查, 发, 拉, 打, 统计, 提醒} def is_task(text): return any(k in text for k in TASK_KEYWORDS) def handle_message(data): text data[content] if not is_task(text): reply(data[conversationId], 请问有什么可以帮您的) return # 扔给 Agent 处理 agent_queue.put(data)这层过滤能挡掉 70% 的无效调用省 token 也省时间。Agent 循环模型决策工具执行Agent 的核心是模型决定调什么工具代码执行工具结果喂回模型。TOOLS { query_customer: {desc: 查询客户资料, func: query_customer}, send_message: {desc: 发送消息, func: send_message}, create_group: {desc: 创建群聊, func: create_group}, add_label: {desc: 给客户打标签, func: add_label}, } def agent_loop(task, context): for step in range(10): # 最多 10 步防死循环 prompt build_prompt(task, context, TOOLS) action llm.decide(prompt) if action[type] reply: return action[content] if action[type] tool: tool TOOLS[action[tool]] result tool[func](**action[args]) context.append({tool: action[tool], result: result}) continue if action[type] escalate: return transfer_to_human() return 任务处理超时已转人工。模型返回的 action 是结构化 JSON包含 type、tool、args 或 content。代码解析后执行结果追加到 context继续循环。工具封装安全第一Agent 能调的工具要严格控制不能随便开一个执行任意代码的口子。每个工具函数里做二次校验def send_message(conversation_id, content): # 校验会话归属 if not is_valid_conversation(conversation_id): raise ValueError(无效会话) # 校验内容长度 if len(content) 2000: raise ValueError(内容过长) # 校验敏感词 if contains_sensitive(content): raise ValueError(内容不合规) return call_api(message/sendText, { appid: APPID, conversationId: conversation_id, content: content })工具白名单 函数内校验两层防护。上下文管理别塞太多企微群聊的上下文跳跃、多人交叉全塞给模型既贵又乱。做法只取最近 10 条相关消息标记发言人让模型知道谁问了什么排除机器人自己发的消息def build_context(messages, limit10): context [] for msg in messages[-limit:]: if msg[senderUin] BOT_UIN: continue context.append(f{msg[senderName]}: {msg[content]}) return \n.join(context)一个真实场景某销售团队的企微 Agent客户说给李总发一份产品资料Agent 自动查李总是谁 → 找到客户 uin查资料库 → 找到最新产品手册上传文件 → 拿到 CDN 凭证发送文件 → 完成全程 15 秒销售不用动手。接口路径和字段在Eyun 开发文档里能查到Agent 的工具封装在 Eyun 控制台开通实例后配置。