开发函数型智能体
本文介绍如何基于云函数2.0开发、调试、并部署一个AI智能体。
以下为一个简单的 函数型AI智能体
示例代码:
const { BotRunner, BotCore } = require("@cloudbase/aiagent-framework");
const ANSWER = "你好,我是一个智能体,但我只会说这一句话。";
class MyBot extends BotCore {
async sendMessage() {
for (let i = 0; i < ANSWER.length; i++) {
// 发送消息给客户端
this.sseSender.send({ data: { content: ANSWER[i] } });
}
// 发送完毕
this.sseSender.end();
}
}
exports.main = (event, context) => BotRunner.run(event, context, new MyBot(context));
将以上代码复制到函数代码 index.js
文件中,并安装相关依赖,即可实现一个简单的函数型智能体。
实现 Agent
的关键在于实现 IBot
接口上定义好的方法。借助 BotCore
类,我们只需要几段代码即可完成实现:
将函数代码替换为以上代码。
以上代码实现了一个 MyBot
类,它有这几个特点:
- 继承自
BotCore
类,可以通过this.sseSender
获取到发送 SSE 响应的能力 - 实现了
IBot
接口,按照定义,我们最少需要实现sendMessage
方法。此处我们实现的 Agent 将永远返回一句固定的话
云开发智能体开发框架 @cloudbase/aiagent-framework
使用可以参考:https://www.npmjs.com/package/@cloudbase/aiagent-framework
本地开发调试智能体
- 使用
Node.js 18
以上的版本 - 安装 @cloudbase/functions-framework
npm install -g @cloudbase/functions-framework
安装完成后,可以输入以下命令进行验证:
tcb-ff -h
启动智能体服务
运行以下命令启动服务:
tcb-ff --enableCors=true -w
--enableCors=true
参数用于开启跨域-w
用于开启监听,当文件修改时会重新加载
调用智能体服务
命令行使用 cURL
访问
curl 'http://127.0.0.1:3000/v1/aibot/bots/ibot-myBot-botTag/send-message' \
-H 'Accept: text/event-stream' \
-H 'Content-Type: application/json' \
--data-raw '{"msg":"hi"}'
运行结果如下:

Web 使用 @cloudbase/js-sdk
访问
@cloudbase/js-sdk 提供了客户端接入 Agent 接口的方法,可前往 云开发文档 查看。
以下是个使用 @cloudbase/js-sdk 的 HTML 示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Test Agent</title>
</head>
<body>
<p id="result"></p>
</body>
<script src="//static.cloudbase.net/cloudbase-js-sdk/2.9.0/cloudbase.full.js"></script>
<script>
const p = document.getElementById("result");
async function main() {
const app = cloudbase.init({
env: "your-env-id", // 填入云开发环境 id
});
const auth = app.auth();
await auth.signInAnonymously();
const ai = await app.ai();
const res = await ai.bot.sendMessage({
botId: "ibot-myBot-botTag",
msg: "hi",
});
for await (let x of res.textStream) {
console.log(x);
p.innerText += x;
}
}
main();
</script>
</html>
本地启动一个服务器,以便能够通过浏览器访问这个 HTML 文件。我们还需要配置一定代理服务,以便能将请求访问到本地服务。以 whistle 举例,按照如下配置:
/.*.api.tcloudbasegateway.com/([^S]*)/ http://localhost:3000/$1
打开网页,查看调用结果:

云端开发调试智能体
Step.1: 创建函数型智能体
参考文档 https://docs.cloudbase.net/ai/cbrf-agent/quickstart 描述的流程,创建 函数型智能体。
创建完成后,可在智能体列表也查看到对应的智能体。
点击 在线开发 后可以进入在线开发页面,进行基于云函数2.0的智能体开发。
Step.2: 开发调试智能体代码
- 如何在云端开发调试部署智能体,可以参考文档:https://docs.cloudbase.net/cbrf/how-to-develop-online
- 如何使用
@cloudbase/aiagent-framework
框架可参考:https://www.npmjs.com/package/@cloudbase/aiagent-framework - 如何编写基于云函数2.0开发智能体代码,可以参考函数编写指南:https://docs.cloudbase.net/cbrf/how-to-writing-functions-code
更多示例代码可查看: