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. 部署
通过云开发控制台上传代码包进行部署:
- 进入云开发控制台
- 选择「云函数」
- 点击「新建云函数」
- 选择「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+ |
HTTP 访问配置
创建 HTTP 访问
部署后需要创建 HTTP 访问才能通过 HTTP 调用:
- 进入云开发控制台
- 选择「云函数」-「HTTP 访问」
- 点击「新建」
- 配置路径和鉴权方式
访问地址
配置完成后,Agent 可通过以下地址访问:
https://{envId}.{region}.app.tcloudbase.com/{path}
例如:
https://my-env-xxx.ap-shanghai.app.tcloudbase.com/agent
鉴权配置
| 鉴权方式 | 说明 | 适用场景 |
|---|---|---|
| 无鉴权 | 公开访问 | 测试环境 |
| 云开发鉴权 | 需要登录态 | 生产环境 |
危险
生产环境强烈建议开启鉴权,避免接口被滥用。
本地调试
本地运行
# 安装依赖
npm install
# 设置环境变量
export TCB_ENV_ID=your-env-id
export TCB_API_KEY=your-api-key
export TCB_AI_MODEL=hunyuan-turbos-latest
# 运行
node -e "const app = require('./index').main; app.listen(3000, () => console.log('Running on http://localhost:3000'))"
测试请求
curl -X POST http://localhost:3000 \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"id": "1", "role": "user", "content": "你好"}
]
}'
监控与日志
查看日志
通过云开发控制台查看函数日志:
- 进入云开发控制台
- 选择「云函数」-「日志」
- 选择对应的函数查看日志
性能监控
在控制台查看:
- 调用次数
- 平均耗时
- 错误率
- 内存使用
常见问题
1. 超时错误
问题:函数执行超时
解决:
- 增加超时时间配置
- 优化 Agent 逻辑,减少不必要的 API 调用
- 考虑使用云托管部署
2. 冷启动慢
问题:首次调用响应慢
解决:
- 减少依赖包大小
- 使用预置并发
- 优化初始化逻辑
3. 内存不足
问题:OOM 错误
解决:
- 增加内存配置
- 优化内存使用
- 避免加载大型模型
最佳实践
- 使用环境变量:敏感信息通过环境变量配置
- 设置合理超时:根据 Agent 复杂度设置超时时间
- 开启鉴权:生产环境必须开启鉴权
- 监控日志:定期检查日志和性能指标
- 错误处理:实现完善的错误处理逻辑