30款热门AI模型一站整合DeepSeek/GLM/Claude 随心用限时 5 折。 点击领海量免费额度这次我们来看一个能真正落地的企业级 AI Agent 自动化工作流方案。它不是那种停留在概念演示的玩具而是一个基于 AWS Fargate 无服务器容器、Claude Agent SDK 和 Model Context Protocol (MCP) 构建的可以直接处理你 Outlook 邮件的智能助手。核心思路是让 AI 自己“写代码”来构建更复杂的 AI 应用——通过 Skill 文件描述业务流程Agent 运行时自动执行而开发者只需专注于提供工具MCP Server和选择模型。这个方案最值得关注的点在于其清晰的四层解耦架构Agent 运行时、模型层、Skill 层和 MCP 工具层。这意味着你可以独立更换大模型供应商、调整业务流程Skill或者接入新的办公系统如 Jira、ServiceNow而无需重写核心代码。对于国内企业而言它直接解决了 AWS 中国区暂无 Bedrock 服务的痛点通过 AWS Marketplace 接入第三方模型 API如硅基流动的 DeepSeek-V3实现了合规且可落地的 AI 自动化。本文将带你完整走通从零搭建一个 Outlook 邮件助手的全流程。你会看到如何配置中国区 Microsoft 365 的 Graph API、如何用 MCP 封装工具、如何编写和生成 Skill、以及如何将所有组件部署到 AWS Fargate 上。无论你是想了解企业级 Agent 架构还是急需一个可扩展的办公自动化方案这篇文章都能提供一条清晰的实践路径。1. 核心能力速览在深入细节之前我们先通过下表快速了解这个 AI Agent 自动化工作流方案的核心特性和能力边界。能力项说明项目类型企业级 AI Agent 自动化平台核心架构四层解耦Agent 运行时、模型层、Skill 层、MCP 工具层主要功能邮件智能处理分类、起草回复、日历调度、文档归档、会议纪要提取、审批流转、IT 工单分诊等办公场景自动化部署方式基于 AWS Fargate 的无服务器容器部署支持 Docker 镜像模型接入支持通过 API 接入第三方大模型如 DeepSeek-V3, Qwen2.5-72B模型层可替换业务流程定义使用 Markdown 格式的 Skill 文件业务人员可维护无需修改代码外部系统集成通过 Model Context Protocol (MCP) 标准化接入已支持 Microsoft 365中国区可扩展至 Jira、ServiceNow 等安全与合规密钥统一由 AWS Secrets Manager 管理外发动作如发邮件默认设置为草稿状态需人工审批全链路日志审计适合场景拥有 Microsoft 365中国区等 SaaS 系统的中大型企业希望将判断密集型办公流程自动化不适合场景个人开发者的小型项目、对延迟要求极高的实时系统、完全离线的私有化部署环境2. 架构深度解析四层解耦的设计哲学这个方案之所以强大且易于扩展关键在于其四层解耦的架构设计。每一层都有明确的职责和替换边界让我们来逐一拆解。第一层Agent 运行时这是整个系统的“大脑”基于 Claude Agent SDK 构建并运行在 AWS Fargate 上。它的核心是一个内置了推理-规划-执行循环的 Agent 子进程。开发者无需手动编写复杂的 Agent 状态机和工具调用逻辑SDK 原生支持通过 stdio 与 MCP Server 通信自动发现工具、加载 Skill 并驱动任务执行。运行时本身不包含模型只负责调度和决策。第二层模型层模型层被彻底解耦出来成为可插拔的组件。由于 AWS 中国区暂未提供 Amazon Bedrock 服务方案选择通过 AWS Marketplace 订阅第三方模型 API如硅基流动 SiliconFlow。这带来了两个关键优势一是计费统一走 AWS 账单简化财务管理二是模型供应商可替换只需更改配置中的baseURL和API Key即可切换至其他兼容 Anthropic 或 OpenAI 接口的模型服务甚至未来接入 Bedrock。第三层Skill 层这是业务逻辑的载体以 Markdown 文件SKILL.md的形式存在。每个 Skill 描述一个完整的办公自动化场景例如“处理每日未读邮件”。Skill 中定义了触发条件、执行步骤、工具调用顺序、输出格式和异常处理。最革命性的一点是Skill 可以通过“教一次”的方式由 Agent 自动生成用户通过对话引导 Agent 完成一次正确任务然后让 Agent 总结成 Skill。这意味着业务专家而非程序员成为了自动化流程的主要设计者。第四层MCP 工具层MCP (Model Context Protocol) 是连接 AI 模型与现实世界的桥梁。每一个外部系统如 Outlook、OneDrive、Jira都被封装成一个独立的 MCP Server。Agent 运行时通过标准的 JSON-RPC over stdio 协议与这些 Server 通信调用其暴露的工具。例如outlook-mcpServer 就封装了 Microsoft Graph API 对中国区端点的所有适配工作。这种设计使得集成新系统只需要开发一个新的 MCP Server上层的 Skill 和 Agent 运行时完全不受影响。3. 环境准备与前置条件在开始动手部署之前请确保你已满足以下所有条件。这些是项目能够成功运行的基础。Microsoft 365 租户你需要一个由世纪互联21Vianet运营的 Microsoft 365 中国区租户并且拥有全局管理员权限用于在 Azure 门户中国区注册应用程序。AWS 账户一个有效的 AWS 中国区例如 cn-north-1账户。你需要有权限创建 ECR 仓库、Fargate 服务、Secrets Manager 密钥等资源。模型 API 服务在 AWS Marketplace中国区订阅一个第三方大模型 API 服务例如硅基流动SiliconFlow并获取有效的 API Key 和端点 URL。这是 Agent 进行推理的“燃料”。本地开发环境AWS CLI v2用于通过命令行管理 AWS 资源。Docker用于构建和推送容器镜像。Node.js 18MCP Server 和 Agent 运行时的示例代码基于 Node.js。合规评估在将企业数据如邮件内容发送给第三方模型 API 前务必协同法务与安全团队完成对数据流、供应商资质和数据处理承诺的合规性评审。这是企业级应用不可跳过的一步。4. 实战部署构建 Outlook 邮件助手我们将以“Outlook 邮件助手”为例完成端到端的部署。这个过程涵盖了从凭证配置、代码开发到云上部署的全链路。4.1 配置 Microsoft Graph 应用与凭证首先我们需要在 Azure 中国区门户注册一个应用并让 Agent 有权限访问你的邮箱。注册应用登录 Azure 门户中国区 。进入“Azure Active Directory” - “应用注册”点击“新注册”。应用名称填写outlook-mcp-aws账户类型选择“仅此组织目录中的帐户”。重定向 URI 先填写http://localhost:3000/auth/callback用于本地测试后续部署到 ALB 后再补充生产环境的回调地址。注册完成后记录“应用程序客户端ID”和“目录租户ID”。配置 API 权限在应用页面进入“API 权限”点击“添加权限”。选择“Microsoft Graph” - “委托的权限”。添加以下权限Mail.Read,Mail.ReadWrite,Mail.Send,Calendars.Read,Calendars.ReadWrite,Files.Read,Files.ReadWrite,User.Read。关键点权限的 Scope 必须包含中国区前缀例如https://microsoftgraph.chinacloudapi.cn/Mail.Read。添加后需要由管理员点击“为代表授予管理员同意”。创建客户端密钥在应用页面进入“证书和密码”点击“新客户端密码”。描述填写aws-fargate-mcp有效期建议 12 个月。创建后立即复制并保存密钥值离开页面后将无法再次查看。保存凭证到 AWS Secrets Manager 将 Microsoft Graph 的凭证和模型 API Key 安全地存储起来。# 保存 Microsoft Graph 凭证 aws secretsmanager create-secret \ --name outlook-mcp/graph-credentials \ --secret-string { clientId: your-client-id, tenantId: your-tenant-id, clientSecret: your-client-secret } \ --region cn-north-1 # 保存模型 API Key aws secretsmanager create-secret \ --name agent-runtime/model-api-key \ --secret-string { apiKey: your-model-api-key, baseUrl: your-model-endpoint } \ --region cn-north-14.2 开发 MCP Server封装 Outlook 能力MCP Server 的核心工作是适配中国区 Graph 端点并提供标准的工具接口。以下是关键代码片段。Graph 客户端配置中国区端点 必须使用以下中国区特定端点否则会认证失败。// src/graph-auth.js 关键配置 const CN_AUTHORITY https://login.partner.microsoftonline.cn; const CN_GRAPH_SCOPE https://microsoftgraph.chinacloudapi.cn/.default; const GRAPH_BASE https://microsoftgraph.chinacloudapi.cn/v1.0;实现核心工具函数 例如列出未读邮件和起草回复的工具。// src/email.js (工具定义示例) export const emailTools [ { name: list_unread_emails, description: 列出指定用户的前N封未读邮件按接收时间倒序排列。, inputSchema: { type: object, properties: { user: { type: string, description: 用户邮箱地址如 userexample.com }, top: { type: number, description: 返回的邮件数量默认50 } }, required: [user] }, handler: async ({ user, top 50 }) { // 调用封装的 Graph API 客户端 const emails await listUnreadEmails(user, top); return { content: emails }; } }, { name: draft_reply, description: 为指定邮件创建一封回复草稿。草稿将保存在用户的草稿箱不会直接发送。, inputSchema: { type: object, properties: { user: { type: string, description: 用户邮箱地址 }, messageId: { type: string, description: 原始邮件的ID }, replyBody: { type: string, description: 回复的HTML正文内容 } }, required: [user, messageId, replyBody] }, handler: async ({ user, messageId, replyBody }) { const draft await createDraftReply(user, messageId, replyBody); return { content: { draftId: draft.id, status: created } }; } } ];MCP Server 主入口// src/server.js const { Server } require(modelcontextprotocol/sdk/server/index.js); const { StdioServerTransport } require(modelcontextprotocol/sdk/server/stdio.js); const { emailTools } require(./email); const server new Server( { name: m365-assistant, version: 2.0.0 }, { capabilities: { tools: {} } } ); server.fallbackRequestHandler async (request) { const { method, params } request; if (method tools/list) { return { tools: emailTools.map(t ({ name: t.name, description: t.description, inputSchema: t.inputSchema })) }; } if (method tools/call) { const tool emailTools.find(t t.name params.name); if (!tool) { return { error: { code: -32601, message: Tool not found } }; } return await tool.handler(params.arguments); } }; const transport new StdioServerTransport(); await server.connect(transport);4.3 构建与部署到 AWS Fargate将开发好的 MCP Server 和 Agent 运行时打包成 Docker 镜像部署到无服务器容器服务。编写 DockerfileFROM public.ecr.aws/docker/library/node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --omitdev COPY src ./src COPY skills ./skills EXPOSE 3000 CMD [node, src/agent.js] # 启动 Agent 运行时它会自动拉起 MCP Server构建并推送镜像到 Amazon ECRACCOUNT_ID$(aws sts get-caller-identity --query Account --output text) REGIONcn-north-1 REPOoutlook-agent aws ecr create-repository --repository-name $REPO --region $REGION aws ecr get-login-password --region $REGION | \ docker login --username AWS --password-stdin \ $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com.cn docker build -t $REPO . docker tag $REPO:latest $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com.cn/$REPO:latest docker push $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com.cn/$REPO:latest注意中国区 ECR 的域名后缀是.amazonaws.com.cn。配置 ECS 任务定义与 Fargate 服务在 Amazon ECS 控制台创建新的任务定义选择 Fargate 启动类型。容器配置指向刚才推送的 ECR 镜像。关键配置任务执行角色。该角色需要附加AmazonECSTaskExecutionRolePolicy以及一个自定义策略允许从 Secrets Manager 读取我们之前存储的密钥。// 自定义策略示例 (SecretsManagerReadPolicy) { Version: 2012-10-17, Statement: [{ Effect: Allow, Action: [secretsmanager:GetSecretValue], Resource: [ arn:aws-cn:secretsmanager:cn-north-1:你的账户ID:secret:outlook-mcp/graph-credentials-*, arn:aws-cn:secretsmanager:cn-north-1:你的账户ID:secret:agent-runtime/model-api-key-* ] }] }创建 Fargate 服务将任务放入私有子网并配置一个 Application Load Balancer (ALB) 作为公网入口。确保 ALB 的安全组和 Fargate 任务的安全组允许相关流量如 HTTPS 443。在任务的环境变量中注入 Secrets Manager 中密钥的 ARN容器内代码通过 SDK 自动获取。4.4 编写与生成 SkillSkill 是业务逻辑的核心。以下是一个“每日邮件简报” Skill 的示例它可以通过与 Agent 对话“教一次”后自动生成。--- name: email-daily-brief trigger: [处理邮件, 处理未读邮件, check my inbox] --- # 每日未读邮件简报 ## 步骤 1检查认证 调用 list_unread_emails 验证连接。如果返回 401 错误告知用户“认证已过期请重新授权”。 ## 步骤 2拉取未读邮件 调用 list_unread_emails参数 top50按 receivedDateTime 倒序排列。 ## 步骤 3逐封分析 对每一封邮件调用 read_email 获取详情。提取发件人、主题、正文前500字、是否有附件。 基于内容判断邮件类别 - **信息周知**仅需阅读无需行动。 - **需要回复**需起草回复。 - **需要行动**需创建待办事项。 - **可忽略**广告或无关信息。 **注意**回复语言需与原邮件主要语言保持一致。 ## 步骤 4起草回复 仅对标记为“需要回复”的邮件调用 draft_reply。 回复草稿格式 1. 礼貌问候。 2. 对原邮件主旨进行简短确认。 3. 给出明确的下一步或答复。 4. 结尾署名使用占位符 [Your Name]。 **重要**只创建草稿绝不直接发送。 ## 步骤 5生成简报 输出一份 Markdown 格式的简报包含 - 概览表格总邮件数、各类别数量。 - 邮件详情列表每封邮件的关键信息和处理状态。 - 待办事项清单需要后续跟进的行动项。将这个email-daily-brief.md文件放入容器的/skills目录Agent 启动时会自动加载。4.5 启动与验证 Agent 服务当 Fargate 服务启动后Agent 运行时便会开始工作。你可以通过向 ALB 的端点发送 HTTP 请求来触发任务。# 示例通过 curl 触发邮件处理 curl -X POST https://your-alb-dns-name/run \ -H Content-Type: application/json \ -d { skill: email-daily-brief, input: 请帮我处理今天的未读邮件并生成简报。, user: your-emailcompany.com }验证成功的标志Agent 能成功拉取到指定邮箱的未读邮件列表。能正确分析邮件内容并进行分类。对于需要回复的邮件能在 Outlook 的“草稿”文件夹中找到生成的回复草稿。最终能返回一份结构清晰的 Markdown 简报。5. 功能扩展从邮件到全场景办公自动化邮件助手只是起点。基于四层解耦的架构扩展到其他办公场景的边际成本非常低。场景业务问题核心 MCP 工具新增开发量日历智能调度跨时区会议安排耗时、多方协调困难。复用outlook-mcp的日历接口。主要编写新的 Skill定义如何分析邮件内容、查找共同空闲时间、生成会议邀请草稿。附件自动归档合同、发票等附件分散在邮件中手动归档效率低、分类不一致。outlook-mcp(读附件) files-mcp(写OneDrive/SharePoint)。开发files-mcpServer封装 OneDrive/SharePoint API。Skill 定义分类规则和存储路径。会议纪要提取会议结束后行动项和承诺靠人工记忆和整理容易遗漏。无输入为粘贴的文本。开发ticket-mcpServer集成 Jira/ServiceNow 等任务系统。Skill 定义如何从文本中提取行动项并创建工单。IT 工单分诊服务台收到大量重复性工单如密码重置占用大量人工。无。开发ticket-mcpServer集成 ITSM 系统。Skill 定义如何根据用户描述自动分类、分配优先级、甚至提供初步解决方案。扩展的核心步骤开发新的 MCP Server为新的目标系统如 Jira、Confluence、内部 ERP封装 API。编写新的 Skill 文件用自然语言描述新场景的触发条件、执行步骤和工具调用逻辑。可以利用 Agent 的“教一次”功能来生成初稿。更新容器镜像将新的 MCP Server 可执行文件和 Skill 文件打包进镜像或通过卷挂载动态加载。部署与测试更新 ECS 任务定义滚动更新 Fargate 服务。6. 安全、合规与运维要点在企业环境中运行此类自动化 Agent安全与合规是重中之重。最小权限原则为每个 MCP Server 对应的 Azure AD 应用或系统账户只授予完成其职责所必需的最小权限。例如仅处理邮件的 Agent 就不需要日历的写权限。外发动作人工审批所有可能产生外部影响的操作发送邮件、创建会议、提交工单在 Skill 设计中必须设置为“生成草稿”或“创建待审记录”必须经由人工确认后才能最终执行。这是防止 AI 误操作的关键安全阀。敏感信息脱敏在 Skill 中明确声明哪些字段如身份证号、银行账号、内部编号在发送给模型 API 前必须进行脱敏处理如替换为占位符[SENSITIVE]。全链路审计日志确保开启并集中管理所有日志。应用日志AWS Fargate 任务的标准输出/错误记录 Agent 的推理过程和工具调用详情发送到 Amazon CloudWatch Logs。访问日志ALB 的访问日志记录所有入站请求存储到带有对象锁定的 Amazon S3 桶中。API 日志第三方模型服务商的控制台通常提供 API 调用日志需定期导出归档。操作日志通过 AWS CloudTrail 记录所有 AWS 资源的管理操作。密钥生命周期管理所有密钥客户端密钥、API Key必须存储在 AWS Secrets Manager 中并设置合理的轮换策略。严禁将密钥硬编码在代码或镜像中。7. 性能、成本与监控资源规格对于邮件处理这类轻量级任务Fargate 任务配置 0.5 vCPU 和 1 GB 内存通常足够。可根据实际负载监控指标CPU/内存利用率进行弹性调整。成本构成AWS 资源Fargate vCPU/内存运行成本、ALB 成本、Secrets Manager 存储成本、CloudWatch Logs 存储与注入成本。模型 API第三方模型服务的 API 调用费用按 Token 用量计费。需要在 Skill 设计时考虑优化提示词减少不必要的上下文长度。监控告警在 CloudWatch 中为 Log Groups 创建指标筛选器监控ERROR、InvalidAudience、RateLimit等关键字。设置基于错误日志模式的 CloudWatch Alarms并触发 SNS 通知以便及时响应故障。监控模型 API 的响应延迟和错误率这些是影响用户体验的关键指标。8. 常见问题与排查方法在部署和运行过程中你可能会遇到以下典型问题。问题现象可能原因排查步骤解决方案Agent 启动失败报错“无法连接 MCP Server”1. MCP Server 启动命令错误。2. 容器内路径不正确。3. 依赖未安装。1. 检查 Fargate 任务日志中 MCP Server 子进程的启动日志。2. 确认mcpServers配置中的command和args在容器内有效。3. 检查 MCP Server 的package.json和依赖。1. 修正启动命令或路径。2. 确保 MCP Server 在 Docker 镜像中正确安装。调用 Graph API 返回 401 InvalidAudienceToken 的受众audience与请求的 API 端点不匹配。1. 检查CN_GRAPH_SCOPE常量是否正确设置为https://microsoftgraph.chinacloudapi.cn/.default。2. 检查获取 Token 的请求是否发送到了中国区授权端点login.partner.microsoftonline.cn。确保认证代码中的所有端点配置均为中国区版本。Agent 可以拉取邮件但分类或回复内容质量差1. 模型能力不足。2. Skill 描述不够清晰。3. 提供给模型的邮件上下文不完整。1. 查看模型 API 的请求和响应日志需在代码或供应商平台开启。2. 审查 Skill 文件步骤和判断条件是否明确。3. 检查read_email工具返回的邮件内容是否完整。1. 尝试更换或升级模型。2. 优化 Skill 描述增加更具体的规则和示例。3. 确保有足够的 Token 容量来传递完整的邮件内容。Fargate 任务不断重启1. 容器启动失败如缺少环境变量。2. 健康检查失败。3. 内存不足OOM。1. 查看 ECS 任务停止的原因代码和 CloudWatch Logs 中的崩溃信息。2. 检查 ALB 目标组的健康检查路径和容器内服务是否响应。3. 监控 CloudWatch 中的内存指标。1. 确保所有必需的 Secrets Manager ARN 已正确配置为环境变量。2. 在容器内实现一个/healthz健康检查端点。3. 增加任务定义的内存限制。模型 API 调用超时或失败1. 网络问题Fargate 任务所在子网无 NAT 网关出公网。2. 模型服务商限流或故障。3. API Key 无效或过期。1. 在 Fargate 任务中执行curl命令测试到模型端点的连通性。2. 查看模型服务商控制台的用量和状态。3. 检查 Secrets Manager 中的 API Key 是否最新。1. 确认 Fargate 任务所在的私有子网已关联 NAT 网关。2. 联系模型服务商或实现客户端重试与退避机制。3. 在 Secrets Manager 中更新 API Key。9. 总结与最佳实践这个基于 AWS Fargate 和 Claude Agent SDK 的 AI Agent 自动化方案其价值远不止于实现一个邮件助手。它提供了一套可扩展、可维护、符合企业合规要求的 Agent 工程化范式。最值得尝试的点架构解耦Skill、模型、工具、运行时四层分离让每个部分都可以独立演进和替换极大地提升了系统的灵活性和寿命。业务主导Markdown 格式的 Skill 让业务专家能够直接参与甚至主导自动化流程的设计打破了开发壁垒。中国区合规落地通过 AWS Marketplace 集成第三方模型 API巧妙地绕开了 AWS 中国区暂无 Bedrock 的限制为国内企业提供了可行的落地路径。安全基线牢固从设计上就贯彻了最小权限、人工审批、全链路审计等安全原则为在企业敏感环境中运行 AI Agent 奠定了基础。部署建议从小处着手先从单个、明确的场景如邮件分类开始 PoC验证整个技术栈和流程再逐步扩展到更复杂的场景。建立效果评估指标在试运行阶段就定义并采集关键指标如“邮件分类准确率”、“起草回复的用户采纳率”、“平均处理耗时”用数据驱动优化。技能资产化将验证有效的 Skill 文件进行版本管理形成可复用的“技能库”。新的业务需求可以优先从库中寻找可组合或可修改的现有 Skill。关注成本密切监控模型 API 的调用量和费用。对于高频任务考虑对提示词进行优化或探索在流量低谷期处理批量任务。这个方案清晰地展示了 AI Agent 如何从“玩具”走向“工具”如何通过工程化的手段解决真实的业务问题。下一步你可以尝试将files-mcp、ticket-mcp等工具实现将自动化能力延伸到文档、会议、审批、客服等更多场景真正构建起属于你企业的“数字员工”团队。 30款热门AI模型一站整合DeepSeek/GLM/Claude 随心用限时 5 折。 点击领海量免费额度