HTTP 云函数部署
HTTP 云函数是部署 Agent 最快捷的方式,支持自动扩缩容、按量计费,适合轻量级 Agent 和低频调用场景。
前置条件
- 已开通云开发环境
- 已安装 Node.js 18+
- 已完成 Agent 开发
快速部署
1. 项目结构
my-agent/
├── index.js # 入口文件
├── agent.js # Agent 逻辑
└── package.json # 依赖配置
2. Agent 逻辑
// agent.js
const { createAgent: createLangchainAgent } = require("langchain");
const { MemorySaver } = require("@langchain/langgraph");
const { ChatOpenAI } = require("@langchain/openai");
const { clientTools } = require("@cloudbase/agent-adapter-langchain");
const checkpointer = new MemorySaver();
function createLcAgent() {
// 使用云开发内置的大模型端点
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`,
},
});
return createLangchainAgent({
model,
checkpointer,
middleware: [clientTools()],
});
}
module.exports = { createLcAgent };
3. 入口文件
// index.js
const { LangchainAgent } = require("@cloudbase/agent-adapter-langchain");
const { createExpressRoutes } = require("@cloudbase/agent-server");
const { createLcAgent } = require("./agent");
const express = require("express");
function createAgent() {
const lcAgent = createLcAgent();
return {
agent: new LangchainAgent({ agent: lcAgent }),
};
}
const app = express();
createExpressRoutes({ createAgent, express: app });
// 云函数入口
exports.main = app;
4. 依赖配置
{
"name": "my-agent",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"@cloudbase/agent-adapter-langchain": "latest",
"@cloudbase/agent-server": "latest",
"langchain": "latest",
"@langchain/openai": "latest",
"@langchain/langgraph": "latest",
"express": "latest"
}
}
5. 部署
方式一:使用 CLI 部署
前置条件:安装并登录 CloudBase CLI
# 安装 CLI
npm install -g @cloudbase/cli
# 登录
tcb login
部署命令:
# 在项目目录下执行
tcb fn deploy <functionName> --httpFn -e <env-id>
# 查看部署状态
tcb fn list -e <env-id>
CLI 部署优势
- 快速部署,无需手动打包上传
- 支持命令行自动化部署
- 可集成到 CI/CD 流程
- 详细的部署日志和错误提示
更多 CLI 命令和参数,请参考 CloudBase CLI 文档。
方式二:通过控制台部署
通过云开发控制台上传代码包进行部署:
- 进入云开发控制台
- 选择「云函数」
- 点击「新建云函数」
- 选择「HTTP 函数」类型
- 上传代码包或在线编辑代码
配置说明
环境变量
在云函数配置中设置环境变量:
| 变量名 | 说明 | 示例 |
|---|---|---|
TCB_ENV_ID | 云开发环境 ID | your-env-id |
TCB_API_KEY | 云开发 API Key | ak-xxx |
TCB_AI_MODEL | 模型名称 | hunyuan-turbos-latest |
TCB_AI_PROVIDER | 模型提供商(可选) | hunyuan 或 deepseek |
提示
云开发内置了腾讯混元和 DeepSeek 大模型,无需额外申请外部 API Key。支持的模型列表请参考 大模型配置指南。
超时配置
Agent 通常需要较长的执行时间,建议设置较大的超时时间:
- 推荐超时时间:60-120 秒
- 最大超时时间:900 秒(15 分钟)
内存配置
根据 Agent 复杂度配置内存:
| 场景 | 推荐内存 |
|---|---|
| 简单对话 | 256MB |
| 带工具调用 | 512MB |
| 复杂工作流 | 1024MB+ |
访问配置
部署完成后,有两种方式访问 Agent 服务:
方式一:通过 AI Agent 接入访问(推荐)
通过云开发控制台创建 AI Agent,关联已部署的云函数,获得统一的访问地址。
操作步骤:
- 进入云开发控制台
- 选择「AI」
- 点击「创建 Agent」
- 选择「已有服务」
- 选择已部署的 HTTP 云函数
- 完成创建
访问地址:
https://<env-id>.api.tcloudbasegateway.com/v1/aibot/bots/<agent-name>/send-message
示例:
curl 'https://<env-id>.api.tcloudbasegateway.com/v1/aibot/bots/<agent-name>/send-message' \
-H 'Content-Type: application/json' \
-H 'Accept: text/event-stream' \
--data-raw '{
"threadId": "550e8400-e29b-41d4-a716-446655440000",
"messages": [
{ "id": "msg-1", "role": "user", "content": "你好" }
],
"tools": [],
"context": [],
"state": {},
"forwardedProps": {}
}'
优势:
- ✅ 统一的访问地址格式
- ✅ 内置鉴权和访问控制
- ✅ 支持 Agent UI 可视化调试
- ✅ 自动集成监控和日志
方式二:通过 HTTP 访问配置
直接为云函数配置 HTTP 访问路径,适合自定义访问需求。
操作步骤:
- 进入云开发控制台
- 选择「云函数」-「HTTP 访问」
- 点击「新建」
- 选择云函数并配置路径
- 设置鉴权方式
访问地址:
https://<env-id>.<region>.app.tcloudbase.com/<path>
示例:
https://my-env-xxx.ap-shanghai.app.tcloudbase.com/agent
鉴权配置:
| 鉴权方式 | 说明 | 适用场景 |
|---|---|---|
| 无鉴权 | 公开访问 | 测试环境 |
| 云开发鉴权 | 需要登录态 | 生产环境 |
安全提示
生产环境强烈建议开启鉴权,避免接口被滥用。推荐使用方式一(AI Agent 接入),内置更完善的安全机制。
本地调试
在部署前,建议先在本地进行开发和调试。详细的本地开发指南请参考:
👉 本地开发文档
本地开发文档包含:
- 获取项目代码(GitHub 模板 / 同步线上服务)
- 安装依赖和配置环境变量
- 启动本地服务
- 使用 cURL 或代理进行调试
- 常见问题解决
监控与日志
查看日志
通过云开发控制台查看函数日志:
- 进入云开发控制台
- 选择「云函数」-「日志」
- 选择对应的函数查看日志
性能监控
在控制台查看:
- 调用次数
- 平均耗时
- 错误率
- 内存使用
常见问题
1. 超时错误
问题:函数执行超时
解决:
- 增加超时时间配置
- 优化 Agent 逻辑,减少不必要的 API 调用
- 考虑使用云托管部署
2. 冷启动慢
问题:首次调用响应慢
解决:
- 减少依赖包大小
- 使用预置并发
- 优化初始化逻辑
3. 内存不足
问题:OOM 错误
解决:
- 增加内存配置
- 优化内存使用
- 避免加载大型模型
最佳实践
- 使用环境变量:敏感信息通过环境变量配置
- 设置合理超时:根据 Agent 复杂度设置超时时间
- 开启鉴权:生产环境必须开启鉴权
- 监控日志:定期检查日志和性能指标
- 错误处理:实现完善的错误处理逻辑