基于AI Agent与MCP协议构建自动化文档处理工作流实战

发布时间:2026/8/8 10:34:55
基于AI Agent与MCP协议构建自动化文档处理工作流实战 在实际项目中文档处理流程往往是效率的瓶颈。无论是从邮件附件中提取数据、批量重命名和分类PDF报告、解析合同中的关键条款还是将一份产品需求文档自动拆解为开发任务这些重复性高、规则复杂的任务消耗了大量开发者和业务人员的时间。传统脚本虽然能解决部分问题但面对格式多变、语义理解要求高的场景往往力不从心维护成本也极高。近年来以 Claude、ChatGPT 为代表的 AI 大模型在理解和生成文本方面展现出强大能力但如何让它们稳定、可靠地融入我们具体的文档处理流水线而不仅仅是进行单次对话成为了新的挑战。这正是 AI Agent智能体和 MCPModel Context Protocol等技术要解决的核心问题。一个 AI Agent 可以理解为具备自主规划、使用工具和执行任务能力的智能程序而 MCP 则是一种让 AI 模型安全、标准化地调用外部工具和数据的协议。本文将带你深入如何利用 AI Agent 构建自动化文档工作流。我们将从核心概念入手解释 AI Agent 与简单 API 调用的本质区别并详细介绍 MCP 协议如何成为连接 AI 与外部工具的桥梁。然后我们将通过一个从零开始的实战案例使用 Claude Desktop 和 MCP 服务器构建一个能够自动读取文件夹内文档、分析内容并生成摘要报告的智能体。你会了解到环境如何搭建、MCP 服务器如何配置、Claude 如何与工具交互以及最终如何验证整个工作流的有效性。最后我们会探讨在生产环境中部署此类方案时必须考虑的稳定性、安全性、错误处理及扩展性等关键问题。1. 理解 AI Agent 与 MCP超越简单对话的自动化核心在深入配置和代码之前必须厘清几个核心概念。很多人误以为调用一次大模型 API 生成文本就是 AI 应用的全部这距离真正的自动化工作流还很远。1.1 AI Agent具备“思考”和“执行”能力的智能体一个简单的 AI 对话模型是你问它答它无法自主操作你的电脑、访问你的数据库或修改你的文件。AI Agent 则更进一步它被设计成可以自主理解目标、制定计划、调用工具执行步骤、并根据结果调整策略的智能程序。以一个文档处理工作流为例简单对话模型你上传一份 PDF然后手动输入提示词“请总结这份 PDF”模型返回总结。AI Agent你只需要告诉它“监控/data/inbox文件夹任何新的 PDF 合同文件都提取出甲方、乙方、金额和签署日期并填入数据库的contracts表”。Agent 会自行监听文件夹、调用 PDF 解析工具、理解合同内容、结构化数据并调用数据库写入工具完成任务。两者的关键区别在于自主性和工具使用能力。Agent 的核心组件通常包括规划模块将复杂目标拆解为可执行的子任务序列。记忆模块保存对话历史、工具调用结果和任务上下文。工具使用模块能够调用外部函数或 API如读取文件、搜索网页、执行计算。执行与反思模块执行动作并根据结果判断是否成功是否需要调整计划。1.2 MCP为 AI 模型安全“赋能”的标准协议Model Context Protocol (MCP) 是一个开放协议它定义了大语言模型如 Claude、ChatGPT与外部工具、数据源之间如何进行安全、标准化的通信。你可以把它想象成 AI 模型的“USB 接口”标准。在没有 MCP 之前为每个 AI 应用单独开发工具集成是重复且不安全的。MCP 解决了以下问题标准化工具提供者按照 MCP 协议实现一个“MCP 服务器”任何兼容 MCP 的 AI 客户端如 Claude Desktop都能立即发现并使用这些工具无需额外适配。安全性MCP 服务器运行在独立的进程或环境中定义了清晰的资源边界。AI 模型只能通过协议定义的、经过审核的“工具”来访问特定资源而不能随意操作系统。可组合性你可以同时运行多个 MCP 服务器一个提供文件系统访问一个提供数据库连接一个提供网络搜索。AI 模型可以根据需要灵活组合使用这些工具。例如一个filesystem-mcp服务器可以向 AI 模型暴露read_file、list_directory等工具。当 AI 模型需要读取文件时它通过 MCP 协议向该服务器发送一个结构化的请求服务器执行操作并返回结果。AI 模型本身永远无法直接执行fs.readFile这样的 Node.js 代码。1.3 Claude Desktop 与 Claude Code承载 Agent 的客户端Claude Desktop 是 Anthropic 推出的官方桌面应用程序它原生支持 MCP 协议。这意味着你只需配置好 MCP 服务器Claude Desktop 中的模型就能直接使用这些工具无需编写复杂的中间层代码。它是我们实现文档工作流自动化的理想“操作台”。Claude Code或 Claude for VS Code是集成在 VS Code 编辑器中的版本同样支持 MCP更适合开发者在编码环境中使用 AI 辅助。注意由于网络和服务可用性部分用户可能遇到 Claude 注册或可用性问题。本文的重点是阐述基于 MCP 和 Agent 的工作流构建方法论该方法论同样适用于其他支持类似协议或具备强大函数调用能力的 AI 平台。核心在于理解“模型-协议-工具”的协作模式。2. 环境准备与核心工具配置我们的目标是构建一个本地运行的、能自动处理文档的 AI Agent。以下是所需的软件环境及配置步骤。2.1 基础环境清单组件推荐版本/选择作用说明备注操作系统Windows 10/11, macOS 10.15, Linux (主流发行版)运行所有软件的基础需要具备安装软件的权限Node.jsLTS 版本 (如 v18.x, v20.x)运行 JavaScript/TypeScript 编写的 MCP 服务器可通过node -v检查包管理器npm (随 Node.js 安装) 或 yarn, pnpm安装 MCP 服务器依赖Python3.8部分 MCP 服务器或工具链可能依赖 Python非必需但建议安装Claude Desktop最新稳定版作为 AI 模型客户端和用户交互界面从 Anthropic 官网下载代码编辑器VS Code查看和编辑配置文件、脚本可选但强烈推荐首先确保 Node.js 已正确安装。打开终端Windows 为 PowerShell 或 CMDmacOS/Linux 为 Terminal执行以下命令验证node -v npm -v如果显示版本号则说明安装成功。如果未安装请前往 Node.js 官网下载并安装 LTS 版本。2.2 安装与配置 Claude Desktop下载访问 Anthropic 官网根据你的操作系统下载 Claude Desktop 安装包。安装按照安装向导完成安装。登录/配置首次启动需要登录你的 Claude 账户。完成登录后进入设置界面。关键配置 - MCP 服务器Claude Desktop 的核心功能之一就是集成 MCP。配置通常通过一个本地的 JSON 配置文件完成。该文件的位置因系统而异macOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.jsonLinux:~/.config/Claude/claude_desktop_config.json如果该文件或目录不存在可以手动创建。我们需要在此文件中声明要使用的 MCP 服务器。2.3 创建并配置 MCP 服务器我们将创建一个最简单的 MCP 服务器来演示如何让 Claude 访问本地文件系统。这里以官方提供的modelcontextprotocol/server-filesystem为例。创建项目目录在合适位置创建一个新目录例如my-document-agent。mkdir my-document-agent cd my-document-agent初始化项目并安装 MCP 服务器npm init -y npm install modelcontextprotocol/server-filesystem这会在当前目录安装一个文件系统 MCP 服务器。但通常我们更倾向于全局安装或直接使用可执行文件。许多 MCP 服务器也提供了独立的可执行包。为了简化我们可以创建一个启动脚本。创建服务器启动脚本在项目根目录创建文件start-filesystem-server.js#!/usr/bin/env node const { serve } require(modelcontextprotocol/sdk); const { FileSystemServer } require(modelcontextprotocol/server-filesystem); const server new FileSystemServer({ // 配置允许访问的根目录这里设置为当前用户的家目录生产环境应更严格 rootDir: process.env.HOME || process.env.USERPROFILE, }); serve(server);这个脚本创建了一个文件系统服务器并将其根目录限制在用户家目录。配置 Claude Desktop 连接此服务器编辑之前提到的claude_desktop_config.json文件添加以下内容{ mcpServers: { my-local-files: { command: node, args: [ /ABSOLUTE/PATH/TO/your/my-document-agent/start-filesystem-server.js ], env: { // 可在此传递环境变量 } } } }关键点my-local-files是你给这个服务器起的任意名字。command必须是node。args中的路径必须替换为你电脑上start-filesystem-server.js的绝对路径例如C:\Users\YourName\projects\my-document-agent\start-filesystem-server.js或/home/yourname/projects/my-document-agent/start-filesystem-server.js。保存配置文件后必须完全重启 Claude Desktop 应用配置才会生效。验证连接重启 Claude Desktop 后新建一个对话。如果你在输入框下方或侧边栏看到新增的工具图标可能是一个文件夹或工具标志或者你直接输入“你能用什么工具”Claude 回复中列出了文件操作相关的工具如read_file,list_directory则说明 MCP 服务器连接成功。注意这是最基本的文件访问服务器。对于生产环境你需要更精细的权限控制例如只允许访问特定工作目录并且可能需要实现更复杂的 MCP 服务器来处理特定文档格式如 PDF、DOCX或连接数据库。3. 构建自动化文档处理工作流实战现在我们有了一个能访问文件系统的 AI。让我们设计一个具体的文档处理工作流自动监控指定文件夹对新放入的 PDF 文档进行内容摘要并将摘要保存为 Markdown 文件。3.1 工作流设计与技术选型我们的 Agent 需要完成以下任务感知发现目标文件夹 (./docs_to_process) 中的新 PDF 文件。理解读取 PDF 内容并理解其核心内容。执行生成一份结构化的摘要。输出将摘要保存到另一个文件夹 (./summaries) 中并以原文件名加上_summary.md后缀命名。为了实现这个工作流我们需要增强工具能力。仅靠基础的文件系统读写不足以高效解析 PDF。我们需要一个能解析 PDF 文本的 MCP 服务器。方案选择方案A寻找现成的 PDF 处理 MCP 服务器。社区可能有mcp-server-pdf之类的项目。方案B自己实现一个简单的 MCP 服务器集成一个 PDF 解析库如 Node.js 的pdf-parse。为了演示从零构建的完整性我们选择方案B。这将让你彻底理解 MCP 服务器的工作原理。3.2 实现自定义 PDF 处理 MCP 服务器创建新服务器项目在my-document-agent目录下新建一个子目录pdf-server。mkdir pdf-server cd pdf-server npm init -y安装依赖我们需要modelcontextprotocol/sdk来构建 MCP 服务器以及pdf-parse来解析 PDF。npm install modelcontextprotocol/sdk pdf-parse编写服务器代码创建index.js文件。#!/usr/bin/env node const { Server } require(modelcontextprotocol/sdk/server/index.js); const { StdioServerTransport } require(modelcontextprotocol/sdk/server/stdio.js); const fs require(fs).promises; const pdfParse require(pdf-parse); // 创建 MCP 服务器实例 const server new Server( { name: pdf-parser-server, version: 0.1.0, }, { capabilities: { tools: {}, // 声明本服务器提供工具 }, } ); // 定义工具extract_text_from_pdf server.setRequestHandler(tools/call, async (request) { const { name, arguments: args } request.params; if (name extract_text_from_pdf) { const filePath args?.filePath; if (!filePath) { throw new Error(filePath argument is required); } try { // 1. 读取PDF文件Buffer const dataBuffer await fs.readFile(filePath); // 2. 使用pdf-parse提取文本 const pdfData await pdfParse(dataBuffer); const extractedText pdfData.text; // 3. 返回结果 return { content: [ { type: text, text: Successfully extracted text from PDF. Length: ${extractedText.length} characters.\n\nFirst 500 characters preview:\n${extractedText.substring(0, 500)}..., }, ], isError: false, }; } catch (error) { return { content: [ { type: text, text: Failed to parse PDF: ${error.message}, }, ], isError: true, }; } } // 如果收到未知工具请求抛出错误 throw new Error(Unknown tool: ${name}); }); // 启动服务器使用标准输入输出进行通信 const transport new StdioServerTransport(); server.connect(transport).catch((err) { console.error(Server connection error:, err); process.exit(1); });这个服务器暴露了一个名为extract_text_from_pdf的工具它接收一个filePath参数返回解析出的文本。配置 Claude Desktop 使用新服务器我们需要修改claude_desktop_config.json添加这个新的服务器配置。{ mcpServers: { my-local-files: { command: node, args: [ /ABSOLUTE/PATH/TO/my-document-agent/start-filesystem-server.js ] }, my-pdf-parser: { command: node, args: [ /ABSOLUTE/PATH/TO/my-document-agent/pdf-server/index.js ] } } }同样路径要替换为绝对路径并重启 Claude Desktop。3.3 设计并执行 Agent 工作流现在Claude 同时拥有了浏览文件和解析 PDF的能力。我们可以通过自然语言指令来“编排”这个工作流。创建文件夹结构在你的项目目录或家目录下手动创建两个文件夹docs_to_process: 用于存放待处理的 PDF。summaries: 用于存放生成的摘要。放置测试 PDF找一个简单的 PDF 文件比如一篇论文、一份报告放入docs_to_process文件夹。在 Claude Desktop 中启动工作流新建一个对话输入详细的指令。例如“请扮演一个文档处理助手。你的目标是自动化处理~/docs_to_process文件夹中的 PDF 文档。请执行以下步骤使用文件系统工具列出~/docs_to_process目录下的所有.pdf文件。对于找到的每一个 PDF 文件使用 PDF 解析工具提取其全部文本内容。基于提取的文本为我生成一份简洁的摘要摘要需包含文档的核心主题、关键论点或数据、以及结论。将摘要以 Markdown 格式保存到~/summaries文件夹文件名使用原文件名并加上_summary.md后缀。在处理完所有文件后给我一个完成报告列出已处理的文件及其摘要保存路径。 现在请开始执行这个工作流。”观察 Agent 执行发送指令后Claude 会开始“思考”。你会看到它自动调用你配置的工具首先调用list_directory查看文件夹。然后对每个 PDF 文件调用extract_text_from_pdf。接着它会基于返回的文本利用其自身的语言能力生成摘要。最后调用write_file工具将摘要写入目标文件夹。 整个过程无需你手动干预每一步。Claude 会在对话中展示它的“思考过程”和每个工具调用的请求与结果。3.4 工作流验证与结果检查执行完毕后你需要进行验证检查 Claude 的回复它应该提供一个完成报告类似于“已完成处理。共发现 1 个 PDF 文件example_report.pdf。 已生成摘要并保存至~/summaries/example_report_summary.md。”检查输出文件前往~/summaries目录打开生成的.md文件。检查内容是否是对原 PDF 的合理摘要格式是否为 Markdown。测试边界情况在docs_to_process中放入一个非 PDF 文件如.txt看 Agent 是否会跳过或报错。放入一个损坏的 PDF 文件观察错误处理情况取决于你的 PDF 服务器实现。清空文件夹看 Agent 是否会报告“未发现文件”。通过以上步骤你已经成功构建并运行了一个由 AI Agent 驱动的、端到端的文档处理工作流。这个 Agent 能够自主使用工具完成从感知到执行的全过程。4. 关键配置、参数详解与高级工具集成基础的 PDF 摘要工作流已经跑通但要投入实际使用必须理解其中的关键配置点并考虑集成更强大的工具。4.1 MCP 服务器配置深度解析claude_desktop_config.json中的mcpServers配置是核心。{ mcpServers: { server-identifier: { command: node, args: [/path/to/server.js], env: { ALLOWED_PATHS: /path/to/allowed/dir, LOG_LEVEL: debug }, timeout: 30000, cwd: /path/to/working/dir } } }server-identifier自定义的唯一标识符会在 Claude 的工具列表中显示。command启动服务器的命令。可以是node、python、bash或任何可执行文件的路径。args传递给命令的参数数组。第一个参数通常是脚本路径。env传递给服务器进程的环境变量。这是向服务器传递配置如 API 密钥、权限路径的安全方式。切勿在代码中硬编码敏感信息。timeout(可选)工具调用的超时时间毫秒。对于处理大文件或慢速网络请求的工具需要调大。cwd(可选)服务器进程的工作目录。影响服务器内相对路径的解析。4.2 集成更强大的工具搜索、数据库与网络文件操作只是冰山一角。一个强大的文档工作流 Agent 可能需要连接多种数据源。社区已经有很多优秀的 MCP 服务器工具类别示例 MCP 服务器 (需自行搜索)为 Agent 赋能的能力网络搜索brave-search-mcp,tavily-mcp让 Agent 能获取最新信息用于文档内容验证、补充背景。数据库sqlite-mcp,postgres-mcp让 Agent 能查询业务数据或将处理结果如提取的合同条款结构化存储。代码仓库github-mcp,git-mcp让 Agent 能读取项目文档、提交记录甚至生成代码变更。项目管理jira-mcp,linear-mcp让 Agent 能根据文档内容自动创建或更新任务。浏览器自动化playwright-mcp让 Agent 能操作网页用于抓取无法直接下载的文档或填报系统。集成示例添加 SQLite 数据库服务器假设我们想把提取的摘要信息存入数据库。安装一个社区提供的 SQLite MCP 服务器例如通过 npm:npm install -g your-namespace/sqlite-mcp-server(请替换为实际包名)。在claude_desktop_config.json中新增配置my-database: { command: sqlite-mcp-server, args: [--db, /path/to/your/document_metadata.db] }重启 Claude Desktop 后你就可以指示 Agent“将刚才生成的摘要信息包括文件名、摘要内容、处理时间插入到数据库的document_summaries表中。” Agent 会调用相应的数据库工具来执行 SQL 操作。4.3 优化 Agent 提示词Prompt设计给 Agent 的指令质量直接决定工作流的可靠性。糟糕的指令会导致 Agent 困惑、执行错误步骤或陷入循环。新手常见错误指令“处理一下那个文件夹里的 PDF。”优化后的指令应包含明确身份与目标“你是一个文档处理自动化助手。”清晰的范围与输入“监控~/incoming_docs目录下所有.pdf和.docx文件。”具体的处理步骤“对于每个文件1. 提取全文。2. 识别文档类型合同/报告/简历。3. 根据类型提取关键字段如合同各方、金额、日期报告标题、作者、结论。4. 将结构化数据保存为 JSON 文件到~/processed。”输出格式要求“JSON 格式需包含filename,type,extracted_fields,process_timestamp。”错误处理与确认“如果文件无法解析将其移动到~/failed文件夹并记录日志。处理完每个文件后在对话中简要确认。”结束条件“持续运行每5分钟检查一次新文件。当我让你停止时请结束任务。”设计提示词时要像给一个细心但刻板的实习生写操作手册一样力求无歧义。5. 生产环境部署考量与常见问题排查将实验性的 AI Agent 工作流转化为稳定的生产服务需要解决一系列工程化问题。5.1 从桌面端到服务端架构演进Claude Desktop 适合个人或小团队快速原型验证。生产环境则需要更稳定、可扩展的架构。推荐的生产架构[文档来源] - (文件系统/消息队列) - [工作流调度器] - [AI Agent 服务] - [结果存储/下游系统] | | [工具池(MCP服务器)] [大模型API]AI Agent 服务一个常驻的后台服务可用 Python、Node.js、Java 等编写负责接收任务、管理与大模型通过 API的对话、调用 MCP 工具、维护任务状态和记忆。工作流调度器负责触发 Agent 执行。可以是基于文件系统事件的监听器如inotify、定时任务Cron或从消息队列如 RabbitMQ, Kafka消费任务。工具池将各个 MCP 服务器作为微服务部署并通过网络如 SSE 或 WebSocket与 Agent 服务通信而非标准输入输出。MCP 协议也支持这些传输方式。大模型 API使用 Claude、GPT 或开源模型的 API 端点而不是桌面客户端。5.2 稳定性与错误处理AI 模型和复杂工作流必然会出现错误。必须设计健壮的错误处理机制。常见错误场景及处理策略错误类型可能原因处理策略模型调用失败API 超时、配额不足、网络中断。实现重试机制带退避策略设置最大重试次数。失败后记录日志并通知人工。工具调用失败MCP 服务器崩溃、资源不足、输入无效。Agent 服务应捕获工具调用异常根据错误类型决定重试、跳过或升级告警。为每个工具设置独立超时。模型输出不符合预期提示词不精确、模型“幻觉”。在关键步骤如数据提取后加入验证步骤。例如用另一个模型或规则校验提取出的日期格式是否有效。对于重要操作可设计“人工审核”环节。工作流状态丢失Agent 服务重启、进程崩溃。将工作流状态当前步骤、已处理数据持久化到数据库。实现检查点Checkpoint机制支持从断点恢复。在 Agent 提示词中嵌入错误处理指令“如果在执行extract_text_from_pdf工具时收到错误请重试一次。如果再次失败则记录错误信息‘PDF解析失败: [文件名]’到一个名为errors.log的文件中然后继续处理下一个文件。”5.3 安全与权限控制让 AI 拥有工具调用能力意味着巨大的责任。必须实施最小权限原则。MCP 服务器权限最小化文件系统服务器只暴露必要的、特定的目录如--rootDir /var/data/input。数据库服务器使用只读或特定权限的用户连接。网络请求服务器限制可访问的域名或 IP 范围。输入验证与清理在 MCP 服务器内部对所有来自 AI 的输入参数进行严格验证。防止路径遍历../../../etc/passwd、SQL 注入等攻击。敏感信息隔离API 密钥、数据库密码等绝不能通过提示词或普通对话传递。必须通过 MCP 服务器的环境变量 (env) 或安全的配置管理系统注入。审计日志记录所有工具调用的详细信息时间、调用者会话ID、工具名、参数可脱敏、结果状态。便于事后审查和问题追踪。5.4 性能优化与成本控制大模型 API 调用通常是成本的主要部分也可能成为性能瓶颈。异步与批处理对于大量文档不要逐个同步处理。可以批量读取文件列表然后让模型一次性为多个文档生成摘要如果上下文窗口允许。或者使用异步队列并行处理多个独立任务。缓存对于相同或相似的文档如同一模板的周报可以缓存处理结果。在调用模型或复杂工具前先检查缓存。模型选型不是所有任务都需要最强大、最昂贵的模型。摘要生成可能用中等规模的模型就能很好完成而复杂的逻辑推理则需要更强大的模型。可以根据任务类型动态选择模型。上下文管理避免在长时间运行的 Agent 会话中积累无限长的对话历史这会导致令牌数激增、成本上升、速度变慢。定期总结状态并开启新会话。6. 典型问题排查清单在实际搭建和运行过程中你可能会遇到以下问题。请按此清单逐一排查。问题现象可能原因检查步骤与解决方案Claude 中看不到工具1. MCP 配置未生效。2. 服务器启动失败。3. 配置文件路径错误。1.重启 Claude Desktop。2. 检查claude_desktop_config.json语法是否正确可用 JSON 校验器。3. 手动在终端运行配置中的command和args看服务器是否能正常启动并打印日志如“Server started”。4. 查看 Claude Desktop 的应用日志位置因系统而异通常在用户目录的 Logs 文件夹中。工具调用失败提示“连接错误”或“超时”1. MCP 服务器进程崩溃。2. 工具执行时间过长。3. 权限不足。1. 检查服务器进程是否仍在运行。2. 在配置中增加timeout值。3. 检查 MCP 服务器代码是否有未捕获的异常导致进程退出。4. 确保 Claude Desktop 和服务器有权限访问相关资源文件、网络等。PDF 解析工具被调用但返回空文本或错误1. PDF 文件是扫描件图片。2. PDF 加密或有密码保护。3.pdf-parse库兼容性问题。1. 对于扫描件需要集成 OCR 功能如tesseract.js。2. 提示用户提供密码或跳过加密文件。3. 尝试使用其他 PDF 库如pdf2json或pdf.js并在服务器中做好错误处理返回明确信息。Agent 不按步骤执行或遗漏步骤提示词不够清晰、具体。模型上下文不足或混淆。1. 细化提示词将复杂任务拆解为编号的原子步骤。2. 在提示词中明确要求 Agent “逐步执行以下步骤”并“在完成每一步后确认”。3. 对于超长工作流考虑将其拆分为多个子任务分别发起对话执行。处理大量文件时对话中断或模型忘记上下文对话历史过长达到模型上下文窗口限制。1. 设计工作流时让 Agent 处理完一个文件就输出一次结果然后开启新对话处理下一个文件可通过外部脚本调度。2. 使用支持更长上下文的模型。3. 在 Agent 服务中实现上下文摘要功能将过长的历史压缩后再喂给模型。“Unexpected status 401” 或其他 API 错误在使用某些需要 API 密钥的 MCP 服务器如搜索服务器时密钥未正确配置或已失效。1. 确认在 MCP 服务器的env配置中正确设置了 API 密钥环境变量。2. 检查密钥是否有权限、是否过期、是否超出调用限额。3. 直接在终端用curl或相关 SDK 测试 API 是否可用。构建基于 AI Agent 的文档工作流是一个迭代过程。从最简单的文件摘要开始逐步增加工具、完善错误处理、优化提示词最终可以打造出能够处理复杂业务逻辑的智能自动化系统。关键在于理解 Agent 与工具MCP之间清晰的职责边界Agent 负责规划和决策工具负责安全可靠地执行具体操作。将这一模式应用于合同审核、报告生成、数据录入、知识库整理等场景能显著提升效率与一致性。下一步你可以探索如何将多个专用 Agent 组合成更复杂的工作流或者研究 LangChain、AutoGen 等框架它们提供了更高级的 Agent 编排与管理能力。