企微“虚拟同事“智能机器人实践:基于 Java+Dify AI构建可视化工作流接入方案

企微“虚拟同事“智能机器人实践:基于 Java+Dify AI构建可视化工作流接入方案

最开始

今天,分享在企业微信“智能机器人”新功能上的实践案例,侧重流程,省略更多的接入和调试细节,实现通过 API 模式接入自己的AI应用。

企业微信在 2025 新品发布会上推出的“智能机器人”,相比传统 Webhook 机器人,强势融入了 AI 还能用上 RAG(Retrieval-Augmented Generation)能力,支持联系人搜索、群聊@问答、私聊交互,支持流式返回内容,并支持markdown格式内容的渲染

相比 Webhook 机器人主动的推送消息,智能机器人更像是AI员工。

本文将基于企业微信配置 + Java Spring Boot 中后台服务 + Dify AI 应用,通过 API 模式接入企业自定义 AI 服务,实现用户通过智能机器人到 Dify 可视化 AI 工作流的构建。

这么厉害的功能不出意外接入很繁琐,所以


1.你最好熟悉后端服务,加解密处理,部署调试看日志;

2.熟悉企业微信的接入生态;

3.对Dify等AI应用的流式输出有处理经验,附带能搞定提示词。
 

图片来源企业微信开发文档


企业微信智能机器人的基础知识

什么是智能机器人?


企业微信智能机器人是 2025 新品的核心功能,支持:
- **AI/RAG 能力**:接入大模型进行智能问答,结合知识库检索。
- **交互模式**:联系人搜索、群聊@问答、私聊,支持拉入群聊(Webhook 机器人无法实现)。
- **接入方式**:API 模式(非 Webhook),需处理加密回调、Token 验证等,复杂度更高。

与传统 Webhook 机器人的区别:
- Webhook:被动接收消息,像服务号,只能群发或回复,不支持拉群。
- 智能机器人:主动交互,支持群聊@、私聊搜索,可接入自定义 AI(如 Dify),更适合企业场景。

接入前提:企业微信后台创建应用,启用智能机器人,获取 Bot ID、URL、Token 等(详见官方文档)。

概述 - 文档 - 企业微信开发者中心

为什么结合 Dify AI?


Dify 是一个开源 AI 应用平台, stars点亮迅猛,且支持 chatflow 模式的可视化工作流构建。您可以拖拽节点接入大模型(LLM)、知识库(RAG),并通过日志调试观察执行(如 token 消耗、响应时间)。这完美匹配智能机器人的 AI 需求:用户查询 => Dify 工作流处理 => 响应返回。

系统架构设计

脑图概述

时序图流程

关键组件:
- **企业微信**:事件源,支持拉群交互。
- **Java 服务**:基于 Spring Boot,处理企业微信的消息体加密/解密,调用 Dify。
- **Dify**:可视化工作流,集成 AI 模型

接收消息 - 文档 - 企业微信开发者中心


核心实现步骤

步骤1:企业微信配置

1. 登录企业微信后台,创建应用,启用“智能机器人”。
2. 设置名称、描述、权限。
3. 配置 API:填写 URL(您的 Java 服务端点,如 `https://your-domain/weixin/aibot/callback`)、Token、EncodingAESKey(用于加密)。
4. 保存后,获取 Bot ID,用于搜索拉群。(创建后,通常需要等待一段时间:10分钟,才能在联系人列表中被搜索到)

参考官方文档:

企业微信开发者文档 - 智能机器人API

步骤2:Java 中后台服务搭建

基于您的项目结构,Controller 处理回调对企业微信的消息体进行解密,Service 调用 Dify处理,回调中再加密返回给企业微信。

加解密参考:

回调和回复的加解密方案 - 文档 - 企业微信开发者中心

示例:Controller.java(简化版):

// Controller.java // ... existing code ... @RestController @RequestMapping("/weixin/aibot") public class WeixinAiBotController {     @Autowired     private WeixinAiBotService weixinAiBotService;     // ... existing code ...     @PostMapping("/callback")     public WeixinAiBotEncryptedResponse handleCallback(/* 参数 */) {         try {             // 解密消息             String decryptedJson = your.DecryptMsgJson(/* 参数 */);             WeixinAiBotCallbackMessage callbackMessage = objectMapper.readValue(decryptedJson, WeixinAiBotCallbackMessage.class);                          // 处理消息,调用 Service             WeixinAiBotStreamResponse streamResponse = weixinAiBotService.processMessage(callbackMessage);                          // 加密响应             String encryptedResponseXml = your.EncryptMsg(/* 响应JSON */);                          // 返回 ResponseResult(自定义)             return /* 构建加密响应 */;         } catch (Exception e) {             // 异常处理,符合 OWASP             throw new BizException(ResultCode.INTERNAL_SERVER_ERROR);         }     }     // ... existing code ... }

Dify 集成:使用 DifyClient.java 的 workflow 方法调用 chatflow。

// ... existing code ... @Component public class DifyClient {     // ... existing code ...     public DifyWorkflowResponse workflow(DifyChatRequest request) {         // 构建 header,Authorization 使用 Bearer [您的API Key](脱敏)         Map<String, String> header = new HashMap<>();         header.put("Authorization", "Bearer [您的API Key]");                  // POST 调用 Dify API         String chatRespStr = HttpUtils.post(difyBaseUrl + "/v1/workflows/run", JSON.toJSONString(request), header);                  // 解析响应         DifyWorkflowResponse workflowResp = JSONObject.parseObject(chatRespStr, DifyWorkflowResponse.class);         return workflowResp;     }     // ... existing code ...

