Skip to content

2.5 平台资源池 — AI 模型 / MCP 工具 / 技能分类

这一章统一管理三个平台级资源池:

  1. AI 模型 — 智能体可以调用的 LLM 列表(GPT-4 / Claude / DeepSeek / 本地模型 / ...)
  2. MCP 工具 — 智能体可以调用的外部能力(查数据库 / 调 API / 控制浏览器 / ...)
  3. 技能分类 — 技能包的分组体系

普通用户在创建智能体时选用这些资源,但配置和维护由管理员完成。


2.5.1 AI 模型管理 [A]

路径:/ai-models权限:无特殊限制(默认所有组织内 admin 可见可改;部分部署收紧到 super_admin)

截图:AI 模型列表

列表表格

说明
名称用户起的别名 + 「默认」徽章(如有)
类型徽章:⚡ Auto / OpenAI / Claude / Azure OpenAI / DeepSeek / Qwen / Local / HuggingFace TEI / Custom
模型名称真实模型 ID,如 gpt-4-turboclaude-3-5-sonnet-20241022
状态启用 / 禁用
创建时间

行操作

按钮行为
🧪 测试AIModelTestDialog,发一个测试请求验证连通性
💰 定价AIModelPricingDialog,配置 input/output token 单价
🛡️ 熔断器盾牌图标 → 弹 CircuitBreakerStatusDialog,查看 closed/open/half_open 状态、近 60 秒滑动窗口(总数/失败/错误率),可「立即重置」
✏️ 编辑AIModelDialog 修改配置
🗑️ 删除二次确认 → 若被引用返回 409 → 强制删除选项

创建/编辑模型对话框

