UNPKG

flux-agent

Version:

FluxAgent - 一个可灵活插拔的AI Agent系统框架,基于TypeScript开发,支持流式执行、事件系统、插件系统、知识库管理等功能 (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (

82 lines (81 loc) 2.11 kB
import { Tool } from './LLM'; import { Context } from './Context'; import { PhaseType } from './Phases'; import { EventHub } from './EventHub'; import { BaseTool, ToolExecutionResult } from './tools/BaseTool'; export interface ToolCallResult { type: 'success' | 'error' | 'skip' | 'reject' | 'pause'; data: any; error?: Error; } export interface ToolCallContext { phase: PhaseType; context: Context; waitingForUserInput: boolean; } /** * 工具管理器 - 负责处理所有工具调用相关的逻辑 */ export declare class ToolManager { private tools; private logger?; private eventHub?; constructor(tools?: BaseTool[], logger?: (message: string, data?: any) => void, eventHub?: EventHub); getToolsForPhase(phase: PhaseType): BaseTool[]; /** * 设置事件中心 */ setEventHub(eventHub: EventHub): void; /** * 注册工具 */ registerTool(tool: BaseTool): void; /** * 注册多个工具 */ registerTools(tools: BaseTool[]): void; /** * 获取工具定义(用于LLM) */ getToolDefinitions(): Tool[]; /** * 获取所有工具名称 */ getToolNames(): string[]; /** * 检查工具是否存在 */ hasTool(toolName: string): boolean; /** * 获取工具数量 */ getToolCount(): number; /** * 移除工具 */ removeTool(toolName: string): boolean; /** * 清空所有工具 */ clearTools(): void; /** * 记录日志 */ private log; /** * 执行工具调用 */ executeToolCall(toolcallId: string, toolName: string, args: Record<string, any>, context: Context, phase?: PhaseType): Promise<ToolExecutionResult>; /** * 创建停止运行工具调用Promise */ createStopToolCallPromise(toolcallId: string, tool: BaseTool): Promise<ToolExecutionResult>; /** * 触发工具事件 */ private emitToolEvent; /** * 判断工具调用是否应该触发阶段变更 */ shouldTriggerPhaseChange(toolName: string): boolean; }