步骤3:Dify AI 工作流构建

在 Dify 平台,使用 chatflow 模式并按需拖拽节点:
- Start 节点:接收用户输入。
- LLM 节点:接入大模型(如 GPT),配置 Prompt。
- 知识库节点:RAG 检索。
- End 节点:输出响应。

调试:观察日志,查看 token 消耗、响应时间

步骤4:集成与测试

测试过程分为两部:
1. 中后台服务能否正确接受企业微信来源的信息,成功加解密和返回
2. dify中工作流的编排,符合自身需求功能


- **集成**:企业微信回调到 Java Controller,Service 调用 Dify workflow,返回响应。
- **测试**:在企业微信搜索你的超级机器人名称(如 “TechBot”),拉入群聊/私聊,发送查询。响应通过群@或私聊显示。
- **效果描述**:机器人可搜索并拉群,支持@问答(如查询“tech”返回 AI 结果)

最终

总结与展望

通过企业微信智能机器人 + Java 服务 + Dify,我们实现了用户到可视化 AI 工作流的无缝接入,增强了企业协作的智能性。

这不仅解决了 Webhook 的局限,还利用 Dify 的 chatflow 简化 AI 构建。

通过编排加入意图识别或构建多个Dify chatflow应用能够进一步实现:
1. 通过多模态大模型或Dify插件生态,生成图片,分析图片...
2. 分析指令,调用自身业务逻辑接口,实现增删改查,进让大模型反馈给用户等等

同时回复格式上,对markdown都能不错支持。

当然,代价也有,接入调试繁琐,部署后排查问题更是,且交互中存在可优化的空间,否则极易影响交互的效果,吐字速度会有影响。


FYI
概述 - 文档 - 企业微信开发者中心

Dify: Leading Agentic AI Development Platform

Read more

将现有 REST API 转换为 MCP Server工具 -higress

将现有 REST API 转换为 MCP Server工具 -higress

Higress 是一款云原生 API 网关,集成了流量网关、微服务网关、安全网关和 AI 网关的功能。 它基于 Istio 和 Envoy 开发,支持使用 Go/Rust/JS 等语言编写 Wasm 插件。 提供了数十个通用插件和开箱即用的控制台。 Higress AI 网关支持多种 AI 服务提供商,如 OpenAI、DeepSeek、通义千问等,并具备令牌限流、消费者鉴权、WAF 防护、语义缓存等功能。 MCP Server 插件配置 higress 功能说明 * mcp-server 插件基于 Model Context Protocol (MCP),专为 AI 助手设计,

By Ne0inhk
MCP 工具速成:npx vs. uvx 全流程安装指南

MCP 工具速成:npx vs. uvx 全流程安装指南

在现代 AI 开发中,Model Context Protocol(MCP)允许通过外部进程扩展模型能力,而 npx(Node.js 生态)和 uvx(Python 生态)则是两种即装即用的客户端工具,帮助你快速下载并运行 MCP 服务器或工具包,无需全局安装。本文将从原理和对比入手,提供面向 Windows、macOS、Linux 的详细安装、验证及使用示例,确保你能在本地或 CI/CD 流程中无缝集成 MCP 服务器。 1. 工具简介 1.1 npx(Node.js/npm) npx 是 npm CLI(≥v5.2.0)

By Ne0inhk
解锁Dify与MySQL的深度融合:MCP魔法开启数据新旅程

解锁Dify与MySQL的深度融合:MCP魔法开启数据新旅程

文章目录 * 解锁Dify与MySQL的深度融合:MCP魔法开启数据新旅程 * 引言:技术融合的奇妙开篇 * 认识主角:Dify、MCP 与 MySQL * (一)Dify:大语言模型应用开发利器 * (二)MCP:连接的桥梁 * (三)MySQL:经典数据库 * 准备工作:搭建融合舞台 * (一)环境搭建 * (二)安装与配置 Dify * (三)安装与配置 MySQL * 关键步骤:Dify 与 MySQL 的牵手过程 * (一)安装必要插件 * (二)配置 MCP SSE * (三)创建 Dify 工作流 * (四)配置 Agent 策略 * (五)搭建MCP

By Ne0inhk
如何在Cursor中使用MCP服务

如何在Cursor中使用MCP服务

前言 随着AI编程助手的普及,越来越多开发者选择在Cursor等智能IDE中进行高效开发。Cursor不仅支持代码补全、智能搜索,还能通过MCP(Multi-Cloud Platform)服务,轻松调用如高德地图API、数据库等多种外部服务,实现数据采集、处理和自动化办公。 本文以“北京一日游自动化攻略”为例,详细讲解如何在 Cursor 中使用 MCP 服务,完成数据采集、数据库操作、文件生成和前端页面展示的全流程。 学习视频:cursor中使用MCP服务 一、什么是MCP服务? MCP(Multi-Cloud Platform)是Cursor内置的多云服务接口,支持调用地图、数据库、文件系统等多种API。通过MCP,开发者无需手动写HTTP请求或繁琐配置,只需在对话中描述需求,AI助手即可自动调用相关服务,极大提升开发效率。 二、环境准备 2.1 cursor Cursor重置机器码-解决Too many free trials. 2.

By Ne0inhk