首页
/ 从零构建智能客服:Microsoft Agent Framework实战案例

从零构建智能客服:Microsoft Agent Framework实战案例

2026-02-05 05:06:40作者:戚魁泉Nursing

你是否还在为客服响应慢、人工成本高而烦恼?本文将带你使用Microsoft Agent Framework(MAF)从零构建一套智能客服系统,实现多代理协作处理客户咨询,提升服务效率。读完本文后,你将掌握:

  • 智能客服系统的架构设计与核心组件
  • 多Agent协作流程的配置方法
  • 基于Web的客服交互界面搭建
  • 完整的本地部署与测试步骤

系统架构设计

智能客服系统需要处理用户咨询、调用专业Agent(如订单查询、物流跟踪)、协调多Agent协作,并提供友好的交互界面。MAF的多代理架构天然适合此类场景,其核心组件包括:

智能客服系统架构

核心组件说明

组件 功能描述 技术实现
用户交互层 提供Web聊天界面 AgentWebChat.Web
协调Agent 路由用户请求至专业Agent A2AClient
专业Agent 处理特定领域咨询(订单/物流) A2AServer
工作流引擎 定义多Agent协作规则 HumanInLoop.yaml

环境准备

开发环境配置

  1. 克隆项目代码

    git clone https://gitcode.com/GitHub_Trending/age/agent-framework
    cd agent-framework
    
  2. 安装依赖

    • .NET环境:需安装.NET 8.0+,项目配置文件见 global.json
    • Python环境:使用UV包管理器,配置见 pyproject.toml
  3. 配置API密钥

    • OpenAI密钥(用于本地测试):
      $env:OPENAI_API_KEY="your-api-key"
      
    • Azure AI密钥(用于生产环境):
      $env:AZURE_FOUNDRY_PROJECT_ENDPOINT="your-endpoint"
      

核心Agent开发

1. 创建基础客服Agent

使用Python快速创建一个能响应天气查询的基础Agent,代码示例:

# [python/samples/getting_started/minimal_sample.py](https://gitcode.com/GitHub_Trending/age/agent-framework/blob/8967269d3eba4bb84544a710e9d675fe216d220c/python/samples/getting_started/minimal_sample.py?utm_source=gitcode_repo_files)
import asyncio
from agent_framework.openai import OpenAIChatClient

def get_weather(location: str) -> str:
    """获取指定城市天气信息"""
    return f"北京天气:晴朗,25°C"  # 实际项目中应对接真实API

# 创建客服Agent
agent = OpenAIChatClient().create_agent(
    name="CustomerServiceAgent",
    instructions="你是智能客服助手,可查询订单和物流信息",
    tools=[get_weather]
)

# 测试Agent响应
print(asyncio.run(agent.run("我的订单什么时候发货?")))

2. 多Agent协作配置

在实际客服场景中,需要订单、物流等专业Agent协同工作。通过A2A协议实现Agent间通信,配置示例:

# 启动订单Agent(端口5000)
dotnet run --urls "http://localhost:5000" --agentType "order"

# 启动物流Agent(端口5001)
dotnet run --urls "http://localhost:5001" --agentType "logistics"

配置文件路径:A2AServer/appsettings.json

工作流设计

使用MAF的工作流引擎定义客服业务流程,例如"短发货纠纷处理"流程:

# [workflow-samples/HumanInLoop.yaml](https://gitcode.com/GitHub_Trending/age/agent-framework/blob/8967269d3eba4bb84544a710e9d675fe216d220c/workflow-samples/HumanInLoop.yaml?utm_source=gitcode_repo_files)
kind: Workflow
trigger:
  kind: OnConversationStart
actions:
  - kind: SetVariable
    id: set_original_query
    variable: Local.UserQuery
    value: =System.LastMessage.Text
  
  - kind: Question
    id: confirm_query
    prompt: "请确认您的问题:{Local.UserQuery}"
    entity: StringPrebuiltEntity
  
  - kind: ConditionGroup
    conditions:
      - condition: =Local.ConfirmedQuery == Local.UserQuery
        actions:
          - kind: SendActivity
            activity: "正在转接至物流Agent..."
            # 调用物流Agent的逻辑

工作流执行流程

graph TD
    A[用户发送咨询] --> B{验证问题}
    B -->|有效| C[调用专业Agent]
    B -->|无效| D[提示重新输入]
    C --> E[汇总结果]
    E --> F[返回用户]

前端界面搭建

基于Blazor框架构建Web客服界面,核心组件位于 AgentWebChat.Web

  1. 启动Web服务

    cd dotnet/samples/AgentWebChat/AgentWebChat.Web
    dotnet run
    
  2. 关键UI组件

    • 聊天窗口:Chat.razor
    • 样式文件:app.css
  3. 界面效果

    启动后访问 http://localhost:5002 可看到客服聊天界面,支持:

    • 实时消息发送
    • 对话历史记录
    • Agent状态显示

系统测试与部署

1. 功能测试

使用A2A Inspector工具测试Agent通信:

  1. 启动Inspector:docker run -p 8080:8080 a2aproject/a2a-inspector
  2. 连接Agent:输入 http://localhost:5000
  3. 发送测试消息:"查询订单INV-12345"

测试界面截图: A2A Inspector测试

2. 部署方案

推荐使用Docker容器化部署,项目根目录下创建Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY dotnet/samples/AgentWebChat/AgentWebChat.Web/bin/Release/net8.0/publish .
ENTRYPOINT ["dotnet", "AgentWebChat.Web.dll"]

总结与扩展

本文构建的智能客服系统已实现基础功能,可进一步扩展:

完整项目文档见 docs/FAQS.md,更多示例可查看 python/samplesdotnet/samples 目录。

通过MAF框架,开发者可快速构建复杂的多Agent系统,显著降低智能客服的开发门槛。立即尝试部署并体验AI驱动的客户服务新范式!

登录后查看全文
热门项目推荐
相关项目推荐