跳到主要内容

开发函数型智能体

本文介绍如何基于云函数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));

该代码示例也可参考模板:GithubGitee

将以上代码复制到函数代码 index.js 文件中,并安装相关依赖,即可实现一个简单的函数型智能体。

实现 Agent 的关键在于实现 IBot 接口上定义好的方法。借助 BotCore,我们只需要几段代码即可完成实现:

将函数代码替换为以上代码。

以上代码实现了一个 MyBot 类,它有这几个特点:

云开发智能体开发框架 @cloudbase/aiagent-framework 使用可以参考:https://www.npmjs.com/package/@cloudbase/aiagent-framework

本地开发调试智能体

  1. 使用 Node.js 18 以上的版本
  2. 安装 @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 描述的流程,创建 函数型智能体。

创建完成后,可在智能体列表也查看到对应的智能体。

cbrf-aiagent-detail

点击 在线开发 后可以进入在线开发页面,进行基于云函数2.0的智能体开发。

Step.2: 开发调试智能体代码

更多示例代码可查看:

  • 空白 Agent 示例 Github
  • 基于 DeepSeek Agent 示例 Github
  • 元器 Agent 示例 Github
  • 基于 Mastra Agent 示例 Github

参考文档