query_knowledge_base
Search indexed documents to find answers to questions using semantic similarity matching with configurable result limits and relevance thresholds.
Instructions
查询知识库
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | 查询问题 | |
| max_results | No | 最大返回结果数 | |
| threshold | No | 相似度阈值 |
Implementation Reference
- src/mcp-server.ts:188-216 (handler)MCP tool handler for 'query_knowledge_base' that extracts query parameters, invokes KnowledgeBase.query method, formats the response including question, answer, confidence score, and source snippets.case 'query_knowledge_base': { const { question, max_results, threshold } = args as { question: string; max_results?: number; threshold?: number; }; const response = await this.knowledgeBase.query({ question, maxResults: max_results, threshold }); let resultText = `问题: ${question}\n\n答案: ${response.answer}\n\n置信度: ${(response.confidence * 100).toFixed(1)}%\n\n来源:\n`; response.sources.forEach((source, index) => { resultText += `${index + 1}. ${source.document.title} (相似度: ${(source.score * 100).toFixed(1)}%)\n`; resultText += ` 片段: ${source.snippet}\n\n`; }); return { content: [ { type: 'text', text: resultText } ] }; }
- src/mcp-server.ts:74-97 (schema)Input schema definition for the 'query_knowledge_base' tool, specifying parameters for question, max_results, and threshold.{ name: 'query_knowledge_base', description: '查询知识库', inputSchema: { type: 'object', properties: { question: { type: 'string', description: '查询问题' }, max_results: { type: 'number', description: '最大返回结果数', default: 5 }, threshold: { type: 'number', description: '相似度阈值', default: 0.1 } }, required: ['question'] } },
- src/knowledge-base.ts:48-62 (helper)Core implementation of the knowledge base query logic, handling search, answer generation, and confidence calculation using private helper methods.async query(request: QueryRequest): Promise<QueryResponse> { const { question, maxResults = this.config.maxSearchResults, threshold = this.config.similarityThreshold } = request; // 简单的关键词搜索实现 const results = this.searchDocuments(question, maxResults, threshold); // 生成答案 const answer = this.generateAnswer(question, results); return { answer, sources: results, confidence: this.calculateConfidence(results) }; }