import { Tool } from '../types/index.js'; import { knowledgeBase } from './knowledge-base.js'; /** * search_knowledge — 在知识库中检索相关信息 */ export const searchKnowledgeTool: Tool = { name: 'search_knowledge', description: '在本地知识库中搜索与查询相关的文档片段。当你需要查找项目文档、技术说明、业务规则等存储在知识库中的信息时使用此工具。', parameters: { type: 'object', properties: { query: { type: 'string', description: '搜索关键词或问题,如"Agent 工具调用流程"、"如何创建子Agent"', }, }, required: ['query'], }, execute: async (args) => { const { query } = args; const results = knowledgeBase.search(query as string, 3); if (results.length === 0) { return `未找到与 "${query}" 相关的知识。当前知识库摘要:\n${knowledgeBase.summary()}`; } return results .map( (r, i) => `--- 结果 ${i + 1} (来源: ${r.source}) ---\n${r.content}`, ) .join('\n\n'); }, }; /** * list_knowledge — 列出知识库中所有文档和章节 */ export const listKnowledgeTool: Tool = { name: 'list_knowledge', description: '列出知识库中所有文档及其章节标题,用于了解知识库包含哪些内容。', parameters: { type: 'object', properties: {}, required: [], }, execute: async () => { return knowledgeBase.summary(); }, }; /** 知识库相关工具集 */ export const knowledgeTools: Tool[] = [searchKnowledgeTool, listKnowledgeTool];