跳到主要内容

ibot 介绍

什么是 ibot

AgentID 前缀是 "ibot-" 开头的 Agent,就是 ibot。

ibot 是基于 函数型云托管 实现的,开发者能够完全掌控业务逻辑,满足高度个性化的需求。在函数中,可以调用第三方模型、设计复杂的决策流程、使用开源的 Agent 开发框架,实现 Agent 的感知(Perception)规划(Planning)行动(Action) 等方面的能力,从而更好地实现个性化需求。

基于云函数开发一个 AI Agent ,是一个后端适配前端的过程,即,云函数中实现与前端约定好的 API 接口,即可实现与前端的适配对接。

云开发 Copilot就是基于 AI 的 Agent 构建能力搭建的

借助云开发提供的 AI Agent 开发框架 @cloudbase/aiagent-framework,仅需几行代码,即可快速实现一个基于 函数型云托管 的简单空白 Agent ,示例代码如下:

const { IBot } = require("@cloudbase/aiagent-framework");
const { BotRunner } = require("@cloudbase/aiagent-framework");

const ANSWER = "你好,我是一个 Agent ,但我只会说这一句话。";

/**
* @typedef {import('@cloudbase/aiagent-framework').IAbstractBot} IAbstractBot
*
* @class
* @implements {IAbstractBot}
*/
class MyBot extends IBot {
async sendMessage() {
return new Promise((res) => {
// 创建个字符数组
const charArr = ANSWER.split("");

const interval = setInterval(() => {
// 定时循环从数组中去一个字符
const char = charArr.shift();

if (typeof char === "string") {
// 有字符时,发送 SSE 消息给客户端
this.sseSender.send({ data: { content: char } });
} else {
// 字符用光后,结束定时循环
clearInterval(interval);
// 结束 SSE
this.sseSender.end();
res();
}
}, 50);
});
}
}

/**
* 类型完整定义请参考:https://docs.cloudbase.net/cbrf/how-to-writing-functions-code#%E5%AE%8C%E6%95%B4%E7%A4%BA%E4%BE%8B
* "{demo: string}"" 为 event 参数的示例类型声明,请根据实际情况进行修改
* 需要 `pnpm install` 安装依赖后类型提示才会生效
*
* @type {import('@cloudbase/functions-typings').TcbEventFunction<unknown>}
*/
exports.main = function (event, context) {
return BotRunner.run(event, context, new MyBot(context));
};