enum ToolPriority {
HIGH = 3, // 用户直接请求的工具
NORMAL = 2, // 常规工具
LOW = 1, // 后台任务
}
class PriorityQueue {
private queues = {
[ToolPriority.HIGH]: [],
[ToolPriority.NORMAL]: [],
[ToolPriority.LOW]: [],
};
enqueue(call: ToolCall, priority: ToolPriority): void {
this.queues[priority].push(call);
}
dequeue(): ToolCall | null {
// 优先执行高优先级任务
for (const priority of [ToolPriority.HIGH, ToolPriority.NORMAL, ToolPriority.LOW]) {
if (this.queues[priority].length > 0) {
return this.queues[priority].shift();
}
}
return null;
}
}