智能体管理
创建、配置和管理智能体 — 系统提示词、模型选择、工具配置、任务卡片和技能。
智能体管理
本文档面向使用 Tensor Agent 平台的开发人员,涵盖智能体从创建到配置的完整流程,包括系统提示词、模型选择、运行时模式、工具、任务卡片、技能、MCP Server、问候语、组织单元和权限管理。
智能体创建
通过 Dashboard 创建
在 Tensor Agent 管理面板中,点击 创建智能体 按钮,填写基本信息后即可创建。创建流程包括:
- 输入智能体 名称 和 描述
- 选择 运行时模式(LangGraph 或 Sandbox)
- 选择 模型提供商 和具体模型
- 编写 系统提示词
- 可选:配置工具、技能、任务卡片等
通过 API 创建
curl -X POST https://agent.tos.run/api/agents \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "客服助手",
"description": "处理客户常见问题",
"runtimeType": "langgraph",
"modelProvider": "openai",
"modelId": "gpt-4o",
"systemPrompt": "你是一个专业的客服助手...",
"greeting": "你好!有什么可以帮助你的?",
"tools": [],
"taskCards": [],
"skills": []
}'通过 YAML 模板导入
支持从 YAML 文件批量导入智能体配置,适用于跨环境迁移和版本管理:
curl -X POST https://agent.tos.run/api/agent-templates/import \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"variantId": "my-variant",
"yaml": "name: 客服助手\nruntimeType: langgraph\n..."
}'系统提示词配置
系统提示词(System Prompt)定义了智能体的行为准则和人格特征。Tensor Agent 将提示词拆分为两个维度:
| 字段 | 说明 | 示例 |
|---|---|---|
systemPrompt | 核心指令,定义智能体的能力边界和行为规范 | "你是一个外贸业务助手,负责帮助用户查询订单、管理客户..." |
personality | 人格描述,定义语气、风格和交互方式 | "语气友好专业,回答简洁明了,适当使用 emoji" |
{
"systemPrompt": "你是公司的智能客服助手。你的职责包括:\n1. 回答产品相关问题\n2. 帮助用户查询订单状态\n3. 处理退换货请求\n\n注意事项:\n- 不要泄露内部定价策略\n- 遇到无法处理的问题,引导用户联系人工客服",
"personality": "语气友好、耐心,回答专业且易懂。"
}组织单元(OrgUnit)可以设置 defaultSystemPrompt,该提示词会被继承到该单元下所有智能体。智能体自身的系统提示词会覆盖继承的默认值。
模型选择
支持的模型提供商
| 提供商 | modelProvider 值 | 说明 |
|---|---|---|
| OpenAI | openai | GPT-4o、GPT-4o-mini 等 |
| Anthropic | anthropic | Claude Sonnet、Claude Haiku 等 |
| Google Gemini | gemini | Gemini 2.0 Flash、Gemini 2.5 Pro 等 |
| Google Vertex AI | vertex | 通过 Vertex AI 访问 Gemini 模型 |
| DeepSeek | deepseek | DeepSeek-V3、DeepSeek-R1 等 |
| Kimi (月之暗面) | kimi | Moonshot 系列模型 |
| DashScope (通义千问) | dashscope | Qwen 系列模型 |
| 豆包 (字节跳动) | doubao | 豆包大模型 |
| 智谱 AI | zhipu | GLM 系列模型 |
| OpenRouter | openrouter | 统一网关,访问多家模型 |
配置模型凭证
模型凭证通过 凭证管理 功能统一管理,避免在智能体配置中明文存储 API Key。
- 进入管理面板 → 系统设置 → 凭证管理
- 点击 添加凭证,输入名称和 API Key 值
- 凭证存储后仅显示前缀(如
sk-a****),原始值不可再次查看
# 创建凭证
curl -X POST https://agent.tos.run/api/credentials \
-H "Authorization: Bearer <token>" \
-d '{
"name": "OPENAI_API_KEY",
"value": "sk-xxxxxxxxxxxxxxxx",
"description": "生产环境 OpenAI Key"
}'凭证管理需要 owner 或 admin 角色权限。
两种运行时模式
Tensor Agent 支持两种运行时模式,通过 runtimeType 字段指定。
LangGraph 模式
{ "runtimeType": "langgraph" }LangGraph 模式是内置的智能体运行时,基于 LangGraph 实现 reactive agent 模式:
- 工具调用 — 智能体根据对话上下文自动决定是否调用工具,支持多轮工具调用
- 流式输出 — 实时流式返回生成内容,支持 thinking、text、tool_call、chart 等多种消息类型
- 工作流编排 — 支持数据驱动的图(graph)定义,包含 LLM 节点、结构化输出节点、模板节点和条件路由
- 知识库集成 — 内置 RAG 检索,支持 vector、keyword、hybrid、graph 等多种检索模式
- 记忆管理 — 支持多种记忆类型(core、fact、preference、summary、note)
适用于大多数智能体场景,如客服、问答、数据分析等。
Sandbox 模式
{
"runtimeType": "sandbox",
"sandboxConfig": {
"sandboxTemplateId": "claude-code-template",
"model": "claude-sonnet-4-20250514",
"timeout": 300,
"env": {
"CUSTOM_VAR": "value"
}
}
}Sandbox 模式使用 E2B 兼容的沙箱环境(支持 PPIO、E2B、mvisor 三种提供商),在隔离容器中执行代码:
- 隔离执行 — 每个会话运行在独立沙箱中,互不干扰
- CLI Agent — 支持 claude-code、codex 等 CLI 工具作为底层 agent
- 文件注入 — 自动注入系统提示词、技能指令、记忆文件、MCP 配置到沙箱
- 模板系统 — 通过 Sandbox Template 定义沙箱镜像、CLI 命令、注入路径等
沙箱模板定义了运行环境的核心参数:
| 参数 | 说明 |
|---|---|
e2bTemplateId | 沙箱镜像 ID |
e2bProvider | 沙箱提供商(ppio、e2b、mvisor) |
agentCli | 执行的 CLI 命令(如 claude、codex) |
agentArgs | CLI 命令参数 |
injection.promptFile | 系统提示词注入路径 |
injection.skillsDir | 技能指令注入目录 |
injection.memoryFile | 记忆文件注入路径 |
injection.mcpConfigFile | MCP 配置注入路径 |
defaultTimeout | 默认超时时间(秒) |
工具配置
工具(Tool)让智能体能够与外部系统交互。Tensor Agent 支持三种工具类型:
工具类型
| 类型 | type 值 | 说明 |
|---|---|---|
| HTTP 工具 | http | 调用外部 HTTP API |
| 内置工具 | builtin | 平台内置功能(当前时间、计算器、天气、通知) |
| 数据库工具 | database | 直接查询数据库 |
内置工具
平台预置了以下内置工具,无需额外配置:
| 工具名 | 说明 |
|---|---|
current_time | 获取当前日期和时间 |
calculator | 计算数学表达式 |
get_weather | 查询城市实时天气 |
send_notification | 向用户发送应用内通知 |
添加 HTTP 工具
HTTP 工具通过 JSON Schema 定义输入参数,并配置 HTTP 端点:
{
"tools": [
{
"id": "tool_query_order",
"name": "query_order",
"description": "根据订单号查询订单详情",
"type": "http",
"inputSchema": {
"type": "object",
"properties": {
"orderId": {
"type": "string",
"description": "订单编号"
}
},
"required": ["orderId"]
},
"endpoint": {
"url": "https://api.example.com/orders/{orderId}",
"method": "GET",
"headers": {
"Authorization": "Bearer {{SERVICE_TOKEN}}"
}
}
}
]
}从 Integration 自动发现工具
当创建了 Integration 并配置了 OpenAPI Spec 后,平台可自动从 API 文档中发现并生成工具定义。工具的 integrationId 字段标识其来源:
{
"id": "tool_create_customer",
"name": "create_customer",
"description": "创建新客户",
"type": "http",
"integrationId": "integration_erp",
"openapiSource": {
"specUrl": "https://api.example.com/openapi.json",
"operationId": "createCustomer"
}
}端点配置
| 参数 | 说明 |
|---|---|
url | 请求 URL,支持路径参数模板 {param} |
method | HTTP 方法(GET、POST、PUT、PATCH、DELETE) |
headers | 请求头,支持 {{VAR}} 变量替换 |
bodyTemplate | 请求体模板 |
responseMapping | 响应字段映射表达式 |
queryParams | URL 查询参数 |
任务卡片
任务卡片(Task Card)是预设的快捷操作入口,显示在聊天界面中,用户点击即可触发对应操作。
{
"taskCards": [
{
"title": "查询今日订单",
"description": "查询今天所有新建的订单",
"prompt": "请帮我查询今天创建的所有订单,按金额从高到低排列",
"icon": "ShoppingCart"
},
{
"title": "生成周报",
"description": "根据本周数据生成业务周报",
"prompt": "请根据本周的业务数据生成一份周报,包括销售额、新客户数、订单完成率",
"icon": "FileText"
},
{
"title": "客户分析",
"description": "分析指定客户的历史交易",
"prompt": "请帮我分析当前客户的历史交易数据,给出趋势和建议",
"icon": "BarChart3"
}
]
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
title | string | 是 | 卡片标题 |
description | string | 是 | 卡片描述 |
prompt | string | 否 | 点击后发送给智能体的提示词 |
icon | string | 否 | 图标名称(Lucide icon) |
任务卡片也支持触发工具调用模式,在 trigger 中指定工具 ID 和预设输入。
技能系统
技能(Skill)是可复用的指令模板,定义了一组专业能力。技能可以挂载到智能体或组织单元上,实现能力的模块化组合。
技能结构
{
"id": "skill_frontend_dev",
"name": "前端开发助手",
"description": "React/TypeScript/CSS 专家",
"icon": "Code",
"category": "开发",
"keywords": ["react", "typescript", "前端"],
"instructions": "你是一名资深前端开发工程师,精通 React 18+...",
"tools": []
}| 字段 | 说明 |
|---|---|
name | 技能名称 |
description | 技能描述 |
instructions | 技能指令内容,会被注入到系统提示词中 |
icon | 图标名称 |
category | 分类标签 |
keywords | 关键词列表,用于自动匹配 |
tools | 技能自带的工具列表 |
技能来源类型
| 来源 | 说明 |
|---|---|
| Inline YAML | 直接在平台内编写 instructions 内容 |
| S3 上传 | 将技能文件上传到 S3 存储,通过 s3Key 引用 |
| NPX 包 | 通过 npm 包分发技能,指定 npmPackage 和 npmSkillName |
内置技能
平台预置了一组常用技能,可直接挂载使用:
- 前端开发助手 — React/TypeScript/CSS 专家
- 数据分析师 — Python/pandas/SQL 数据分析
- API 集成专家 — REST/GraphQL API 设计与集成
- 文档写作 — 技术文档和 API 文档撰写
- 代码审查 — 代码质量、安全性和性能审查
挂载技能到智能体
技能可以通过 ID 引用(引用已注册的技能)或内联完整配置:
{
"skills": [
"skill_frontend_dev",
"skill_data_analyst",
{
"id": "custom_skill",
"name": "自定义业务技能",
"description": "处理特定业务逻辑",
"instructions": "你了解我们公司的业务流程..."
}
]
}技能 API
# 列出所有技能(组织内 + 公开市场)
GET /api/skills
# 获取技能详情
GET /api/skills/:id
# 创建技能
POST /api/skills
# 更新技能
PATCH /api/skills/:id
# 删除技能
DELETE /api/skills/:idMCP Server 集成
通过 Model Context Protocol (MCP) 连接外部工具服务,让智能体调用 MCP Server 提供的工具。
配置 MCP Server
MCP Server 在组织级别注册,可分配给不同的智能体或组织单元使用:
{
"id": "mcp_github",
"orgId": "org-123",
"name": "GitHub MCP",
"serverKey": "github",
"config": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "{{GITHUB_TOKEN}}"
}
},
"enabled": true
}在智能体上启用 MCP Server
通过 mcpServers 字段引用已注册的 MCP Server,可按需启用或禁用:
{
"mcpServers": [
{
"serverKey": "github",
"config": {},
"enabled": true
},
{
"serverKey": "slack",
"config": {
"env": { "SLACK_TOKEN": "{{SLACK_BOT_TOKEN}}" }
},
"enabled": true
}
]
}MCP Server API
# 列出组织内所有 MCP Server
GET /api/mcp-servers
# 创建 MCP Server
POST /api/mcp-servers
# 更新 MCP Server
PATCH /api/mcp-servers/:id
# 删除 MCP Server
DELETE /api/mcp-servers/:id问候语
问候语(Greeting)是智能体在新会话开始时自动发送的初始消息,帮助用户了解智能体的能力和使用方式。
{
"greeting": "你好!我是你的业务助手,可以帮你:\n\n- 📊 查询和分析订单数据\n- 👥 管理客户信息\n- 📝 生成业务报告\n\n请问有什么需要帮助的?"
}如果未设置问候语,聊天界面会显示任务卡片作为初始引导。
组织单元
组织单元(OrgUnit)是树形组织结构,用于对智能体进行分组管理。支持默认提示词和技能的层级继承。
组织单元结构
根节点 (root)
├── 销售部
│ ├── 华东区
│ │ ├── 客服助手 (agent)
│ │ └── 销售分析 (agent)
│ └── 华南区
│ └── 客服助手 (agent)
└── 技术部
├── 代码审查助手 (agent)
└── 文档助手 (agent)默认提示词继承
组织单元可以设置 defaultSystemPrompt,该单元下的智能体会继承此提示词:
{
"name": "销售部",
"defaultSystemPrompt": "你是销售部门的 AI 助手,了解公司产品线和定价策略...",
"skills": ["skill_sales_expert"]
}技能继承
组织单元上配置的 skills 会被该单元下所有智能体继承,减少重复配置。
组织单元 API
# 获取组织树
GET /api/org-units/tree
# 创建组织单元
POST /api/org-units
{ "name": "华东区", "parentId": "unit-sales" }
# 更新组织单元
PATCH /api/org-units/:id
{ "defaultSystemPrompt": "...", "skills": ["skill_id_1"] }
# 删除组织单元
DELETE /api/org-units/:id分享与权限
Tensor Agent 使用三级权限模型控制智能体的访问权限。
权限等级
| 角色 | relation 值 | 权限说明 |
|---|---|---|
| Owner | owner | 完全控制权:编辑配置、管理分享、删除智能体 |
| Editor | editor | 编辑智能体配置(提示词、工具、技能等) |
| Viewer | viewer | 查看智能体信息,使用智能体进行对话 |
分享智能体
只有 Owner 可以管理分享设置:
# 查看智能体的分享列表
GET /api/agents/:id/shares
# 添加分享(授予权限)
POST /api/agents/:id/shares
{
"subjectId": "user-456",
"relation": "editor"
}
# 移除分享(撤销权限)
DELETE /api/agents/:id/shares
{
"subjectId": "user-456",
"relation": "editor"
}权限与操作对照
| 操作 | 所需权限 |
|---|---|
| 查看智能体列表 | viewer |
| 查看智能体详情 | viewer |
| 使用智能体对话 | viewer |
| 创建智能体 | 组织成员 |
| 修改智能体配置 | editor |
| 管理分享权限 | owner |
| 删除智能体 | owner |
| 管理凭证 | owner 或 admin |
智能体完整配置参考
以下是 Agent 对象的完整字段列表:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 智能体名称 |
description | string | 否 | 智能体描述 |
runtimeType | langgraph | sandbox | 是 | 运行时模式 |
modelProvider | string | 是 | 模型提供商 |
modelId | string | 否 | 具体模型 ID |
systemPrompt | string | 否 | 系统提示词 |
personality | string | 否 | 人格描述 |
greeting | string | 否 | 初始问候语 |
tools | AgentToolConfig[] | 否 | 工具列表 |
taskCards | AgentTaskCard[] | 否 | 任务卡片列表 |
skills | (string | SkillConfig)[] | 否 | 技能列表(ID 或完整配置) |
mcpServers | McpServerOverride[] | 否 | MCP Server 配置 |
knowledgeBases | AgentKnowledgeBase[] | 否 | 知识库绑定 |
memoryEnabled | boolean | 否 | 是否启用记忆功能 |
unitId | string | 否 | 所属组织单元 ID |
sandboxConfig | AgentSandboxConfig | 否 | Sandbox 模式配置(仅 sandbox 模式) |
CRUD API
# 列出智能体
GET /api/agents
# 获取智能体详情
GET /api/agents/:id
# 创建智能体
POST /api/agents
# 更新智能体
PATCH /api/agents/:id
# 删除智能体
DELETE /api/agents/:id