字段必填编辑时是否回显说明
名称用户起的别名,在智能体里下拉看到的就是这个
提供商⚡ Auto / OpenAI / Claude / Azure / DeepSeek / Qwen / Local / HuggingFace TEI / Custom
模型名称真实 model ID(auto 仅占位)
模型类型复选:LLM / EMBEDDING / VISION / RERANK(默认 LLM)
API Key创建时✓❌ 留空编辑时留空表示不变,填新值则覆盖(Local / Custom / Auto 不需要)
API Base URL自定义端点(Azure 必填;Local/TEI 有默认值,TEI 默认 http://reranker:80)
API VersionAzure 必填
输出维度(embedding_dimensions)仅勾了 EMBEDDING 时显示;如 1024 / 1536 / 2048 / 3072
温度默认温度 0~2(0.7)
最大令牌数默认 4096,范围 1~1,000,000
上下文窗口模型总 token 容量,默认 100000
超时(秒)默认 300
Top P0~1
频率惩罚 / 出现惩罚-2~2
自定义参数(extra_body)高级配置折叠区,JSON;Claude 不支持
配额限制(Quota)多条配额规则(范围/窗口/指标/上限/模式);TEI 模型不显示
启用是否激活
设为默认同一提供商内一个默认

Auto 路由:提供商选 auto 时,对话框隐藏上面的常规字段,只显示「智能调度规则(AutoRouting)」编辑器 —— 有序路由规则(condition→target_model_id)+ 必须含 catch-all + fallback_chain。详见 模型策略文档

截图:创建 AI 模型对话框

敏感字段处理

  • 创建时:API Key 必填,提交后后端加密存储,前端不回显
  • 编辑时:API Key 输入框留空表示不变;填新值则覆盖
  • 创建后会弹出 toast 提示:「API Key 已加密保存,如需查看请重新生成」

删除冲突

🚫 如果有智能体 / 编排器引用该模型,直接删返回 HTTP 409。弹冲突对话框列出引用方,提供「强制删除」选项 — 引用方下次执行会找不到模型并报错。


定价对话框 AIModelPricingDialog

截图:定价对话框

字段说明
Input 单价USD / 1M tokens(如 OpenAI 官方计价规则)
Output 单价USD / 1M tokens
币种USD / CNY(默认 USD)
生效日期默认今天,可指定未来某天起新价生效

定价用于 用量统计 的成本计算。没有定价 = 成本显示 0

测试对话框 AIModelTestDialog

发送一条测试 prompt(默认 "Hello"),看返回:

  • ✅ 成功:显示响应时间、原文
  • ❌ 失败:显示错误码 + 详细信息

2.5.2 MCP 工具管理 [A]

路径:/mcp-tools权限:同 AI 模型(默认 admin)

MCP(Model Context Protocol)= AI 的"动手能力"。比如查询数据库、调用外部 API、操作浏览器、读取文件,都是通过 MCP 工具实现。

页面 Tab 结构

整页分两个 Tab:

  • 已安装工具 — 当前组织已配置的工具列表
  • 工具市场 — 从公共 MCP Registry 浏览/安装新工具

Tab 1:已安装工具

截图:已安装 MCP 工具列表

表格列

说明
名称内部标识
显示名称UI 名称
类型徽章:manual / service / registry
状态启用 / 禁用
创建时间

行操作

按钮行为
🧪 测试联通性测试,返回工具能力清单
✏️ 编辑打开 MCPToolDialog
🗑️ 删除二次确认 + 引用冲突检查

顶部按钮

  • 「刷新」
  • 「批量测试」— 一键测试所有 Service 类型工具,toast 汇总成功/失败数
  • 「添加工具」— 弹 MCPToolDialog

MCPToolDialog(创建/编辑工具)

字段较多,按区块说明。

基本信息

字段必填说明
名称内部标识
显示名称UI 名称
描述给 AI 看 — 重要,决定 AI 何时调用
分类自定义分组

工具类型

类型含义必填字段
manual手动声明能力,无自动发现无额外
service远程 MCP Server,HTTP / stdio / SSE 协议服务地址、协议类型
registry从 MCP Registry(/Users/cjzhao/goworkspace/registry)安装已通过市场 Tab 安装

Service 类型字段

字段默认说明
服务地址-https://api.example.com/mcpstdio://path/to/binary
协议类型streamable-httpstreamable-http / stdio / sse
超时(秒)30
最大重试次数3
并发限制10
健康检查间隔(秒)300

认证配置

字段说明
认证类型none(无认证) / api_key(API 密钥) / bearer(Bearer 令牌) / basic(基础认证)
认证配置按类型变化:用户名/密码、token、key 名/值等

🔐 OAuth 2.0 / 个人身份 MCP(如 Notion、GitHub 等与个人身份绑定的服务)不在此处配置 —— 平台不托管用户的 OAuth token。这类 MCP 需在员工本地 sandrpod 里完成 OAuth 授权,由员工自己的沙箱持有凭证。

用户上下文透传(passUserContext)

字段说明
用户上下文透传逐工具开关,默认关。开启后,调用该 MCP Server 时透传 X-Sira-* 头(如 X-Sira-User-Id / X-Sira-Channel-User-Id),供 Server 端做 ACL / 审计。仅在信任该 Server 时开启

服务器配置

字段说明
自定义请求头key-value 对,可加多个
启用日志checkbox
日志级别DEBUG / INFO / WARN / ERROR

HITL 配置(Human In The Loop)

某些工具(如"发送邮件""执行 SQL")需要人工审批:

字段说明
需要审批checkbox
HITL 模式all(所有调用都审批) / whitelist(列表内审批) / blacklist(列表外审批)
工具列表当模式非 all 时,具体哪些子工具名

权限与可见性

字段说明
启用是否激活
公开是否对全组织可见
已验证系统标记;一般由市场安装的工具自动为 ✓
访问级别public / private / limited

元数据

字段说明
版本自填
作者
主页URL
标签逗号分隔
能力列表JSON 编辑,描述工具支持的子操作
Schema 定义JSON Schema,描述参数

测试 MCP 工具

测试对话框流程:

工具类型行为
ServicePOST /api/mcp-services/preview-test,透传配置
RegistryPOST /api/mcp-tools/{id}/test

返回:

  • success: 布尔
  • message: 文字说明
  • response_time: 毫秒
  • mcp_tools: 该 Server 提供的子工具清单
  • mcp_capabilities: 协议能力(streaming, resources, prompts 等)

删除冲突(同 AI 模型)

如果有智能体引用,弹冲突对话框,可选强制删除。


Tab 2:工具市场

截图:MCP 工具市场

搜索面板

  • 搜索框 + 搜索按钮(实时)
  • 版本筛选(可选)

市场卡片

每个卡片显示:

  • 服务器名 + 描述
  • 作者、最新版本、安装计数
  • 仓库链接按钮(点击复制 GitHub / GitLab URL 到剪贴板)
  • 详情按钮 → ServerDetailsDialog,展示完整信息
  • 安装按钮 → InstallServerDialog

安装对话框

字段说明
目标组织多租户场景下选目标组织;单组织默认本组织
初始参数部分工具需要 API Key 等初始化参数

确认后:工具被加入「已安装」Tab,类型为 registry


2.5.3 技能分类管理 [A]

路径:/admin/skill-categories权限:admin(非 admin 访问返回"权限不足")

控制普通用户在 技能包 列表里看到哪些分类下拉项,以及分类的中英文名、排序。

截图:技能分类管理

分类行

每行字段(grid 布局):

字段编辑性说明
Slug只读灰底代码框,如 quality_control
中文名✓ 内联编辑
English✓ 内联编辑可空
排序权重✓ 内联编辑数字,小数优先
在用数只读该分类下技能包数
系统标记-锁图标 + tooltip:「系统预置分类」

行操作

按钮行为
👁️ 切换可见visible ↔ hidden;隐藏后普通用户下拉看不到,但已绑定的 skill 仍显示分类名
💾 保存仅当行有未保存修改时显示
🗑️ 删除系统分类 disabled;有 skill 在用也 disabled,tooltip 解释原因

新建分类对话框

字段必填校验
Slug^[a-z][a-z0-9_]{2,49}$,创建后不可改
中文名
English
Iconlucide-react 图标名,如 ShieldCheck
排序权重默认 500,数字

页面底部使用说明卡片

  • slug 是 skill 存储的实际值,创建后不可改 — 想换语义只能新建再迁移
  • 系统预置分类不能删除,可隐藏
  • 有技能在用的分类不能删除,先把那些 skill 改到别的分类
  • sort_order 小数优先,置顶用 1~9

2.5.4 常见问题

Q1:加新的 AI 模型,普通用户看不到?

检查:

  1. 模型 is_active 是否启用
  2. 该模型所属组织是否匹配
  3. 用户浏览器缓存:刷新一次

Q2:MCP 工具能跨组织共享吗?

可以。在 MCPToolDialog 勾选「公开」即可全平台可见。但 API Key 等敏感字段仍按组织隔离 — 各组织各配各的凭证。

Q3:技能分类删不掉?

按下面顺序检查:

  1. 是不是系统预置(锁图标)→ 只能隐藏
  2. 是不是有技能包在用 → 先编辑那些技能包改分类,再删
  3. slug 是否冲突 → 这个不影响删除

Q4:模型定价改了之后,历史用量成本会重算吗?

不会。用量记录入库时已固化当时的成本计算结果。改定价只影响未来的调用。

Q5:MCP 工具的测试为什么有时假阳性(测试通过但实际不能用)?

测试只验证连通性 + 协议握手。具体业务调用(如查特定数据库表)需要在智能体里实际跑一遍才能确认。

Q6:能批量导入 AI 模型 / MCP 工具配置吗?

UI 不支持。运维可用后端 CLI:

bash
siracli model import models.yaml
siracli mcp-tool import tools.yaml

Apache-2.0 Licensed