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
TypeScript
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;
}