送给智者的礼物——天机:思维模型MCP Server

送给智者的礼物——天机:思维模型MCP Server

送给智者的礼物——天机:思维模型MCP Server 送给智者的礼物——天机:思维模型MCP Server Modified May 29, 2025 🌈 3. explain reasoning process 工具的编排: 这个工具是用户或AI助手与分步推理功能交互的主要接口。 a. 服务器接收到这些输入后,首先调用 createReasoningPath 来创建一个新的推理路径实例,并将 problemDescription 作为第一个起点。 b. 然后,它会遍历客户端传入的 reasoningSteps 数组。对于数组中的每一个元素(代表一个思考步骤),服务器会调用 addReasoningStep 函数,将这个步骤的细节(描述、模型ID、证据、置信度)添加到之前创建的推理路径中。 c. 在所有步骤都添加完毕后,调用 setReasoningConclusion 将最终结论记录到推理路径中。 d. 关联模型信息: 为了让推理过程更易懂,系统会收集所有在 reasoningSteps 中使用到的 modelIds 。然后,它会从内存中已加载的 MODELS[lang] 缓存里查找这些ID对应的完整思维模型信息(如名称、定义等)。 e. 格式化输出: f. 返回结果: 服务器最终会将格式化的文本、可视化数据以及原始的路径数据一起打包成JSON格式返回给客户端。 实现分步的核心在于: • 结构化数据: 将抽象的思考过程转化为定义明确的 ReasoningStep 和 ReasoningPath 对象。 • 逐步构建: 通过 addReasoningStep 这样的函数,允许推理路径被一步步地动态构建和扩展。 • 外部驱动: explain reasoning process 工具充当了编排者的角色,它根据客户端(通常是AI助手或用户的输入)提供的分步信息来调用 reasoning process.ts 中的函数,从而记录和组织这些步骤。AI助手本身在与用户交互时,可以根据用户的输入或自身的分析,将思考拆解成多个逻辑步骤,然后将这些步骤信息传递给“天机”服务器的这个工具。 • 元数据丰富: 记录每一步应用的思维模型ID和证据,使得每一步的思考都有迹可循,并且能够与具体的理论知识(思维模型)关联起来。 这个系统的“学习系统”是如何实现的?主要发挥什么作用呢? 🌈 “天机”系统的“学习系统”主要通过 src/learning capability.ts 文件来实现。它的核心作用是让“天机”服务器能够从用户的使用和反馈中学习,从而 动态地改进其性能,特别是思维模型的推荐准确性和相关性 。 以下是这个学习系统的主要实现方式和作用: 1. 核心数据结构与持久化存储: • UserFeedback (用户反馈): 定义了用户反馈的数据结构,包含反馈ID、时间戳、涉及的模型ID、使用场景( context )、反馈类型(如 helpful , not helpful )、评论、应用结果和改进建议等字段。 • KnowledgeGap (知识缺口): 定义了知识缺口的数据结构,包含缺口ID、描述、检测次数、相关查询、可能的标签、建议的相关模型以及创建和更新时间。 • ModelUsageStats (模型使用统计): 定义了每个模型的使用统计数据,包括模型ID、使用次数、平均有用性评分(基于正面和负面反馈计算)、正面反馈次数、负面反馈次数以及常见的应用场景摘要。 • LearningSystemState (学习系统状态): 这是一个顶层接口,整合了上述所有数据: userFeedbacks 数组、 knowledgeGaps 数组、一个将模型ID映射到其 ModelUsageStats 的记录(Record),以及最后更新时间戳。 • 持久化存储: ◦ 整个 LearningSystemState 对象被存储在项目根目录下的 data/learning state.json 文件中。 ◦ loadLearningSystemState() 函数负责在服务器启动时从该JSON文件加载状态到内存中的 systemState 变量。如果文件不存在或加载失败,会使用默认的空状态并尝试保存。 ◦ saveLearningSystemState() 函数负责将内存中的 systemState 写回JSON文件,通常在记录新反馈或更新统计信息后异步调用。 1. 学习系统的主要功能实现: • 记录用户反馈 ( recordUserFeedback 函数): ◦ 作用: 收集和处理用户对模型使用的反馈。 ◦ 实现: ◦ 此功能通过 thinking models server.ts 中的 record user feedback 工具暴露给客户端。 a. 接收模型ID、应用上下文、反馈类型等参数。 b. 创建一个新的 UserFeedback 对象,并将其添加到 systemState.userFeedbacks 数组中。 c. 更新相关模型的 ModelUsageStats :增加使用次数;根据反馈类型(如有帮助/有见解 vs. 无帮助/不正确/令人困惑)更新正面或负面反馈计数;重新计算平均有用性 ( positiveCount / (positiveCount + negativeCount) )。 d. 记录使用上下文的摘要(前100个字符)到模型的 commonContexts 列表,并保留最近的5个。 e. 如果反馈类型表明模型可能不适用或有问题(如 not helpful , incorrect , confusing ),则会调用 detectKnowledgeGap 函数。 f. 异步调用 saveLearningSystemState() 保存更新后的状态。 • 检测知识缺口 ( detectKnowledgeGap 函数): 🌈 3. explain reasoning process 工具的编排: 这个工具是用户或AI助手与分步推理功能交互的主要接口。 a. 服务器接收到这些输入后,首先调用 createReasoningPath 来创建一个新的推理路径实例,并将 problemDescription 作为第一个起点。 b. 然后,它会遍历客户端传入的 reasoningSteps 数组。对于数组中的每一个元素(代表一个思考步骤),服务器会调用 addReasoningStep 函数,将这个步骤的细节(描述、模型ID、证据、置信度)添加到之前创建的推理路径中。 c. 在所有步骤都添加完毕后,调用 setReasoningConclusion 将最终结论记录到推理路径中。 d. 关联模型信息: 为了让推理过程更易懂,系统会收集所有在 reasoningSteps 中使用到的 modelIds 。然后,它会从内存中已加载的 MODELS[lang] 缓存里查找这些ID对应的完整思维模型信息(如名称、定义等)。 e. 格式化输出: f. 返回结果: 服务器最终会将格式化的文本、可视化数据以及原始的路径数据一起打包成JSON格式返回给客户端。 实现分步的核心在于: • 结构化数据: 将抽象的思考过程转化为定义明确的 ReasoningStep 和 ReasoningPath 对象。 • 逐步构建: 通过 addReasoningStep 这样的函数,允许推理路径被一步步地动态构建和扩展。 • 外部驱动: explain reasoning process 工具充当了编排者的角色,它根据客户端(通常是AI助手或用户的输入)提供的分步信息来调用 reasoning process.ts 中的函数,从而记录和组织这些步骤。AI助手本身在与用户交互时,可以根据用户的输入或自身的分析,将思考拆解成多个逻辑步骤,然后将这些步骤信息传递给“天机”服务器的这个工具。 • 元数据丰富: 记录每一步应用的思维模型ID和证据,使得每一步的思考都有迹可循,并且能够与具体的理论知识(思维模型)关联起来。 3. explain reasoning process 工具的编排: 这个工具是用户或AI助手与分步推理功能交互的主要接口。 a. 服务器接收到这些输入后,首先调用 createReasoningPath 来创建一个新的推理路径实例,并将 problemDescription 作为第一个起点。 b. 然后,它会遍历客户端传入的 reasoningSteps 数组。对于数组中的每一个元素(代表一个思考步骤),服务器会调用 addReasoningStep 函数,将这个步骤的细节(描述、模型ID、证据、置信度)添加到之前创建的推理路径中。 c. 在所有步骤都添加完毕后,调用 setReasoningConclusion 将最终结论记录到推理路径中。 d. 关联模型信息: 为了让推理过程更易懂,系统会收集所有在 reasoningSteps 中使用到的 modelIds 。然后,它会从内存中已加载的 MODELS[lang] 缓存里查找这些ID对应的完整思维模型信息(如名称、定义等)。 e. 格式化输出: f. 返回结果: 服务器最终会将格式化的文本、可视化数据以及原始的路径数据一起打包成JSON格式返回给客户端。 a. 服务器接收到这些输入后,首先调用 createReasoningPath 来创建一个新的推理路径实例,并将 problemDescription 作为第一个起点。 b. 然后,它会遍历客户端传入的 reasoningSteps 数组。对于数组中的每一个元素(代表一个思考步骤),服务器会调用 addReasoningStep 函数,将这个步骤的细节(描述、模型ID、证据、置信度)添加到之前创建的推理路径中。 c. 在所有步骤都添加完毕后,调用 setReasoningConclusion 将最终结论记录到推理路径中。 d. 关联模型信息: 为了让推理过程更易懂,系统会收集所有在 reasoningSteps 中使用到的 modelIds 。然后,它会从内存中已加载的 MODELS[lang] 缓存里查找这些ID对应的完整思维模型信息(如名称、定义等)。 e. 格式化输出: f. 返回结果: 服务器最终会将格式化的文本、可视化数据以及原始的路径数据一起打包成JSON格式返回给客户端。 实现分步的核心在于: • 结构化数据: 将抽象的思考过程转化为定义明确的 ReasoningStep 和 ReasoningPath 对象。 • 逐步构建: 通过 addReasoningStep 这样的函数,允许推理路径被一步步地动态构建和扩展。 • 外部驱动: explain reasoning process 工具充当了编排者的角色,它根据客户端(通常是AI助手或用户的输入)提供的分步信息来调用 reasoning process.ts 中的函数,从而记录和组织这些步骤。AI助手本身在与用户交互时,可以根据用户的输入或自身的分析,将思考拆解成多个逻辑步骤,然后将这些步骤信息传递给“天机”服务器的这个工具。 • 元数据丰富: 记录每一步应用的思维模型ID和证据,使得每一步的思考都有迹可循,并且能够与具体的理论知识(思维模型)关联起来。 这个系统的“学习系统”是如何实现的?主要发挥什么作用呢? 🌈 “天机”系统的“学习系统”主要通过 src/learning capability.ts 文件来实现。它的核心作用是让“天机”服务器能够从用户的使用和反馈中学习,从而 动态地改进其性能,特别是思维模型的推荐准确性和相关性 。 以下是这个学习系统的主要实现方式和作用: 1. 核心数据结构与持久化存储: • UserFeedback (用户反馈): 定义了用户反馈的数据结构,包含反馈ID、时间戳、涉及的模型ID、使用场景( context )、反馈类型(如 helpful , not helpful )、评论、应用结果和改进建议等字段。 • KnowledgeGap (知识缺口): 定义了知识缺口的数据结构,包含缺口ID、描述、检测次数、相关查询、可能的标签、建议的相关模型以及创建和更新时间。 • ModelUsageStats (模型使用统计): 定义了每个模型的使用统计数据,包括模型ID、使用次数、平均有用性评分(基于正面和负面反馈计算)、正面反馈次数、负面反馈次数以及常见的应用场景摘要。 • LearningSystemState (学习系统状态): 这是一个顶层接口,整合了上述所有数据: userFeedbacks 数组、 knowledgeGaps 数组、一个将模型ID映射到其 ModelUsageStats 的记录(Record),以及最后更新时间戳。 • 持久化存储: ◦ 整个 LearningSystemState 对象被存储在项目根目录下的 data/learning state.json 文件中。 ◦ loadLearningSystemState() 函数负责在服务器启动时从该JSON文件加载状态到内存中的 systemState 变量。如果文件不存在或加载失败,会使用默认的空状态并尝试保存。 ◦ saveLearningSystemState() 函数负责将内存中的 systemState 写回JSON文件,通常在记录新反馈或更新统计信息后异步调用。 1. 学习系统的主要功能实现: • 记录用户反馈 ( recordUserFeedback 函数): ◦ 作用: 收集和处理用户对模型使用的反馈。 ◦ 实现: ◦ 此功能通过 thinking models server.ts 中的 record user feedback 工具暴露给客户端。 a. 接收模型ID、应用上下文、反馈类型等参数。 b. 创建一个新的 UserFeedback 对象,并将其添加到 systemState.userFeedbacks 数组中。 c. 更新相关模型的 ModelUsageStats :增加使用次数;根据反馈类型(如有帮助/有见解 vs. 无帮助/不正确/令人困惑)更新正面或负面反馈计数;重新计算平均有用性 ( positiveCount / (positiveCount + negativeCount) )。 d. 记录使用上下文的摘要(前100个字符)到模型的 commonContexts 列表,并保留最近的5个。 e. 如果反馈类型表明模型可能不适用或有问题(如 not helpful , incorrect , confusing ),则会调用 detectKnowledgeGap 函数。 f. 异步调用 saveLearningSystemState() 保存更新后的状态。 • 检测知识缺口 ( detectKnowledgeGap 函数): “天机”系统的“学习系统”主要通过 src/learning capability.ts 文件来实现。它的核心作用是让“天机”服务器能够从用户的使用和反馈中学习,从而 动态地改进其性能,特别是思维模型的推荐准确性和相关性 。 以下是这个学习系统的主要实现方式和作用: 1. 核心数据结构与持久化存储: • UserFeedback (用户反馈): 定义了用户反馈的数据结构,包含反馈ID、时间戳、涉及的模型ID、使用场景( context )、反馈类型(如 helpful , not helpful )、评论、应用结果和改进建议等字段。 • KnowledgeGap (知识缺口): 定义了知识缺口的数据结构,包含缺口ID、描述、检测次数、相关查询、可能的标签、建议的相关模型以及创建和更新时间。 • ModelUsageStats (模型使用统计): 定义了每个模型的使用统计数据,包括模型ID、使用次数、平均有用性评分(基于正面和负面反馈计算)、正面反馈次数、负面反馈次数以及常见的应用场景摘要。 • LearningSystemState (学习系统状态): 这是一个顶层接口,整合了上述所有数据: userFeedbacks 数组、 knowledgeGaps 数组、一个将模型ID映射到其 ModelUsageStats 的记录(Record),以及最后更新时间戳。 • 持久化存储: ◦ 整个 LearningSystemState 对象被存储在项目根目录下的 data/learning state.json 文件中。 ◦ loadLearningSystemState() 函数负责在服务器启动时从该JSON文件加载状态到内存中的 systemState 变量。如果文件不存在或加载失败,会使用默认的空状态并尝试保存。 ◦ saveLearningSystemState() 函数负责将内存中的 systemState 写回JSON文件,通常在记录新反馈或更新统计信息后异步调用。 ◦ 整个 LearningSystemState 对象被存储在项目根目录下的 data/learning state.json 文件中。 ◦ loadLearningSystemState() 函数负责在服务器启动时从该JSON文件加载状态到内存中的 systemState 变量。如果文件不存在或加载失败,会使用默认的空状态并尝试保存。 ◦ saveLearningSystemState() 函数负责将内存中的 systemState 写回JSON文件,通常在记录新反馈或更新统计信息后异步调用。 1. 学习系统的主要功能实现: • 记录用户反馈 ( recordUserFeedback 函数): ◦ 作用: 收集和处理用户对模型使用的反馈。 ◦ 实现: ◦ 此功能通过 thinking models server.ts 中的 record user feedback 工具暴露给客户端。 a. 接收模型ID、应用上下文、反馈类型等参数。 b. 创建一个新的 UserFeedback 对象,并将其添加到 systemState.userFeedbacks 数组中。 c. 更新相关模型的 ModelUsageStats :增加使用次数;根据反馈类型(如有帮助/有见解 vs. 无帮助/不正确/令人困惑)更新正面或负面反馈计数;重新计算平均有用性 ( positiveCount / (positiveCount + negativeCount) )。 d. 记录使用上下文的摘要(前100个字符)到模型的 commonContexts 列表,并保留最近的5个。 e. 如果反馈类型表明模型可能不适用或有问题(如 not helpful , incorrect , confusing ),则会调用 detectKnowledgeGap 函数。 f. 异步调用 saveLearningSystemState() 保存更新后的状态。 ◦ 作用: 收集和处理用户对模型使用的反馈。 ◦ 实现: ◦ 此功能通过 thinking models server.ts 中的 record user feedback 工具暴露给客户端。 a. 接收模型ID、应用上下文、反馈类型等参数。 b. 创建一个新的 UserFeedback 对象,并将其添加到 systemState.userFeedbacks 数组中。 c. 更新相关模型的 ModelUsageStats :增加使用次数;根据反馈类型(如有帮助/有见解 vs. 无帮助/不正确/令人困惑)更新正面或负面反馈计数;重新计算平均有用性 ( positiveCount / (positiveCount + negativeCount) )。 d. 记录使用上下文的摘要(前100个字符)到模型的 commonContexts 列表,并保留最近的5个。 e. 如果反馈类型表明模型可能不适用或有问题(如 not helpful , incorrect , confusing ),则会调用 detectKnowledgeGap 函数。 f. 异步调用 saveLearningSystemState() 保存更新后的状态。 • 检测知识缺口 ( detectKnowledgeGap 函数): e. 如果找到相似的现有缺口,则增加其 detectionCount ,更新时间戳,并将当前查询添加到其 relatedQueries 列表中。 f. 如果未找到相似缺口,则创建一个新的 KnowledgeGap 对象,记录查询本身作为描述,并提取查询中的长词作为 possibleTags 。 g. 异步调用 saveLearningSystemState() 。 • 获取模型使用统计 ( getModelUsageStats 函数): ◦ 作用: 提供特定模型的使用数据。 ◦ 实现: 直接从 systemState.modelUsageStats 中查找并返回指定 modelId 的统计对象。 ◦ 此功能通过 thinking models server.ts 中的 get model usage stats 工具暴露。该工具还会结合调用 getModelFeedbackHistory 来丰富返回信息。 ◦ 作用: 提供特定模型的使用数据。 ◦ 实现: 直接从 systemState.modelUsageStats 中查找并返回指定 modelId 的统计对象。 ◦ 此功能通过 thinking models server.ts 中的 get model usage stats 工具暴露。该工具还会结合调用 getModelFeedbackHistory 来丰富返回信息。 • 获取知识缺口列表 ( getKnowledgeGaps 函数): ◦ 作用: 返回系统中记录的知识缺口,按检测次数排序。 ◦ 实现: 对 systemState.knowledgeGaps 数组进行排序和切片。 ◦ 此功能主要被 analyze learning system 工具使用。 ◦ 作用: 返回系统中记录的知识缺口,按检测次数排序。 ◦ 实现: 对 systemState.knowledgeGaps 数组进行排序和切片。 ◦ 此功能主要被 analyze learning system 工具使用。 • 获取模型反馈历史 ( getModelFeedbackHistory 函数): ◦ 作用: 检索特定模型的所有用户反馈记录。 ◦ 实现: 过滤 systemState.userFeedbacks 数组,找出包含指定 modelId 的反馈。 ◦ 作用: 检索特定模型的所有用户反馈记录。 ◦ 实现: 过滤 systemState.userFeedbacks 数组,找出包含指定 modelId 的反馈。 • 分析模型使用模式 ( analyzeModelUsage 函数): ◦ 作用: 对整个学习系统的数据进行宏观分析,生成洞察。 ◦ 实现: ◦ 此功能通过 thinking models server.ts 中的 analyze learning system 工具暴露。 a. 汇总所有模型的 ModelUsageStats 。 b. 找出最常用的模型(按 usageCount 排序)。 c. 找出最有效的模型(按 averageHelpfulness 排序,且使用次数达到一定阈值,如3次)。 d. 找出可能有问题的模型(负面反馈较多且使用次数达到阈值)。 e. 返回包含这些分析结果以及反馈总数、知识缺口总数等统计信息的对象。 ◦ 作用: 对整个学习系统的数据进行宏观分析,生成洞察。 ◦ 实现: ◦ 此功能通过 thinking models server.ts 中的 analyze learning system 工具暴露。 a. 汇总所有模型的 ModelUsageStats 。 b. 找出最常用的模型(按 usageCount 排序)。 c. 找出最有效的模型(按 averageHelpfulness 排序,且使用次数达到一定阈值,如3次)。 d. 找出可能有问题的模型(负面反馈较多且使用次数达到阈值)。 e. 返回包含这些分析结果以及反馈总数、知识缺口总数等统计信息的对象。 • 基于学习调整模型推荐 ( adjustModelRecommendations 函数): ◦ 根据历史有效性调整分数:如果模型的 averageHelpfulness 较高(例如 0.7),则推荐分数会乘以一个增益因子(例如1.2);如果较低(例如 < 0.3),则乘以一个衰减因子(例如0.8)。 ◦ 检查当前查询上下文与模型 commonContexts 中的常见使用场景摘要的相似性。如果存在相关上下文,则推荐分数会再乘以一个增益因子(例如1.1)。 ◦ 获取该模型的 ModelUsageStats 。 ◦ 如果模型有统计数据且使用次数达到一定阈值(如3次): ◦ 记录下分数调整的原因。 ◦ 作用: 这是学习系统 最核心的价值体现之一 。它利用已收集到的模型使用统计和反馈数据,来优化和个性化模型推荐结果。 ◦ 实现: ◦ 此函数主要被 thinking models server.ts 中的 recommend models for problem 工具在开启 use learning adjustment 时调用。 a. 接收一个初始的推荐模型列表(包含模型ID和原始推荐分数)以及当前的查询上下文。 b. 如果系统中的反馈数据量较少(例如少于5条),则直接返回原始推荐,不进行调整。 c. 对于初始推荐列表中的每个模型: d. 返回调整后的模型列表,并按新的分数重新排序。 ◦ 根据历史有效性调整分数:如果模型的 averageHelpfulness 较高(例如 0.7),则推荐分数会乘以一个增益因子(例如1.2);如果较低(例如 < 0.3),则乘以一个衰减因子(例如0.8)。 ◦ 检查当前查询上下文与模型 commonContexts 中的常见使用场景摘要的相似性。如果存在相关上下文,则推荐分数会再乘以一个增益因子(例如1.1)。 ◦ 获取该模型的 ModelUsageStats 。 ◦ 如果模型有统计数据且使用次数达到一定阈值(如3次): ◦ 记录下分数调整的原因。 ◦ 作用: 这是学习系统 最核心的价值体现之一 。它利用已收集到的模型使用统计和反馈数据,来优化和个性化模型推荐结果。 ◦ 实现: ◦ 此函数主要被 thinking models server.ts 中的 recommend models for problem 工具在开启 use learning adjustment 时调用。 a. 接收一个初始的推荐模型列表(包含模型ID和原始推荐分数)以及当前的查询上下文。 b. 如果系统中的反馈数据量较少(例如少于5条),则直接返回原始推荐,不进行调整。 c. 对于初始推荐列表中的每个模型: d. 返回调整后的模型列表,并按新的分数重新排序。 学习系统的主要作用: 1. 个性化推荐: 通过分析用户反馈和模型在特定场景下的表现,系统可以逐渐学习用户的偏好和哪些模型在哪些情境下更有效,从而提供更精准、更个性化的模型推荐。 2. 模型库的自我完善: ◦ 通过 detectKnowledgeGap ,系统可以识别出知识库中可能存在的不足之处,为后续添加新模型或扩展现有模型提供方向。 ◦ 通过 analyzeModelUsage 和 get model usage stats ,可以发现哪些模型受欢迎、哪些模型可能存在问题或解释不清,从而指导模型内容的优化和迭代。 ◦ 通过 detectKnowledgeGap ,系统可以识别出知识库中可能存在的不足之处,为后续添加新模型或扩展现有模型提供方向。 ◦ 通过 analyzeModelUsage 和 get model usage stats ,可以发现哪些模型受欢迎、哪些模型可能存在问题或解释不清,从而指导模型内容的优化和迭代。 3. 提升用户体验: 随着学习数据的积累,系统推荐的模型会越来越贴合用户的实际需求,减少用户寻找合适模型的时间,提升解决问题的效率。 4. 数据驱动的改进: 为模型的开发者和维护者提供了关于模型实际应用效果的宝贵数据,使得模型的改进不再仅仅依赖理论,而是有了真实世界使用情况的支撑。 5. 动态适应: 使得“天机”系统不仅仅是一个静态的知识库,而是一个能够随着使用不断进化、越来越智能的思考辅助工具。 “检测知识缺口”是什么意思?它是如何实现的? 🌈 “检测知识缺口”(Detect Knowledge Gap)是“天机”学习系统中的一个重要功能,其实现在 src/learning capability.ts 文件的 detectKnowledgeGap 函数中。 它的 核心意思 是: 系统尝试判断用户的查询或遇到的问题,是否超出了

在 小宇宙note 阅读完整内容