AG-UI Headless UI 接入
@cloudbase/agent-react-core 提供在 React 应用中接入 AG-Kit 对话能力所需的核心 API,可用于快速对接符合 AG-UI 协议的 AI Agent。
功能概览
- 聊天状态管理
- 消息发送与中止
- 会话线程切换
- 客户端工具注册
- 自定义 Tool Call 渲染
- 传输层接入
安装
npm install @cloudbase/agent-react-core
快速开始
推荐先使用 AgKit 初始化运行时,再在子组件中通过 useChat 读取 消息和发送内容。
import cloudbase from "@cloudbase/js-sdk";
import { AgKit, CloudBaseTransport, useChat } from "@cloudbase/agent-react-core";
const app = cloudbase.init({ env: "your-env-id" });
const transport = new CloudBaseTransport({
app,
agentId: "your-agent-id",
});
function ChatView() {
const { uiMessages, sendMessage, streaming, abort } = useChat();
return (
<div>
<button onClick={() => sendMessage("你好")}>发送</button>
<button onClick={abort} disabled={!streaming}>
停止
</button>
{uiMessages.map((message) => (
<div key={message.id}>
<strong>{message.role}:</strong> {message.content}
</div>
))}
</div>
);
}
export function App() {
return (
<AgKit transport={transport}>
<ChatView />
</AgKit>
);
}
API 参考
AgKit
AgKit 用于初始化聊天运行时,并向子组件提供上下文。
AgKitProps
| 选项 | 必填 | 类型 | 说明 |
|---|---|---|---|
transport | 是 | Transport | 传输层实例,负责把消息发送到后端并消费事件流 |
defaultThreadId | 否 | string | 首次初始化时使用的默认线程 ID,仅在运行时初始化时生效 |
instanceId | 否 | string | 多聊天实例场景下用于隔离状态的实例标识 |
children | 是 | React.ReactNode | 子组件 |
示例
<AgKit transport={transport} defaultThreadId="thread-001">
<ChatView />
</AgKit>
useChat
useChat 提供聊天过程中的核心状态和操作方法。