
基于 multi-agent-orchestrator 的 AI 电商客服模拟器多智能体编排与人工客服协同实战【免费下载链接】agent-squadFlexible and powerful framework for managing multiple AI agents and handling complex conversations项目地址: https://gitcode.com/GitHub_Trending/mu/agent-squad本指南以examples/ecommerce-support-simulator示例为蓝本讲解如何用 multi-agent-orchestrator 构建一套AI 智能体 人工客服协同的电商客户服务体系覆盖智能路由、多智能体协作、工具增强、异步消息与人工介入等完整链路。读者将掌握三类专业 Agent订单管理、商品信息、人工客服的编排方法、基于 SQS 的双向消息架构以及基于 AWS CDK 的一键部署与演示流程。项目概览与核心能力AI-Powered E-commerce Support SimulatorREADME.md是一个演示项目目标是在电商客服场景中展示 AI 智能体与人工支持如何协同工作重点验证智能查询路由、多智能体协作以及复杂场景下的人工无缝介入。核心能力包括多智能体 AI 编排使用专门化模型承担不同职责订单、商品、客服、人工复核实时与异步双通信模式即时聊天与邮件风格两种交互界面人工客服工作流无缝集成通过 SQS 消息队列实现人工介入与双向沟通工具增强的 AI 交互订单查询、物流追踪、退货处理等工具调用生产级 AWS 架构CloudFront、AppSync、SQS、Lambda、DynamoDB、Cognito 全链路贴近真实的 Mock 数据内置订单、物流示例数据开箱即用。双通道交互界面系统提供两种截然不同的交互模式以适应不同的客服场景与用户偏好二者共享同一套后端编排与消息路由能力。实时聊天界面Chat Mode聊天界面提供即时、对话式的支持体验即时消息风格的沟通实时消息流式展示智能体实时响应消息自动路由客户视角与客服视角分别拥有独立聊天窗口。邮件风格通信Email Mode邮件界面支持结构化、异步的通信方式客户与客服各自独立的邮件撰写界面面向常见场景的预定义模板双方各自的回复查看区域异步消息处理模板化标准回复支持。两种模式共有的核心能力无论哪种界面演示都覆盖四项关键能力AI 能力自然语言理解、上下文保持、按需调用工具人工集成无缝转接、人工核验流程、复杂案例处理工具使用订单查询order lookup、物流追踪shipment tracking、退货处理return processing系统智能查询分类、路由决策、升级escalation处理。系统架构多智能体协同编排系统由多个专用 AI 智能体组成每个智能体面向特定任务全部定义在 agents.ts 中。1. 订单管理 AgentOrder Management Agent实现BedrockLLMAgent模型Anthropic Claude 3 Sonnetanthropic.claude-3-sonnet-20240229-v1:0职责处理所有与订单相关的咨询与管理任务。工具集在 agents.ts 中以orderManagementToolConfig定义工具输入返回orderlookuporderIdstring完整订单信息含状态、商品与价格shipmenttrackerorderIdstring当前物流状态、位置与预计送达时间returnprocessororderIdstring退货授权与操作指引从源码可见工具配置遵循 Bedrock 工具规范toolSpecinputSchema并通过useToolHandler: orderManagementToolHandler处理模型发起的工具调用handler 遍历模型响应的content块按toolUse.name分发到orderLookup、shipmentTracker、returnProcessor三个模拟函数再把结果以toolResult形式追加回会话实现多轮工具循环同时通过toolMaxRecursions: 5限制工具调用递归深度避免无限循环。2. 商品信息 AgentProduct Information Agent实现BedrockLLMAgent模型Anthropic Claude 3 Haikuanthropic.claude-3-haiku-20240307-v1:0职责提供全面的商品信息与规格说明。集成方式通过AmazonKnowledgeBasesRetriever连接知识库代码中productInfoRetriever new AmazonKnowledgeBasesRetriever(new BedrockAgentRuntimeClient({}), { knowledgeBaseId: your-product-kb-id })部署前需替换为真实的知识库 ID检索器以retriever参数挂载到 Agent 上。关键特性实时商品库访问、规格查询、库存可用性检查、兼容性信息。3. 人工客服 AgentHuman Agent实现自定义HumanAgent类继承自基类Agent。职责处理需要人工介入的复杂案例。集成方式基于 AWS SQS 的消息队列集成构造时必须提供queueUrl否则直接抛错Queue URL is not provided。特性异步消息处理、双向通信支持、客户与客服消息路由。从 agents.ts 的processRequest实现可以看到人工介入的完整逻辑当用户消息被路由到HumanAgent时它通过sendSQSMessage(support, inputText)将消息投递到 SQS 队列destination: support同时立即向用户返回占位响应您的请求已收到将由客服团队尽快处理。这构成了 AI 与人工之间异步协作的桥梁。4. 客户服务 Agent 与 AI 人工复核链源码中还定义了两个在 README 基础上值得注意的补充组件客户服务 AgentAmazonBedrockAgent实现面向一般客户咨询、账户问题等非技术类请求需要配置agentId与agentAliasId调用 Amazon Bedrock Agents 托管智能体AI 人工复核链ChainAgentaiWithHumanVerificationAgent将客户服务 Agent 与HumanAgentHuman Verifier组合成ChainAgent用于高优先级或敏感咨询——AI 先生成回复再由人工核验后才能发出。编排器配置与消息路由编排器在 index.ts 中初始化采用异步惰性初始化模式initializeOrchestrator promise 复用避免 Lambda 冷启动时重复创建实例。orchestrator new MultiAgentOrchestrator({ storage: storage, config: { LOG_AGENT_CHAT: true, LOG_CLASSIFIER_CHAT: true, LOG_CLASSIFIER_RAW_OUTPUT: true, LOG_CLASSIFIER_OUTPUT: true, LOG_EXECUTION_TIMES: true, MAX_MESSAGE_PAIRS_PER_AGENT: 10, USE_DEFAULT_AGENT_IF_NONE_IDENTIFIED: false, }, logger: sqsLogger, });各配置项作用如下配置项取值作用LOG_AGENT_CHATtrue记录每个 Agent 的完整对话内容LOG_CLASSIFIER_CHATtrue记录分类器与用户的对话LOG_CLASSIFIER_RAW_OUTPUTtrue记录分类器原始输出未解析文本LOG_CLASSIFIER_OUTPUTtrue记录分类器解析后的结构化输出LOG_EXECUTION_TIMEStrue记录各环节执行耗时MAX_MESSAGE_PAIRS_PER_AGENT10每个 Agent 最多保留的对话轮次对数量USE_DEFAULT_AGENT_IF_NONE_IDENTIFIEDfalse分类器未识别出任何 Agent 时是否回退到默认 Agent会话存储使用DynamoDbChatStorage表名、区域、TTL 字段与时长均来自 Lambda 环境变量日志通过自定义的SQSLoggersqsLogger.ts异步投递到 SQS提供log/info/warn/error/debug分级接口。Lambda handler 从 SQS 事件中取出sessionId与message调用orchestrator.routeRequest(message, sessionId, sessionId)完成智能体选择与对话随后把orchestratorResponse.output包装成{ destination: customer, message }投递到出站队列等待前端订阅接收。完整消息流从前端到 AI 再到前端整个系统的消息链路见 schema.graphql 与 Query.sendMessage.js设计为前端发送客户端通过 AppSync GraphQLQuery.sendMessage(source, message, sessionId)发送消息。source参数决定消息进入哪条队列——customer进入客户消息队列support进入客服消息队列未知来源默认走客户队列对应 Query.sendMessage.js 中的路由分支。消息入队AppSync 通过 HTTP 数据源调用 SQSSendMessageAPIActionSendMessageVersion2012-11-05以application/x-www-form-urlencoded提交成功时返回MessageId、MD5OfMessageBody等字段对应 GraphQLResponse类型。Lambda 消费CustomerMessageLambda入口 index.ts与SupportMessageLambdasupportMessage/index.ts通过 EventSourceMappingbatchSize: 1分别消费两条入站队列。客户消息触发多智能体编排客服消息则原样转发。出站投递处理结果统一写入出站队列outgoingMessagesQueue。响应回传SendResponseLambdasendResponse/index.ts消费出站队列使用 AWS Signature V4 对 AppSync 的sendResponsemutation 签名后调用触发Subscription.onResponseReceived前端实时收到回复。这套设计的关键价值在于所有 AI 处理与人工处理都通过 SQS 解耦前端无需关心消息由 AI 还是人工产生天然支持异步、可重试与水平扩展。AWS 基础设施整个系统构建在 AWS 之上见 ai-ecommerce-support-simulator-stack.ts主要组件包括前端React 应用打包后托管在 S3enforceSSL S3 托管加密 全封闭公共访问经 CloudFront 分发HTTP/23、强制 HTTPS、TLS 1.2_2021并配置安全响应头策略API 层AppSync GraphQL API默认 USER_POOL 授权 IAM 附加授权模式启用字段级全量日志与 X-Ray 追踪消息路由三条 SQS 队列客户入站、客服入站、出站保证消息可靠投递客户入站队列visibilityTimeout设为 10 分钟以匹配 AI 处理时长处理层Lambda 函数负责消息处理CustomerMessageLambda配置 2048MB 内存与 9 分钟超时并授予bedrock:InvokeModel与ssm:*参数读取权限存储DynamoDB 保存会话历史PK/SK复合键、按需计费、TTL 过期S3 存放静态资源认证Cognito 用户池与身份池selfSignUpEnabled: false管理员创建用户支持 email 别名登录与多种 auth flow监控内置日志与调试能力AppSync 日志 SQS 日志 X-Ray。部署产物aws-exports.json含 GraphQL endpoint、region、Cognito 用户池/客户端/身份池 ID由 CDK 自动生成并随前端一同发布到 S3前端开箱即连。Mock 数据系统内置mock_data.json提供贴近真实的示例数据订单信息orders与物流信息shipments两个映射表。在 agents.ts 中模拟工具函数直接以该文件为数据源const config JSON.parse(fs.readFileSync(mock_data.json, utf-8)); const orderDb: Recordstring, any config.orders; const shipmentDb: Recordstring, any config.shipments;工具查询未命中时返回not found便于演示模型的兜底应答。该文件在 CDK 打包阶段通过afterBundling钩子复制进 Lambda 产物目录确保运行时可用。部署步骤前置条件具有适当权限的 AWS 账户已安装并配置好凭证的 AWS CLI本机安装 Node.js 与 npm安装 AWS CDK CLInpm install -g aws-cdk。部署流程克隆仓库并进入示例目录git clone 本仓库地址 cd examples/ecommerce-support-simulator安装依赖npm install引导 AWS CDK首次在目标区域使用 CDK 时执行用于创建部署所需的 S3 桶等资源cdk bootstrap部署应用cdk deploy在 Amazon Cognito 用户池中创建用户部署输出中会给出用户池 IDaws cognito-idp admin-create-user \ --user-pool-id your-region_xxxxxxx \ --username youremail.com \ --user-attributes Nameemail,Valueyouremail.com \ --temporary-password MyChallengingPassword \ --message-action SUPPRESS \ --region your-region--message-action SUPPRESS表示不向邮箱发送邀请邮件密码由命令直接指定。访问演示应用在浏览器中打开 CDK 输出提供的 CloudFront 域名使用上一步创建的账号密码登录。清理资源为避免产生不必要的 AWS 费用演示结束后执行cdk destroy该命令会删除本栈创建的全部云资源含 S3 桶、队列、表、Lambda 等。故障排查部署或使用过程中若遇到问题可依次检查AWS 凭证是否正确配置aws configure或环境变量账户权限是否包含 CloudFormation、S3、SQS、Lambda、AppSync、DynamoDB、Cognito、Bedrock 等所需服务依赖安装是否完整在示例目录执行npm install并确认multi-agent-orchestrator版本CloudFormation 控制台查看详细的部署错误信息针对 AI 功能确认mock_data.json中的订单 ID 与聊天输入一致并检查 Lambda 的QUEUE_URL、HISTORY_TABLE_NAME等环境变量是否由 CDK 正确注入。免责声明与生产化注意事项该演示应用仅用于演示目的并非为处理、存储任何个人身份信息PII或敏感数据而设计。请勿在应用内输入、上传或使用任何真实个人信息如确需演示请使用非敏感、匿名化的数据。产生的一切风险由使用者自行承担。若要在生产环境中使用类似架构必须落实完善的安全措施以保护 PII包括获取用户明确授权、对传输与存储中的数据加密、遵循行业标准与法规要求否则可能导致数据泄露等严重后果。【免费下载链接】agent-squadFlexible and powerful framework for managing multiple AI agents and handling complex conversations项目地址: https://gitcode.com/GitHub_Trending/mu/agent-squad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考