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) (
163 lines (162 loc) • 5.19 kB
TypeScript
import { TokenUsage } from "../types/agent";
import { PhaseType } from "./Phases";
export declare enum AgentEventName {
BEFORE_CONFIRM = "Before-confirm",
AFTER_CONFIRM = "After-confirm",
BEFORE_THINKPLAN = "Before-thinkplan",
AFTER_THINKPLAN = "After-thinkplan",
BEFORE_PLAN = "Before-plan",
AFTER_PLAN = "After-plan",
BEFORE_REACT = "Before-react",
AFTER_REACT = "After-react",
BEFORE_SUMMARY = "Before-summary",
AFTER_SUMMARY = "After-summary",
STATE_CHANGE = "StateChange",
UIEvent = "PushComponent",
UIResultEvent = "UIResultEvent",
LLMResponseEvent = "LLMResponseEvent",
STREAM_TOKEN = "stream-token",
STREAM_PARTIAL_RESPONSE = "stream-partial-response",
STREAM_PHASE_CHANGE = "stream-phase-change",
STREAM_TOOL_CALL_START = "stream-tool-call-start",
STREAM_TOOL_CALL_END = "stream-tool-call-end",
STREAM_ERROR = "stream-error",
STREAM_COMPLETE = "stream-complete",
KNOWLEDGE_ADDED = "knowledge-added",
KNOWLEDGE_REMOVED = "knowledge-removed",
KNOWLEDGE_UPDATED = "knowledge-updated",
KNOWLEDGE_APPLIED = "knowledge-applied",
KNOWLEDGE_CLEARED = "knowledge-cleared",
STOP_TOOL_CALL_EVENT = "stop-tool-call-event",
STOP_EVENT = "stop-event",
TOKEN_USAGE = "token-usage"
}
export interface LLMResponseEventPayload {
content: any;
streamId: string;
phase: PhaseType;
toolCalls?: Array<{
name: string;
arguments: Record<string, any>;
}>;
timestamp: number;
}
export interface PhaseEventPayload {
prompt?: string;
agentResponse?: any;
}
export interface ToolCallEventPayload {
toolcallId?: number | string;
timing: 'before' | 'after';
status?: 'success' | 'error' | 'pause' | 'skip' | 'reject' | 'stop';
system?: boolean;
toolType: string;
toolName: string;
arguments: Array<any>;
result?: any;
}
export interface StateEventPayload {
state: string;
}
export interface UIEventPayload {
id: string;
componentType: string;
data?: any;
waitForResult?: boolean;
timestamp: number;
message?: string;
}
export interface UIResultEventPayload {
pushEventId: string;
result: any;
timestamp: number;
}
export interface UICancelEventPayload {
pushEventId: string;
reason?: string;
timestamp: number;
}
export interface StreamTokenEventPayload {
token: string;
phase: string;
timestamp: number;
sessionId?: string;
id?: string;
}
export interface StreamPartialResponseEventPayload {
partialResponse: string;
phase: string;
timestamp: number;
sessionId?: string;
id?: string;
}
export interface StreamPhaseChangeEventPayload {
fromPhase?: string;
toPhase: string;
timestamp: number;
sessionId?: string;
}
export interface StreamToolCallStartEventPayload {
toolName: string;
phase: string;
timestamp: number;
sessionId?: string;
id?: string;
}
export interface StreamToolCallEndEventPayload {
toolName: string;
arguments: Record<string, any>;
result?: any;
phase: string;
timestamp: number;
sessionId?: string;
id?: string;
}
export interface StreamErrorEventPayload {
error: string;
phase: string;
timestamp: number;
sessionId?: string;
}
export interface StreamCompleteEventPayload {
phase: string;
finalResponse?: string;
timestamp: number;
sessionId?: string;
}
export interface KnowledgeEventPayload {
action: 'add' | 'remove' | 'update' | 'clear' | 'applied';
knowledgeId?: string;
knowledgeName?: string;
knowledgeIds?: string[];
itemCount?: number;
timestamp: number;
}
export interface StopToolCallEventPayload {
toolcallId: string;
}
export interface StopEventPayload {
reason: string;
}
export interface TokenUsageEventPayload {
tokenUsage: TokenUsage;
}
export type IPayload = LLMResponseEventPayload | PhaseEventPayload | ToolCallEventPayload | StateEventPayload | UIEventPayload | UIResultEventPayload | UICancelEventPayload | StreamTokenEventPayload | StreamPartialResponseEventPayload | StreamPhaseChangeEventPayload | StreamToolCallStartEventPayload | StreamToolCallEndEventPayload | StreamErrorEventPayload | StreamCompleteEventPayload | KnowledgeEventPayload | StopToolCallEventPayload | StopEventPayload | TokenUsageEventPayload;
export type EventType = 'PhaseEvent' | 'ToolCallEvent' | 'StateChangeEvent' | 'LLMResponseEvent' | 'UIEvent' | 'UIResultEvent' | 'StreamEvent' | 'KnowledgeEvent' | 'StopToolCallEvent' | 'StopEvent' | 'TokenUsageEvent';
export interface IAgentEvent {
type: EventType;
name: string;
payload: IPayload;
}
type EventListener = (event: IAgentEvent) => void;
export declare class EventHub {
private listeners;
private typeListeners;
register(eventName: string, listener: EventListener): void;
registerType(type: EventType, listener: EventListener): void;
emit(event: IAgentEvent): void;
unregister(eventName: string, listener: EventListener): void;
unregisterType(type: EventType, listener: EventListener): void;
emitStreamEvent(eventName: AgentEventName, payload: IPayload): void;
}
export {};