跳到主要内容

配置 Agent(cloudbase-agent 模板)

用官方 cloudbase-agent 模板创建的 Agent,人设(system prompt)、模型、工具都通过配置项设置。本文说明配置放在哪、怎么改、怎么生效。

配置的四个来源

运行时按下面的顺序查找配置,命中即停止:

优先级来源适用场景
1AGENT_CONFIG / AGENT_CONFIG_B64 环境变量完整 JSON 配置,平台写入
2agent.yaml / agent.yml(工作目录或 /var/user/本地开发、代码里带完整配置
3AGENT_NAME / AGENT_MODEL / AGENT_SYSTEM 环境变量只改人设和模型
4内置默认值未做任何配置时

内置默认值:

name = open-managed-agent
model = hy3-preview
system = You are a helpful assistant.

控制台新建的 Agent 默认不带 agent.yaml,也不写 AGENT_CONFIG,因此走的是第 3、4 层——设置环境变量就能改人设,不需要改代码

只改人设和模型:设置环境变量

tcb agent update <agentId> \
-e <envId> \
--env "CLOUDBASE_ENV_ID=<envId>,CLOUDBASE_APIKEY=<环境 API Key>,AGENT_MODEL=deepseek-v4-pro,AGENT_SYSTEM=<URL 编码后的人设>"

改完立即生效,不需要重新部署代码。

有两个地方容易出错:

--env 是整体替换,不是追加。 命令里必须带上 Agent 原有的 CLOUDBASE_ENV_IDCLOUDBASE_APIKEY——控制台创建的 Agent 默认就带这两个。漏掉环境 ID,Agent 会直接报 toKernelAgentConfig: envId is required。执行前可以先查当前值:

tcb fn detail <agentId> -e <envId> --json

AGENT_SYSTEM 的值需要 URL 编码。 运行时会对它做一次 decodeURIComponent,直接填中文原文会解析异常:

node -e "console.log(encodeURIComponent('你是一位电商客服,只回答与订单和物流有关的问题。'))"

另外,默认模型 hy3-preview 需要环境已开通。未开通时调用会返回 AI_MODEL_NOT_SUPPORTED,显式设置 AGENT_MODEL 即可。可用模型见接入大模型

完整配置:agent.yaml

需要配置工具、MCP server、审批策略时,在代码根目录放一个 agent.yaml

name: my-agent
model: deepseek-v4-pro
system: |
你是一位电商客服。
只回答与订单、物流、退换货有关的问题,其他问题礼貌拒绝。
description: 电商客服 Agent

# 工具
tools:
# 内置工具(bash / read / write / edit / glob / grep)
- type: agent_toolset
default_config:
enabled: true
permission_policy:
type: always_ask # always_ask 触发人工审批;always_allow 直接执行
configs:
- name: bash
permission_policy:
type: always_ask

# 客户端自定义工具(由调用方执行并回传结果)
- type: custom
name: getClientInfo
description: 获取客户端用户信息
input_schema:
type: object
properties:
query:
type: string
required: [query]

# 引用下面声明的 MCP server
- type: mcp_toolset
mcp_server_name: my-mcp

mcp_servers:
- type: url
name: my-mcp
url: https://example.com/mcp

字段说明

字段必填说明
nameAgent 名称
model模型 ID 字符串;或 { id, apiKey, apiBaseUrl, options } 接入自带 endpoint 的模型
system系统提示词,即 Agent 的人设与行为约束
descriptionAgent 描述
tools工具配置,三种 typeagent_toolset(内置工具)、custom(客户端工具)、mcp_toolset(引用 MCP server)
mcp_serversMCP server 声明,{ type: url, name, url }
skillsSkill 列表,{ source }
metadata自定义键值对
sessions_collection会话存储的数据库集合名,默认 acp_sessions

内置工具名:bashreadwriteeditglobgrep

permission_policy.type 取值:always_ask(调用前触发人工审批)、always_allow(直接执行)。

字段名不要和 OAK SDK 混用

agent.yaml 用下划线命名,与直接调用 OAK SDK createAgent() 时的驼峰参数不是同一套:

agent.yamlcreateAgent()
systemsystemPrompt
mcp_serversmcpServers

写错的字段会被忽略且不报错,表现为配置"没生效"——人设会回落到默认的 You are a helpful assistant.。直接用 SDK 开发的写法见 OpenAgentKernel

欢迎语与开场问题

这两项属于界面展示数据,不建议写死在 Agent 配置里。推荐存到数据库的配置表、由前端读取渲染,改配置即时生效。做法见 OpenAgentKernel — 动态配置欢迎语与开场问题

相关文档