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

54 lines
1.6 KiB
TypeScript

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];