@shuttle-ai/client
v0.0.17
Published
Shuttle AI 客户端操作库
Downloads
1,786
Readme
@shuttle-ai/client
项目概述
@shuttle-ai/client 是 Shuttle AI 的客户端操作库,提供了与 Shuttle AI 服务交互的核心功能,包括代理管理、消息处理和工具调用等(仅在浏览器环境运行)。
安装
# 使用 npm
npm install @shuttle-ai/client
# 使用 yarn
yarn add @shuttle-ai/client
# 使用 pnpm
pnpm add @shuttle-ai/client核心功能
1. Work 类
Work 类是客户端的核心,负责管理工作流程,处理与服务器的通信,以及管理代理实例。
主要功能:
- 发起 AI 对话(
invoke方法) - 管理代理实例(
addAgent,getAgent方法) - 处理工作状态(
status属性) - 控制自动运行范围(
autoRunScope属性) - 停止工作流程(
stop方法)
2. Agent 类
Agent 类表示一个 AI 代理,负责处理消息、工具调用和子代理。
主要功能:
- 管理消息历史(
messages属性) - 处理 AI 消息和工具调用
- 管理子代理(
children属性) - 执行工具(
confirmTool方法) - 事件监听(
on方法)
3. Transporter
Transporter 负责与服务器的网络通信,包括发送请求和接收响应。
主要实现:
- HTTP Transporter:基于 axios 的 HTTP 通信实现
基本使用
创建 Work 实例
import { Work, HttpTransporter } from '@shuttle-ai/client'
// 创建 HTTP Transporter 实例
const transporter = new HttpTransporter({
baseURL: 'https://api.shuttle-ai.com',
// 其他 axios 配置
})
// 创建 Work 实例
const work = new Work({
transporter,
initAgent: (agentName) => {
// 根据代理名称返回代理配置
return {
tools: [
// 工具配置
],
}
},
autoRunScope: 'none', // 可选:'always', 'read', 'none'
})发起对话
// 发起对话
await work.invoke('你好,我需要帮助')
// 监听工作状态变化
work.on('status', () => {
console.log('工作状态:', work.status)
})
// 监听代理变化
work.on('agent', () => {
const rootAgent = work.getRootAgent()
if (rootAgent) {
// 监听代理消息
rootAgent.on('messages', (messages) => {
console.log('消息更新:', messages)
})
}
})处理工具调用
// 当代理需要工具调用时
rootAgent.on('toolMessage', (toolMessage) => {
if (!toolMessage.confirm) {
// 确认工具调用
rootAgent.confirmTool(toolMessage.id, {
type: 'confirm',
})
}
})API 文档
Work 类
构造函数
new Work(options: ShuttleAi.Client.Work.Options)参数:
options.transporter: Transporter 实例,用于与服务器通信options.initAgent: 初始化代理的函数或配置对象options.autoRunScope: 自动运行范围,可选值为 'always', 'read', 'none'
方法
invoke(prompt: string): 发起对话stop(): 停止工作流程revoke(workId: string): 撤销工作revokeAgent(agentId: string, agentName: string): 撤销代理on(type: ListenerType, cb: () => void): 监听事件getAgent(id: string): 获取代理实例getRootAgent(): 获取根代理实例setAutoRunScope(scope: ShuttleAi.Client.Work.AutoRunScope): 设置自动运行范围
Agent 类
构造函数
new Agent(options: ShuttleAi.Client.Agent.Options)参数:
options.id: 代理 IDoptions.name: 代理名称options.work: Work 实例options.status: 代理状态,可选值为 'idle', 'running', 'waitRevoke'options.history: 消息历史options.parentId: 父代理 IDoptions.tools: 工具配置
方法
addTools(tools?: ShuttleAi.Client.Agent.WithRunTool[]): 添加工具addChild(agent: Agent, belongMessageId: string): 添加子代理run(): 运行代理end(): 结束代理addChunk(chunk: ShuttleAi.Message.AIChunk): 添加 AI 消息片段addMessage(message: ShuttleAi.Message.Define): 添加消息revokeMessages(messages: ShuttleAi.Message.Define[]): 撤销消息addToolCall(aiTool: ShuttleAi.Message.AITool): 添加工具调用endTool(info: ShuttleAi.Ask.ToolEnd['data']): 结束工具调用confirmTool(toolId: string, confirmResult: ShuttleAi.Tool.ConfirmResult): 确认工具调用revoke(): 撤销代理on<K extends keyof ShuttleAi.Client.Agent.EventMap>(type: K, cb: (data: ShuttleAi.Client.Agent.EventMap[K]) => void): 监听事件
属性
children: 子代理数组messages: 消息数组status: 代理状态
依赖
@shuttle-ai/type: Shuttle AI 类型定义zod: 数据验证库axios: HTTP 客户端
许可证
MIT
