创建与编排 Agent
配置模型、提示词、变量、知识库、工具并发布 Agent
Agent Studio(/app/apps/{agent_id})在桌面端以双列布局显示编排区和实时预览:
- 左侧编排区(Orchestration Editor):配置模型、系统提示词、变量、知识库、工具与运行参数。
- 右侧即时预览面板(Live Preview Panel):在不离开页面或发布更改的情况下,与草稿 Agent 进行对话测试。
- 顶部操作栏:展示 Agent 元数据、发布状态(
草稿 / 已发布)、嵌入入口(Embed)与高级设置(Settings)。
手机端隐藏并排预览,避免压缩编排区。点击顶部工具栏的 预览,即可在全屏抽屉式面板中打开对话;关闭预览即可返回编辑。
当前团队必须已授权一个启用的 chat 模型。创建需要 agent:create;发布需要 agent:publish。
创建 Agent
- 前往应用,选择创建应用 > Agent。
- 填写名称(
1-100字符)与描述(最多500字符)。 - 选择所属团队。
- 进入 Agent Studio 编排页后选择右上角 Agent 设置,配置模型、开场消息、建议问题与可见性。
- 可见性默认为私有(仅创建者可访问),可切换为团队。
Prop
Type
最大迭代次数(Max Iterations) 是 Agent 的设置项 max_iterations:Agent 在一次回复里最多执行多少轮工具调用,默认 5,取值范围 1-200(后端校验)。设得过低会让复杂任务提前以 max_iterations_reached 结束;设得过高则可能在工具反复失败时消耗大量 Token。
Agent 不暴露逐采样参数(Temperature、Max Tokens、Top P、Frequency/Presence Penalty)。LLM 采样默认值配置在模型本身的 default_params 中。Agent 只配置 model_id、system_prompt、max_iterations、工具集和知识库关联。

