2026-08-21 16:33:06 +08:00

36 lines
1.1 KiB
TypeScript

import { weatherTool } from './weather.js';
import { calculatorTool } from './calculator.js';
import { guessTool } from './guess.js';
import { Tool } from '../types/index.js';
import { subAgentTools } from '../agents/tools.js';
import { knowledgeTools } from '../knowledge/search-tool.js';
const baseTools: Tool[] = [weatherTool, calculatorTool, guessTool, ...knowledgeTools];
/** 所有工具(基础工具 + sub-agent 管理工具),供主 orchestrator Agent 使用 */
const allTools: Tool[] = [...baseTools, ...subAgentTools];
/** 返回基础工具列表(供子 Agent 使用,不含 sub-agent 管理工具以防递归) */
export function getTools(): Tool[] {
return baseTools;
}
/** 返回全部工具列表(供主 orchestrator Agent 使用) */
export function getOrchestratorTools(): Tool[] {
return allTools;
}
export function getOpenAITools() {
return baseTools.map((t) => ({
type: 'function' as const,
function: {
name: t.name,
description: t.description,
parameters: t.parameters,
},
}));
}
export function findTool(name: string): Tool | undefined {
return allTools.find((t) => t.name === name);
}