跳到主要内容

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 文档

方式二:通过控制台部署

通过云开发控制台上传代码包进行部署:

  1. 进入云开发控制台
  2. 选择「云函数」
  3. 点击「新建云函数」
  4. 选择「HTTP 函数」类型
  5. 上传代码包或在线编辑代码

配置说明

环境变量

在云函数配置中设置环境变量:

变量名说明示例
TCB_ENV_ID云开发环境 IDyour-env-id
TCB_API_KEY云开发 API Keyak-xxx
TCB_AI_MODEL模型名称hunyuan-turbos-latest
TCB_AI_PROVIDER模型提供商(可选)hunyuandeepseek
提示

云开发内置了腾讯混元和 DeepSeek 大模型,无需额外申请外部 API Key。支持的模型列表请参考 大模型配置指南

超时配置

Agent 通常需要较长的执行时间,建议设置较大的超时时间:

  • 推荐超时时间:60-120 秒
  • 最大超时时间:900 秒(15 分钟)

内存配置

根据 Agent 复杂度配置内存:

场景推荐内存
简单对话256MB
带工具调用512MB
复杂工作流1024MB+

访问配置

部署完成后,有两种方式访问 Agent 服务:

方式一:通过 AI Agent 接入访问(推荐)

通过云开发控制台创建 AI Agent,关联已部署的云函数,获得统一的访问地址。

操作步骤

  1. 进入云开发控制台
  2. 选择「AI」
  3. 点击「创建 Agent」
  4. 选择「已有服务」
  5. 选择已部署的 HTTP 云函数
  6. 完成创建

访问地址

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 访问路径,适合自定义访问需求。

操作步骤

  1. 进入云开发控制台
  2. 选择「云函数」-「HTTP 访问」
  3. 点击「新建」
  4. 选择云函数并配置路径
  5. 设置鉴权方式

访问地址

https://<env-id>.<region>.app.tcloudbase.com/<path>

示例

https://my-env-xxx.ap-shanghai.app.tcloudbase.com/agent

鉴权配置

鉴权方式说明适用场景
无鉴权公开访问测试环境
云开发鉴权需要登录态生产环境
安全提示

生产环境强烈建议开启鉴权,避免接口被滥用。推荐使用方式一(AI Agent 接入),内置更完善的安全机制。

本地调试

在部署前,建议先在本地进行开发和调试。详细的本地开发指南请参考:

👉 本地开发文档

本地开发文档包含:

  • 获取项目代码(GitHub 模板 / 同步线上服务)
  • 安装依赖和配置环境变量
  • 启动本地服务
  • 使用 cURL 或代理进行调试
  • 常见问题解决

监控与日志

查看日志

通过云开发控制台查看函数日志:

  1. 进入云开发控制台
  2. 选择「云函数」-「日志」
  3. 选择对应的函数查看日志

性能监控

在控制台查看:

  • 调用次数
  • 平均耗时
  • 错误率
  • 内存使用

常见问题

1. 超时错误

问题:函数执行超时

解决

  • 增加超时时间配置
  • 优化 Agent 逻辑,减少不必要的 API 调用
  • 考虑使用云托管部署

2. 冷启动慢

问题:首次调用响应慢

解决

  • 减少依赖包大小
  • 使用预置并发
  • 优化初始化逻辑

3. 内存不足

问题:OOM 错误

解决

  • 增加内存配置
  • 优化内存使用
  • 避免加载大型模型

最佳实践

  1. 使用环境变量:敏感信息通过环境变量配置
  2. 设置合理超时:根据 Agent 复杂度设置超时时间
  3. 开启鉴权:生产环境必须开启鉴权
  4. 监控日志:定期检查日志和性能指标
  5. 错误处理:实现完善的错误处理逻辑

相关文档