编写提示词与变量
- 在提示词中明确角色、任务、约束、工具使用条件和失败处理。
- 输入
{打开变量选择器。{query}为当前用户消息。 - 在变量中添加用户输入字段。变量名最长
50字符;可配置显示名、必填、隐藏、默认值、选项、数值范围或最大长度。 - 在右侧预览中填入变量,确认替换结果。
配置知识库与 RAG
- 在知识库区域选择添加。
- 选择知识库以及
vector、fulltext或hybrid检索方式。 - 设置 Top K(
1-100,默认5)和阈值(0-1,默认0.3)。 - 可选启用**重排序(Rerank)**以提高召回精度。
- 设置整体 RAG 模式:关闭、自动(Auto) 或 智能体(Agentic)。
Prop
Type
知识库顺序通过 knowledge_base_configs 列表定义,编辑 Agent 时可调整排列顺序,该顺序在 Agent 检索上下文时生效。
未关联知识库时,后端会将持久化的 rag_mode 规范化为 off,编辑器也会隐藏 RAG 模式选择器;关联知识库后才显示该选择器。
添加工具和能力
在工具区域选择内置工具、自定义工具、MCP 或 Skill。
| 工具类型 | 说明 | 前置条件 |
|---|---|---|
| Web Search | 网络搜索,基于 Tavily | 工具配置中存储 TAVILY_API_KEY |
| Calculator | 数学计算 | 无 |
| Date/Time | 日期与时间查询 | 无 |
| Unit Converter | 单位换算 | 无 |
| Custom Tool | 自定义工具 | 先在能力中创建并测试 |
| MCP | Model Context Protocol 工具 | 先在能力中配置 |
| Skill | 预定义技能 | 无 |
工具显示"需要配置"时,先前往能力完成凭据。自定义工具先在能力中创建和测试,再按 Agent 启用。
Prop
Type
配置附件、媒体与记忆
启用附件、生图、生视频和跨会话记忆前,先在 Agent 编排中开启对应能力:
| 能力 | 配置路径 | 详细说明 |
|---|---|---|
| 附件 | 文件与图片 | 单文件 10MB(1KB-50MB),每条消息 5 个(1-10) |
| 生图 | 生图 | 默认 1024×1024(256-4096),单次最多 4 张(1-10) |
| 生视频 | 生视频 | 默认 5 秒(1-30 秒),宽高比 16:9 |
| 记忆 | 记忆 | 最大记忆数 10(1-50),自动提取默认开启 |
媒体生成只覆盖图片和视频两种(没有音频/TTS 生成能力)。生图与生视频都会把 generate_image / generate_video 工具注入模型,并调用团队已授权的对应模型;关闭开关后模型看不到这些工具。
关于上下文:长对话的压缩是单次摘要——请求超过触发预算时,把较早历史生成一条摘要替换掉,只保留最近一段原文;它只作用于当前会话,不等同于跨会话记忆。记忆是独立的实体/关系图谱,跨会话持久保存。
设置可见性与发布
- 选择私有或团队可见性。
- 选择发布。发布后状态变为
published,Agent 可接收消息。 - 发布后可打开公开页面、嵌入和访问 API。
public 可见性仅保留用于历史记录,新 Agent 应使用 private 或 team。
Agent 仅有 draft 和 published 两种状态。没有 active/inactive 或 archived 状态,也没有归档/恢复工作流。要让 Agent 停止使用,取消发布或删除(DELETE /api/v1/admin/agents/{agent_id})。

保存、调试与发布
- 选择保存。验证错误会列出具体字段。
- 在调试与预览发送覆盖正常和失败路径的问题。
- 有工具时验证工具参数、失败提示与最大迭代终止行为。
- 选择发布。
要隐藏助手消息下方的生成文件列表,请在 Agent 设置中开启隐藏产物列表。该设置默认关闭;开启后只隐藏列表,不会删除生成的文件。
监控与统计
每个 Agent 有独立的监控页(/app/apps/{agent_id}/monitor),在 Agent 侧边栏选择监控打开。页面按 24h、7d(默认)、30d 展示概览卡片、使用趋势、工具调用分布、执行健康度、首 Token 延迟和用户干预。
图表口径、成功率算法与限制见 Agent 监控看板。
底层数据来自三个只读端点(GET /api/v1/agents/{agent_id}/stats*,period: 24h、7d、30d、all):
| 指标 | 端点 | 说明 |
|---|---|---|
| 会话与消息数 | /stats | 总会话数、总消息数、活跃用户数 |
| Token 用量 | /stats | prompt_tokens、completion_tokens、total_tokens |
| 平均响应时间与首 Token 延迟 | /stats | 端到端平均耗时;首 Token 的 p50/p95/avg |
| 执行健康度与用户干预 | /stats | 运行结果分布、成功率与干预次数 |
| 工具调用 | /stats/tool-usage | 各工具调用次数统计 |
| 使用趋势 | /stats/trends | 按时间聚合的使用量变化 |
未实现/路线图:逐 Agent 成本拆分、首 Token 之外的请求级响应时间百分位、统计导出(CSV/PDF)、定时使用报告。运维层面也没有 Prometheus /metrics 端点。
API 端点
管理端点位于 /api/v1/admin/agents,需要 admin:app:* 权限。
// 列出所有 Agent(按状态、可见性、团队、创建者、关键词过滤)
const agents = await api.get("/api/v1/admin/agents", { params: { status: ["published"] } });
// 为团队创建 Agent
const agent = await api.post("/api/v1/admin/agents", {
name: "Support Agent",
team_id: "team-123",
model_id: "model-456", // TeamModel ID(团队授权的模型)
system_prompt: "You are a helpful assistant.",
rag_mode: "agentic"
});
// 更新 Agent(使用 PUT,不是 PATCH)
const updated = await api.put(`/api/v1/admin/agents/${agent_id}`, {
name: "Support Agent v2"
});
// 发布 / 取消发布 / 复制
await api.post(`/api/v1/admin/agents/${agent_id}/publish`);
await api.post(`/api/v1/admin/agents/${agent_id}/unpublish`);
await api.post(`/api/v1/admin/agents/${agent_id}/duplicate`);
// 获取 Agent 统计(period: 24h, 7d, 30d, all)
const stats = await api.get(`/api/v1/agents/${agent_id}/stats`, { params: { period: "30d" } });完整 API 请参阅 Agents API。
最佳实践
Agent 设计
-
✅ 编写清晰、具体的系统提示词
-
✅ 部署前充分测试
-
✅ 为任务选择合适的模型
-
✅ 启用 RAG 以提高事实准确性
-
✅ 通过统计端点监控使用量
-
✅ 收集用户反馈并迭代
-
❌ 使用模糊的系统提示词
-
❌ 部署未经测试的 Agent
-
❌ 简单任务使用昂贵模型
-
❌ 忽略错误率
-
❌ 不监控成本
性能
-
✅ 启用流式输出提升体验
-
✅ 优化知识库搜索
-
✅ 设置合理的超时时间
-
❌ 长任务使用同步处理
-
❌ 给 Agent 加载过多知识库
-
❌ 设置过高的
max_tokens
故障排查
Agent 无响应
- 检查 Agent 状态:确认已发布;检查模型可用性。
- 检查模型配置:验证 API 密钥有效;测试模型连通性;检查速率限制。
- 检查知识库:确认已索引;确认搜索正常。
- 检查审计日志:筛选资源类型为
agent且资源 ID 匹配的错误。
回复质量差
- 审查系统提示词:让指令更清晰;添加示例;设定边界。
- 改善知识库:添加相关文档;更新过时内容;优化分块策略。
- 启用 Agentic RAG:让 Agent 自主决定何时检索,提升事实准确性。
成本过高
- 审查用量:通过
GET /api/v1/agents/{agent_id}/stats查看 Token 用量和会话数,定位高用量 Agent。 - 优化提示词:缩短系统提示词;减少上下文长度;简单任务使用更便宜的模型。
未实现/路线图:逐 Agent Token 限制、每日用量上限、成本告警均不可用。使用量监控仅通过统计端点只读暴露。
常见问题
- 模型列表为空:团队未获对话模型授权,或模型已禁用。
- 工具未调用:检查模型函数调用能力、工具是否启用,以及提示词是否定义调用条件。
- 发布失败:确认拥有发布权限,且模型、变量引用和能力配置有效。
- 公开页无法访问:确认 Agent 已发布;私有/团队可见性仍受登录和团队访问控制影响。
限制与未实现功能
| 功能 | 状态 | 替代方案 |
|---|---|---|
| 逐 Agent 采样参数(Temperature 等) | 未实现 | 在模型 default_params 中配置 |
| 团队/Agent 资源限额 | 未实现 | 无配额门控 |
| Agent 模板库 | 未实现 | 使用复制(POST .../duplicate) |
| 批量编辑 | 未实现 | 单个 Agent 通过 PUT 更新 |
| 归档/恢复 | 未实现 | 取消发布或删除 |
| 成本拆分/请求级百分位 | 未实现 | 监控页提供首 Token 的 p50/p95 |
| 导入/导出 | 未实现 | 无 |
这篇文章对你有帮助吗?