AI智能体工作流和MCP配置
智能体技术概述
在AI技术快速发展的背景下,智能体(Agent)已成为连接大语言模型与实际业务场景的重要桥梁。智能体不仅能够理解自然语言,还能够通过工具调用、任务推理和步骤拆解来完成复杂的自动化任务。
从技术角度来看,智能体的核心能力包括:
- 任务理解与分解:将复杂任务拆解为可执行的子步骤
- 工具调用:集成外部API、数据库、文件系统等资源
- 推理决策:根据上下文信息做出合理的决策和行动
- 学习适应:通过反馈不断优化执行策略
在实际应用中,智能体特别适合处理”重复度高、机械化程度高”的工作,如文档检核、批量任务处理、自动化测试执行等场景。这些应用不仅能显著提高工作效率,还能降低人工操作的错误率。
主流智能体开发平台对比
Dify:开源企业级解决方案
Dify是一款完全开源的LLM应用开发平台,基于Apache 2.0协议。其技术架构包括:
- 后端:Python(Flask)
- 前端:Next.js
- 数据库:PostgreSQL + 向量数据库
核心优势:
- 支持完全私有化部署,满足数据安全要求
- 提供可视化工作流编辑器,降低开发门槛
- 支持多种应用类型:聊天助手、Agent、工作流等
- 开放式插件架构,可深度定制
- 支持多家大模型接入(OpenAI、Claude、国产模型等)
Dify详细安装部署
1. 基础环境准备
首先确保系统已安装Docker和Docker Compose:
1 | # 检查Docker版本 |
2. 快速部署步骤
1 | # 克隆项目代码 |
3. 重要环境变量配置
编辑 .env
文件,配置关键参数:
4. 系统初始化
部署完成后访问初始化页面:
1 | # 本地环境 |
创建管理员账户并完成基础配置。
Dify系统更新升级
1. 备份重要数据
1 | # 停止服务 |
2. 更新代码和镜像
1 | # 拉取最新代码 |
3. 数据库迁移
系统数据存储位置:dify/docker/volumes
参考:https://docs.dify.ai/en/getting-started/install-self-hosted/docker-compose#upgrade-dify
离线插件打包与安装
在内网环境中,插件安装需要特殊处理。离线安装插件也需要从互联网拉取一些pipy包,因此内网安装失败。
需要手动打包纯离线插件。
1. 插件重新打包工具
1 | # 下载插件打包工具 |
2. 打包不同架构插件
1 | # x86_64架构打包 |
3. 常见问题排查
问题1:插件签名验证失败
1 | 错误信息:PluginDaemonBadRequestError: plugin verification has been enabled, |
解决方案:
1 | # 在docker/.env配置文件添加 |
问题2:架构不匹配错误
1 | 错误信息:Because gevent==25.5.1 has no wheels with a matching platform tag |
解决方案:
1 | # 查看当前系统架构 |
问题3:查看详细错误日志
1 | # 查看插件守护进程日志 |
4. 插件安装验证
1 | # 检查插件是否安装成功 |
参考链接:
https://github.com/junjiem/dify-plugin-repackaging
https://github.com/lebenito030/dify-plugin-repackaging
https://blog.csdn.net/f80407515/article/details/147240740
https://blogs.lebenito.net/posts/Blind-Do/4a33641693af7111
https://www.cnblogs.com/xjl456852/p/18865586
扣子(Coze):字节生态智能体平台
扣子是字节跳动推出的商业化AI Bot构建平台,主要特点:
- 完整的UI组件 + 低代码工作流 + AI大模型
- 便于与飞书生态集成
- 主要支持豆包和DeepSeek模型
- 云服务为主,不支持私有化部署
技术限制:
- 代码节点仅支持有限的第三方依赖(JavaScript:dayjs、lodash;Python:requests_async、numpy)
- 无法导入其他第三方包,限制了功能扩展能力
适用场景:
- 快速上线,无需大量技术投入
- 主要构建对话类Bot应用
- 与字节生态有集成需求的场景
HiAgent:企业级私有化方案
HiAgent是字节旗下火山引擎推出的企业AI中台,专注于大型企业的私有化部署需求:
- 支持本地部署和定制化开发
- 提供完整的企业级解决方案
- 适合大型企业和高校等机构使用
选择建议:
- 数据安全优先:选择Dify或HiAgent的私有化部署
- 快速验证:使用扣子进行原型开发和功能验证
- 企业级应用:考虑HiAgent的商业化解决方案
大语言模型与本地部署
DeepSeek系列模型
DeepSeek V3作为当前领先的开源大模型,具有以下特点:
- 参数规模:671B总参数,37B激活参数
- 上下文长度:128K token
- 模型能力:支持推理、代码生成、多语言处理
DeepSeek R1专注于推理能力优化,特别适合需要逻辑推理的智能体任务。
本地模型部署方案
Ollama详细部署指南
1. Ollama安装
1 | # Linux/macOS 一键安装 |
2. 镜像源配置(重要)
国内用户建议配置镜像源以提高下载速度:
1 | # 创建配置目录 |
可用镜像源列表:
1 | # 魔搭社区(推荐) |
方法2:环境变量配置
1 | # 临时设置 |
3. 模型管理命令详解
1 | # 查看可用模型 |
4. 高级配置选项
1 | # 设置并发加载模型数量 |
5. 推荐轻量级模型
模型名称 | 大小 | 参数量 | 运行命令 | 适用场景 |
---|---|---|---|---|
DeepSeek-R1 | 4.7GB | 7B | ollama run deepseek-r1:7b |
推理、代码生成 |
Llama 3.2 | 1.3GB | 1B | ollama run llama3.2:1b |
轻量级对话 |
Llama 3.2 | 2.0GB | 3B | ollama run llama3.2:3b |
平衡性能 |
Qwen2.5 | 1.5GB | 1.5B | ollama run qwen2.5:1.5b |
中文优化 |
Gemma 2 | 1.6GB | 2B | ollama run gemma2:2b |
Google模型 |
Open WebUI前端部署
1. Docker部署(推荐)
1 | # 基础部署 |
2. 功能配置
首次访问需要创建管理员账户,然后可以配置:
- 模型管理:添加/删除可用模型
- 用户权限:设置用户访问级别
- 插件扩展:安装各种功能插件
- Arena模式:随机选择模型进行对比测试
Arena Model 1.竞技场模型
The Arena Model randomly selects from a pool of available models, making sure the evaluation is fair and unbiased. This helps in removing a potential flaw in manual comparison: ecological validity – ensuring you don’t knowingly or unknowingly favor one model.
Arena 模型会从众多可用模型中随机选择,确保评估公平公正。这有助于消除人工比较中的潜在缺陷: 生态效度 ——确保您不会有意或无意地偏向某个模型。
Dify集成Ollama配置
1. 在Dify中添加Ollama模型
进入Dify管理后台 → 模型供应商 → 添加模型:
1 | # 模型供应商:Ollama |
2. Docker网络配置注意事项
如果Dify和Ollama都运行在Docker中,需要确保网络连通:
1 | # 检查Docker网络 |
3. 性能优化配置
1 | # GPU支持(NVIDIA) |
参考链接:
RAG与知识库构建
RAG技术原理
- 检索(Retrieval):从外部知识库中查找相关信息
- 增强(Augmented):用检索到的信息增强AI模型的知识
- 生成(Generation):基于增强后的信息生成回答
RAG(Retrieval-Augmented Generation)结合了信息检索和文本生成技术,解决了以下核心问题:
- AI模型知识截止时间限制
- 专业领域知识缺乏
- 避免模型”幻觉”现象
- 提供可追溯的信息来源
基本工作流程:
1 | 用户问题 → 向量化 → 相似性搜索 → 检索相关文档 → 组合提示词 → LLM生成答案 |
知识库构建实践
文档处理流程:
1 | # 文本分块 |
MaxKB知识库系统
MaxKB是企业级AI助手,支持RAG检索增强生成:
- 支持多种文档格式:TXT、Markdown、PDF、HTML、DOC、CSV
- 支持同步Notion文档和网页内容
- 提供工作流编排和MCP工具调用能力
- 广泛应用于智能客服、企业知识库问答等场景
部署配置:
1 | docker run -d --name=maxkb --restart=always -p 8080:8080 \ |
向量数据库技术
Milvus向量数据库为AI应用提供高性能向量检索能力:
- 专门为GenAI应用设计的开源向量数据库
- 支持高速搜索和扩展到数十亿个向量
- 基于Approximate Nearest Neighbor(ANN)算法进行语义相似性搜索
向量嵌入技术将非结构化数据转换为数值表示,在多维空间中相似的概念会被放置得更近,从而实现语义搜索而非仅仅是关键词匹配。
智能体应用架构设计
应用类型与选择
Dify支持多种应用类型,各有不同的适用场景:
应用类型 | 特点 | 适用场景 |
---|---|---|
聊天助手 | 基于LLM的对话式交互 | 客服机器人、咨询问答 |
文本生成 | 单次生成类任务 | 内容创作、文本分类、翻译 |
Agent | 任务分解、推理思考、工具调用 | 复杂业务流程自动化 |
对话流 | 多轮对话,具有记忆功能 | 智能助手、个人顾问 |
工作流 | 自动化批处理 | 文档处理、数据分析 |
Agent执行模式
Function Calling模式
- 基于OpenAI的Function Calling规范
- AI模型直接识别需要调用的工具
- 一次性决定工具调用参数
- 适合确定性任务执行
ReAct模式(Reasoning + Acting)
- 推理与行动的循环模式
- 模型逐步思考,逐步行动
- 支持多轮工具调用和中间推理
- 适合复杂的多步骤任务
文件处理架构
在智能体应用中,文件处理是一个重要环节。需要注意的是:
- LLM无法直接读取文件,需要通过文档提取器转换为文本
- 支持多种文件格式:Word、Excel、PDF、Markdown等
- 可以通过开始节点添加文件变量,或者在附加功能中开启文件上传
文档提取流程:
1 | 文件上传 → 文档提取器 → 文本变量 → LLM处理 → 结果输出 |
MCP协议与工具集成
MCP协议概述
Model Context Protocol(模型上下文协议)是由Anthropic开发的开源协议,为AI模型提供安全、标准化的外部资源访问方式。
核心特点:
- 让AI模型安全地访问外部数据和工具
- 提供统一的接口标准
- 支持动态上下文扩展
- 保障数据安全和隐私
传输方式:
- HTTP with SSE(Server-Sent Events)
- Streamable HTTP:支持流式数据传输
MCP协议:
https://modelcontextprotocol.io/introduction
https://www.runoob.com/np/mcp-protocol.html
https://github.com/yzfly/Awesome-MCP-ZH
常用的MCP client: Claude Desktop, AI 应用,Dify, Vscode , Cursor等。
MCP服务器部署
Chrome MCP Server
Chrome MCP Server将浏览器功能暴露给AI助手,实现浏览器自动化:
环境要求:
- Node.js >= 18.19.0
- Chrome/Chromium浏览器
安装步骤:
- 下载Chrome扩展并安装到浏览器
- 全局安装bridge:
npm install -g mcp-chrome-bridge
- 配置Claude Desktop连接
配置示例:
连接方式1:
使用streamable http的方式连接
1 | { |
连接方式2:
使用stdio的方式连接
比如客户端Claude Desktop暂时仅支持stdio连接方式。
找到插件的文件。
1 | ~/Library/Application Support/Claude/ npm list -g mcp-chrome-bridge |
1 | /opt/homebrew/lib/node_modules/mcp-chrome-bridge/dist/mcp/mcp-server-stdio.js |
在Claude Desktop中配置MCP Server
点击settings, Developer, 点击配置,会自动创建配置文件。
配置文件位置:~/Library/Application Support/Claude/claude_desktop_config.json
1 | { |
重启Claude Desktop,现在就可以在Claude Desktop中直接调用浏览器进行操作了!
Playwright MCP
Playwright MCP提供了更强大的浏览器自动化能力:
1 | npm install @playwright/mcp@latest |
在Dify中集成MCP:
启动服务:
1 | npx @playwright/mcp@latest --port 8931 |
注意,需要配置IP地址为电脑本地IP,而不是127.0.0.1
1 | { "server_name": { "url": "http://192.168.64.1:8931/sse", "headers": {}, "timeout": 50, "sse_read_timeout": 50 }} |
在Claude Desktop中配置:
1 | { |
可以和之前的配置文件合并:
1 | { |
Dify集成MCP
注意,可以在Dify中使用MCP插件,或者先配置MCP服务器(1.6.0以上)。
如果报错,可以选择其他Agent策略。有些可能有问题,不能正常使用。建议选择官方的Dify Agent 策略。
然后可以直接调用工具,或者在Agent中添加工具。
其他MCP工具
https://modelcontextprotocol.io/examples
- filesystem-MCP:本地文件系统访问
- MarkItDown-MCP:文档格式转换
- firecrawl-mcp-server:网页爬取
实践案例:测试助手智能体
项目背景
针对测试管理、执行工作中重复度高、机械化程度高的工作开发智能体,主要包括:
- 文档检核智能体
- 批量任务处理智能体
- 自动化测试任务执行智能体
架构设计
智能体架构层次:
graph LR
subgraph "用户交互层"
U1[测试经理用户]
U2[文件上传界面]
U3[参数输入表单]
end
subgraph "智能体层"
S1[测试报告核验助手]
S2[对话管理]
S3[文件处理]
end
subgraph "工作流层"
W1[测试报告核验工作流]
end
subgraph "节点执行层"
N1[文档提取器节点]
N2[代码执行节点]
N3[HTTP请求节点]
N4[LLM验证节点]
end
subgraph "外部系统层"
E1[测试管理平台API]
E2[VP系统API]
E3[DeepSeek大模型]
end
工作流设计
数据流处理:
输入层:
- 业务需求编号和名称
- 测试报告文件
- 测试案例文件
- 背景内容
数据提取层:
- 文档提取器:处理Word/Excel文档
- 代码执行:提取文件元信息
- HTTP请求:查询外部系统数据
验证层:
- LLM验证文件名规范
- LLM验证报告内容完整性
- LLM验证案例数据一致性
分析层:
- 交叉验证分析
- 数据一致性检查
输出层:
- 生成结构化验证报告
- 提供问题清单和改进建议
数据库集成实践
在工作流中,可能需要查询外部数据库。
MySQL连接配置:
由于Dify运行在Docker环境中,需要特殊的网络配置:
1 | 主机地址: host.docker.internal |
连接字符串格式:
1 | mysql+pymysql://dify:dify123@host.docker.internal:3306/dify_test |
这种架构设计确保了智能体能够:
- 自动处理多种格式的测试文档
- 与外部测试管理系统无缝集成
- 提供准确的验证结果和改进建议
- 支持批量处理和规模化应用
AI编程助手与开发工具
主流编程助手工具
在智能体开发过程中,AI编程助手能够显著提高开发效率:
Claude Code详细配置
1. 安装配置
Claude Code是Anthropic推出的官方CLI工具,需要API Key支持:
1 | # 安装Claude Code |
2. 网络代理配置(国内必需)
国内用户需要配置代理才能正常使用:
1 | # 方法1:环境变量配置 |
3. 主要功能特点
- 大型代码库分析:支持超过100万token上下文长度
- 多模态应用生成:通过PDF或草图快速生成应用程序原型
- 自动化运维任务:Git操作、PR查询、代码迁移计划制定
- 集成外部工具:通过MCP服务器连接各种工具
- 联网搜索支持:获取最新信息
Gemini CLI部署配置
1. 安装与配置
1 | # 安装Gemini CLI |
2. 代理配置(国内必需)
1 | # 设置代理环境变量 |
3. 功能亮点
- 处理大型代码库:超过100万token上下文长度
- 多模态应用生成:PDF/草图快速原型
- 自动化运维:Git操作、PR查询等
- 媒体生成集成:Imagen、Veo、Lyria等
- 实时信息搜索:内置Google Search
其他优秀开发工具
1. Cursor
1 | # 下载安装 |
2. Windsurf
1 | # 新兴的AI编程环境 |
3. GitHub Copilot
1 | # VSCode扩展安装 |
4. TabbyML - 开源替代方案
自建AI编程助手:
1 | # Docker部署 |
配置要点:
1 | # 环境变量配置 |
开发环境最佳实践
1. 代理配置统一管理
创建代理配置脚本:
1 | # ~/.proxy_config.sh |
使用方法:
1 | # 启用代理 |
2. API Key管理
1 | # 创建API Key配置文件 |
3. Docker开发环境
创建统一的AI开发环境:
1 | # Dockerfile |
参考链接:
技术生态与未来展望
AI技术栈整体架构
1 | Ollama: 本地AI模型服务 |
学习建议
对于不同规模的应用场景:
- 新手学习:建议使用Ollama+AnythingLLM/MaxKB架构,逐步摸索实践
- 小型单位:可选择Ollama+MaxKB/Dify架构进行私有化部署
- 企业级应用:建议选择HiAgent等大型智能体平台,提供定制化解决方案
技术发展趋势
- 模型能力持续提升:从GPT到Claude到DeepSeek,推理能力不断增强
- 部署成本持续降低:本地化部署方案日趋成熟
- 工具集成日益丰富:MCP协议推动了工具生态的标准化
- 应用场景不断扩展:从聊天机器人到复杂业务流程自动化
其他技术领域探索
工作流自动化:n8n
n8n是一个开源的工作流自动化工具,可以与AI平台无缝集成,实现复杂的业务流程自动化。
n8n部署与配置
1. Docker快速部署
1 | # 创建数据卷 |
2. 环境变量配置
1 | # 创建.env文件 |
3. 与AI平台集成
n8n可以通过HTTP请求节点与Dify、Ollama等AI平台集成:
1 | { |
访问地址: http://localhost:5678
参考链接:
大数据技术栈
虽然不是AI智能体的核心内容,但在数据处理和分析方面,大数据技术仍有重要价值:
Hadoop生态系统
核心组件:
- HDFS:分布式文件系统,负责存储
- YARN:资源管理器,负责资源调度
- MapReduce:计算引擎,负责数据处理
快速体验部署:
1 | # 使用Docker快速搭建Hadoop环境 |
Spark计算引擎
1 | # Docker部署Spark |
特点:
- 替代MapReduce,基于内存计算,处理速度更快
- 支持多种工作负载:批处理、流处理、机器学习
- 包含Spark Core、Spark SQL、Spark Streaming、Spark MLlib等组件
Apache Flink流处理
1 | # Docker部署Flink |
- 专门为实时数据处理设计的流处理计算引擎
- 通常与Kafka配合使用进行实时数据处理
学习路径建议:
- 本地环境:使用Docker简化搭建过程
- 云平台体验:使用阿里云、腾讯云、AWS免费试用
- 在线平台:Databricks Community Edition
- 实践项目:从词频统计开始,逐步进阶
- 学习顺序:建议从Spark开始,相对简单且应用广泛
参考链接:
内网开发环境配置
在纯内网环境下开发智能体应用时,需要特殊的配置方法:
Node.js离线环境配置
1. 手动路径配置
1 | # Windows环境 |
假设你下载了一个名为my-package.zip
的zip包,解压后目录结构如下:
1 | my-package/ |
在my-package
目录下,运行npm install
,npm会读取package.json
文件,安装其中的依赖项。如果package.json
中定义了依赖lodash
,那么npm会安装lodash
到my-package/node_modules
目录。
查看 node_modules/@playwright/mcp/package.json
文件,找到 "bin"
部分,看看实际的可执行文件路径是什么,然后直接运行那个文件。
1 | node node_modules/@playwright/mcp/cli.js --port 8931 |
总结
AI智能体技术正在快速发展,从底层的大语言模型到上层的应用平台,整个技术栈日趋完善。在选择技术方案时,需要根据具体的业务需求、技术能力和安全要求进行综合考虑:很多公司因为数据安全的考虑会选择私有化部署方案。但在部署落地过程中可能遇到很多网络相关的报错问题。
未来,随着MCP协议等标准的推广,AI智能体将能够更好地集成各种外部工具和系统,真正成为企业数字化转型的重要助力。