云托管部署
云托管(CloudBase Run)是部署 Agent 的推荐方式,支持长连接、自定义运行时、弹性扩缩容,适合复杂 Agent 和高并发场景。
前置条件
- 已开通云开发环境
- 已安装 Python 3.9+
- 已完成 Agent 开发
- 已安装 CloudBase CLI(可选,用于 CLI 部署)
代码示例
- JavaScript (LangChain)
- Python (CrewAI)
项目结构
my-agent/
├── index.js # 入口文件
├── package.json # 依赖配置
└── Dockerfile # 容器配置
入口文件
// index.js
const { LangchainAgent, createAgentServer } = require("@cloudbase/agent-adapter-langchain");
const { createReactAgent } = require("@langchain/langgraph/prebuilt");
const { ChatOpenAI } = require("@langchain/openai");
const { tool } = require("@langchain/core/tools");
const { z } = require("zod");
// 定义工具(可选)
const searchTool = tool(
async ({ query }) => {
return `搜索结果:关于 "${query}" 的相关信息...`;
},
{
name: "search",
description: "搜索信息",
schema: z.object({
query: z.string().describe("搜索关键词"),
}),
}
);
// 创建模型
const model = new ChatOpenAI({
model: process.env.TCB_AI_MODEL || "hunyuan-turbos-latest",
apiKey: process.env.TCB_API_KEY,
configuration: {
baseURL: `https://${process.env.TCB_ENV_ID}.api.tcloudbasegateway.com/v1/ai/hunyuan/v1`,
},
});
// 创建 ReAct Agent
const reactAgent = createReactAgent({
llm: model,
tools: [searchTool],
});
// 包装为云开发 Agent
const agent = new LangchainAgent({
name: "SearchAgent",
description: "智能搜索助手",
agent: reactAgent,
});
// 导出服务
module.exports = createAgentServer(agent);
依赖配置
{
"name": "my-agent",
"main": "index.js",
"dependencies": {
"@cloudbase/agent-adapter-langchain": "latest",
"@cloudbase/agent-server": "latest",
"@langchain/langgraph": "latest",
"@langchain/openai": "latest",
"@langchain/core": "latest",
"zod": "^3.22.0"
}
}
Dockerfile
FROM node:18-slim
WORKDIR /app
# 安装依赖
COPY package*.json ./
RUN npm install --production
# 复制代码
COPY . .
# 设置环境变量
ENV PORT=3000
EXPOSE 3000
# 启动命令
CMD ["node", "index.js"]
项目结构
my-agent/
├── main.py # 入口文件
├── requirements.txt # 依赖配置
└── Dockerfile # 容器配置
入口文件
# main.py
from cloudbase_agent.crewai import CrewAIAgent
from cloudbase_agent.server import create_agent_server
from crewai import Agent, Task, Crew
import os
# 创建 Agent
researcher = Agent(
role="研究员",
goal="深入研究给定主题",
backstory="你是一位经验丰富的研究员。",
verbose=True,
)
research_task = Task(
description="研究 {topic} 的最新发展",
expected_output="研究报告",
agent=researcher,
)
crew = Crew(
agents=[researcher],
tasks=[research_task],
verbose=True,
)
agent = CrewAIAgent(
name="ResearchAgent",
description="研究助手",
crew=crew,
)
app = create_agent_server(agent)
if __name__ == "__main__":
import uvicorn
port = int(os.environ.get("PORT", 3000))
uvicorn.run(app, host="0.0.0.0", port=port)
依赖配置
# requirements.txt
cloudbase-agent-crewai
cloudbase-agent-server
crewai
crewai-tools
uvicorn
langchain-openai
Dockerfile
FROM python:3.11-slim
WORKDIR /app
# 安装依赖
COPY requirements.txt ./
RUN pip install -r requirements.txt --no-cache-dir
# 复制代码
COPY . .
# 设置环境变量
ENV PORT=3000
EXPOSE 3000
# 启动命令
CMD ["python", "main.py"]
部署方式
方式一:控制台部署
- 进入 云开发控制台
- 选择「云托管」→「新建服务」
- 选择「本地代码」上传方式
- 上传项目代码包(包含 Dockerfile)
- 配置服务参数:
- 服务名称:自定义名称,如
my-agent - 访问类型:选择
WEB(公网访问) - CPU:根据需求选择,推荐 0.5-2 核
- 内存:CPU × 2,如 0.5 核对应 1GB
- 最小实例数:开发环境设为 0,生产环境设为 1
- 最大实例数:根据并发需求设置,推荐 5-20
- 服务名称:自定义名称,如
- 点击「确定」开始部署
方式二:CLI 部署
使用 CloudBase CLI 可以快速部署云托管服务:
# 安装 CLI(如未安装)
npm install -g @cloudbase/cli
# 登录云开发
tcb login
# 在项目目录下执行部署
tcb cloudrun deploy
CLI 会自动识别项目中的 Dockerfile,打包并部署到云托管。部署过程中会提示输入:
- 环境 ID
- 服务名称
- 访问类型等配置
配置说明
资源配置
| 配置项 | 说明 | 推荐值 |
|---|---|---|
| CPU | CPU 核数 | 0.5-2 |
| 内存 | 内存大小 | CPU × 2 |
| 最小实例数 | 最小运行实例 | 0(按需启动)或 1(避免冷启动) |
| 最大实例数 | 最大运行实例 | 5-20 |
tip
资源约束:内存 = 2 × CPU,例如 0.5 vCPU 对应 1GB 内存。
访问配置
| 访问类型 | 说明 | 适用场景 |
|---|---|---|
WEB | 公网访问 | Web 应用 |
VPC | VPC 内网访问 | 服务间调用 |
PRIVATE | 小程序内网直连 | 小程序 |
环境变量
在控制台「服务配置」中设置环境变量:
| 变量名 | 说明 |
|---|---|
TCB_ENV_ID | 云开发环境 ID |
TCB_API_KEY | API 密钥 |
TCB_AI_MODEL | 大模型名称,如 hunyuan-turbos-latest |
tip
云开发内置了腾讯混元和 DeepSeek 大模型,无需额外申请外部 API Key。支持的模型列表请参考 大模型配置指南。
本地调试
# 构建镜像
docker build -t my-agent .
# 运行容器
docker run -p 3000:3000 \
-e TCB_ENV_ID=your-env-id \
-e TCB_API_KEY=your-api-key \
-e TCB_AI_MODEL=hunyuan-turbos-latest \
my-agent
监控与运维
查看日志
通过云开发控制台查看服务日志:
- 进入「云托管」→ 选择对应服务
- 点击「日志」查看运行日志
性能监控
监控指标:
- 请求量
- 响应时间
- 错误率
- CPU/内存使用率
弹性扩缩容
云托管支持自动扩缩容:
- 根据请求量自动扩容
- 空闲时自动缩容到 0
- 可配置最小/最大实例数
最佳实践
资源配置
- 根据 Agent 复杂度配置 CPU/内存
- 生产环境设置最小实例数 >= 1 避免冷启动
访问控制
- 小程序优先使用 PRIVATE 内网直连
- Web 应用使用 WEB + SDK 鉴权
环境隔离
- 开发/测试/生产使用不同环境
- 敏感信息通过环境变量配置
镜像优化
- 使用精简基础镜像
- 分层构建减少镜像大小
- 优化依赖减少冷启动时间