项目简介

"Self-Service Agent Blueprint" 是一个为IT团队、DevOps工程师和解决方案架构师设计的快速启动项目,旨在帮助组织通过生成式AI实现IT流程的自助服务自动化。它提供了一个可重用的平台,包含核心代理服务、请求管理器、集成调度器以及与外部系统集成的MCP服务器,如ServiceNow。项目支持多种通信渠道(CLI、Slack、Email),并强调可观测性、评估和安全性,以构建生产级的AI代理系统。

主要功能点

  • AI代理框架: 利用Llama Stack和LangGraph构建智能对话代理,管理复杂的对话流程和工作流。
  • MCP服务器集成: 通过Model Context Protocol (MCP) 服务器标准化地连接外部系统(如ServiceNow),提供资源访问和工具调用能力。
  • 知识库管理: 使用基于向量的知识库(通过Llama Stack)存储策略文档和流程指南,支持检索增强生成(RAG)。
  • 多渠道支持: 集成CLI、Slack和Email,使用户可以通过熟悉的平台与AI代理交互。
  • 可观测性: 深度集成OpenTelemetry,提供分布式追踪能力,帮助监控、调试和优化代理系统的复杂交互。
  • 评估框架: 包含AI专用的评估工具,通过预定义对话流和生成式场景验证代理的行为和业务需求。
  • 安全防护: 支持Llama Guard等安全模型,提供内容审核和安全防护机制。
  • 会话管理: 管理用户会话状态和代理路由,支持从路由代理到专业代理的无缝切换。

安装步骤

  1. 克隆仓库: 'git clone https://github.com/RHEcosystemAppEng/self-service-agent-blueprint.git'
  2. 进入项目目录: 'cd self-service-agent-blueprint'
  3. 安装本地工具: 确保您的系统已安装Python 3.12+、uv、Podman、Helm、oc CLI、git和make。
  4. OpenShift/Kubernetes集群准备: 准备一个OpenShift或Kubernetes集群。对于生产环境,还需要安装Serverless Operator和Streams for Apache Kafka Operator。
  5. 配置环境变量:
    export NAMESPACE=您的OpenShift项目名称 # 例如:my-ai-agent
    export LLM=llama-3-3-70b-instruct-w8a8 # 或您选择的模型ID
    export LLM_ID=llama-3-3-70b-instruct-w8a8
    export LLM_API_TOKEN=您的LLM服务API令牌
    export LLM_URL=您的LLM服务API端点 # 例如:https://api.llamastack.ai/v1
    export HF_TOKEN=1234 # 如果不需要本地托管LLM,可设为任意值
    # 可选:如果部署到私有容器仓库,需要设置 REGISTRY
    # export REGISTRY=quay.io/您的组织
  6. 部署到OpenShift (测试模式):
    oc login --server=https://your-cluster:6443 # 登录OpenShift
    oc new-project $NAMESPACE # 创建项目
    make helm-install-test NAMESPACE=$NAMESPACE # 部署
  7. 验证部署:
    make helm-status NAMESPACE=$NAMESPACE
    oc get pods -n $NAMESPACE
    oc get routes -n $NAMESPACE
    确认所有Pod都在运行状态,并且路由已创建。

服务器配置

此仓库包含一个名为 'mcp-servers/snow' 的ServiceNow集成MCP服务器,它将ServiceNow功能暴露为可供AI代理调用的工具。您的MCP客户端(例如,一个LLM编排服务,如此项目中的'agent-service')可以通过JSON-RPC协议与此ServiceNow MCP服务器建立连接,以访问ServiceNow的资源和工具。

以下是MCP客户端可以用来配置与'mcp-servers/snow'连接的示例信息:

{
  "server_name": "servicenow-mcp-server",
  "description": "提供ServiceNow资源访问和工具调用能力的MCP服务器,例如获取员工笔记本信息和创建笔记本刷新工单。",
  "connection_type": "http",
  "command": "uvicorn",
  "args": [
    "mcp_snow.main:app",
    "--host", "0.0.0.0",
    "--port", "8080"
  ],
  "environment_variables": {
    "SERVICENOW_INSTANCE_URL": "您的ServiceNow实例URL,例如:https://your-instance.service-now.com",
    "SERVICENOW_API_KEY": "ServiceNow集成使用的API密钥",
    "SERVICENOW_LAPTOP_REFRESH_ID": "ServiceNow中笔记本刷新工单的ID (可选)"
  },
  "endpoint_url": "http://mcp-snow.您的OpenShift项目名称.svc.cluster.local:8080"
}
  • server_name: MCP服务器的唯一标识符,在此处是"servicenow-mcp-server"。
  • description: 对服务器功能的简要描述。
  • connection_type: 服务器的连接类型,这里是"http"。
  • command: 启动MCP服务器进程的命令,此处为'uvicorn'。
  • args: 启动命令的参数列表,例如指定MCP服务器的应用程序入口、监听地址和端口。
  • environment_variables: 启动MCP服务器所需的环境变量,用于配置ServiceNow连接详情。
  • endpoint_url: 部署后MCP服务器的实际访问地址。在OpenShift集群内部,通常是'http://服务名称.命名空间.svc.cluster.local:端口'。

基本使用方法

  1. 通过CLI交互:
    • 获取请求管理器Pod名称: 'export REQUEST_MANAGER_POD=$(oc get pod -n $NAMESPACE -l app=self-service-agent-request-manager -o jsonpath='{.items[0].metadata.name}')'
    • 启动聊天会话: 'oc exec -it $REQUEST_MANAGER_POD -n $NAMESPACE -- python test/chat-responses-request-mgr.py --user-id [email protected]'
    • 在CLI中输入 'I need help with my laptop refresh' 等消息,与代理进行互动。
  2. Slack集成 (可选):
    • 按照 'guides/SLACK_SETUP.md' 指导配置Slack应用。
    • 在Slack中直接@您的机器人并发送消息,如 '@Self-Service Agent hi'。
  3. ServiceNow集成 (可选):
    • 按照 'guides/SERVICE_NOW_BOOTSTRAP_AUTOMATED.md' 或 'guides/SERVICE_NOW_BOOTSTRAP_MANUAL.md' 配置ServiceNow实例。
    • 设置ServiceNow环境变量并升级Helm部署:
      export SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
      export SERVICENOW_API_KEY=your-servicenow-api-key
      export SERVICENOW_LAPTOP_REFRESH_ID=your-servicenow-laptop-refresh-id
      make helm-upgrade NAMESPACE=$NAMESPACE
    • 通过CLI或Slack测试笔记本刷新流程,确认ServiceNow工单是否实际创建。
  4. 运行评估:
    • 进入评估目录: 'cd evaluations/'
    • 安装评估依赖: 'pip install -e .'
    • 运行预定义对话流: 'python run_conversations.py'
    • 生成合成对话: 'python generator.py 5 --max-turns 20'
    • 评估所有对话: 'python deep_eval.py'
    • 查看评估报告以了解代理性能。

信息

分类

商业系统