返回市场
MCP双循环推理服务器

MCP双循环推理服务器

作者:cyqlelabs8 星标更新:2025-09-19

项目介绍

<h1 align="center">MCP 双周期推理器</h1> <p align="center"><img src="slag-brothers-hermanos-macana.gif" /></p>

CI codecov

这是一个实现双周期元认知推理框架的MCP服务器,用于自主代理。该工具通过智能循环检测和经验获取增强了代理的自我意识和可靠性。

<a href="https://glama.ai/mcp/servers/@cyqlelabs/mcp-dual-cycle-reasoner"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=1779269105,1258884785&fm=3081&app=3081&f=PNG?w=760&h=400" alt="双周期推理器 MCP 服务器" /> </a>

描述

MCP 双周期推理器是一个设计用于增强AI代理自主性和可靠性的高级工具。通过实现双周期元认知框架,它提供了代理监控自身认知过程的能力,检测何时陷入重复循环,并从过去的经验中学习以做出更好的决策。

该框架由两个主要组件组成:

  • 哨兵:监控代理的动作并检测异常,如动作重复、状态不变和进度停滞。
  • 仲裁者:管理过去的案例库,允许代理存储和检索以前遇到的问题的解决方案。

该服务器使用TypeScript构建,并利用高性能库进行统计分析、自然语言处理和语义相似性,支持先进的特性,如基于熵的异常检测、基于NLI的文本分析和智能案例管理。

主要特点

  • 📊 高级统计分析:基于熵的异常检测和时间序列分析。
  • 🧠 增强的基于案例的推理:基于NLI的文本分析的语义相似性匹配。
  • 🎯 多策略检测:统计、模式和混合循环检测。
  • 📈 时间序列分析:趋势检测和周期性模式识别。
  • 🔧 可配置检测:领域特定阈值和进度指标。
  • 🎨 智能案例管理:质量评分、去重和基于使用的优化。
  • 🚀 高性能库:使用simple-statisticsnaturalcompromise和HuggingFace Transformers构建。

技术栈

  • 语言:TypeScript
  • 框架:Node.js
  • 服务器:FastMCP用于SSE传输
  • NLP和机器学习
    • @huggingface/transformers:用于基于NLI的语义分析
    • natural:用于情感分析和分词
    • compromise:用于自然语言处理
  • 统计
    • simple-statistics:用于统计计算
    • ml-matrix:用于矩阵操作
  • 开发工具
    • jest:用于测试
    • eslint:用于代码检查
    • prettier:用于代码格式化
    • zod:用于模式验证

安装

要使项目在本地运行,请按照以下步骤操作:

  1. 克隆仓库

    git clone https://github.com/cyqlelabs/mcp-dual-cycle-reasoner.git
    cd mcp-dual-cycle-reasoner
    
  2. 安装依赖项

    npm install
    
  3. 构建项目

    npm run build
    

使用

运行服务器

你可以以两种模式运行服务器:

  1. HTTP流(默认)

    npm start
    

    服务器将在8080端口启动。

  2. Stdio

    npm start -- --stdio
    

与Claude Desktop一起使用

在你的Claude Desktop MCP配置中添加以下内容:

{
  "mcpServers": {
    "dual-cycle-reasoner": {
      "command": "npx",
      "args": ["@cyqlelabs/mcp-dual-cycle-reasoner"]
    }
  }
}

对于stdio传输,在args数组中添加--stdio标志。

可用工具

核心监控工具

start_monitoring

初始化代理认知过程的元认知监控。

输入模式

{
  goal: string; // 当前追求的目标
  initial_beliefs?: string[]; // 关于任务的初始信念
}

process_trace_update

主要监控函数——处理来自代理的认知轨迹更新。

输入模式

{
  last_action: string; // 最新动作名称
  current_context?: string; // 当前环境上下文
  goal: string; // 当前追求的目标
  window_size?: number; // 监控窗口大小(默认:10)
}

返回负载

返回一个JSON对象,指示是否需要干预以及检测到的任何循环的详细信息。

{
  "intervention_required": true,
  "loop_detected": {
    "detected": true,
    "type": "action_repetition",
    "confidence": 0.85,
    "details": "通过参数重复检测到循环:57%异常分数...",
    "actions_involved": ["click_submit_button"]
  }
}

stop_monitoring

停止元认知监控并获取会话摘要。

输入模式{}

循环检测工具

detect_loop

使用各种策略检测代理是否陷入循环。

输入模式

{
  current_context?: string; // 当前环境上下文
  goal: string; // 当前追求的目标
  detection_method?: "statistical" | "pattern" | "hybrid"; // 检测方法(默认:"hybrid")
}

返回负载

返回一个作为JSON字符串的LoopDetectionResult对象。

{
  "detected": true,
  "type": "action_repetition",
  "confidence": 0.85,
  "details": {
    "dominant_method": "parameter_repetition",
    "anomaly_score": 0.57,
    "actions_involved_count": 1,
    "recent_actions_count": 10,
    "metrics": {
      "semantic_repetition": 0.6,
      "parameter_repetition": 0.8
    }
  },
  "actions_involved": ["click_submit_button"]
}

configure_detection

配置循环检测参数和领域特定的进度指标。

输入模式

{
  progress_indicators?: string[]; // 默认:[]
  min_actions_for_detection?: number; // 默认:5
  alternating_threshold?: number; // 默认:0.5
  repetition_threshold?: number; // 默认:0.4
  progress_threshold_adjustment?: number; // 默认:0.2
  semantic_intents?: string[]; // 默认:[]
}

增强经验管理

store_experience

存储未来基于案例推理的案例,带有增强的元数据和质量评分。

输入模式

{
  problem_description: string;
  solution: string;
  outcome: boolean;
  context?: string;
  difficulty_level?: "low" | "medium" | "high";
}

retrieve_similar_cases

使用高级语义匹配和过滤检索类似案例。

输入模式

{
  problem_description: string;
  max_results?: number; // 默认:5
  context_filter?: string;
  difficulty_filter?: "low" | "medium" | "high";
  outcome_filter?: boolean;
  min_similarity?: number; // 默认:0.1
}

返回负载

返回一个作为JSON字符串的Case对象数组。

[
  {
    "id": "case-123",
    "problem_description": "表单提交按钮对点击无响应",
    "solution": "确保所有必填字段正确填写。",
    "outcome": true,
    "context": "registration_form",
    "difficulty_level": "medium",
    "similarity_metrics": {
      "combined_similarity": 0.92
    }
  }
]

系统工具

get_monitoring_status

获取当前监控状态和统计数据。

输入模式{}

返回负载

返回一个包含当前监控状态的JSON字符串,包括is_monitoringcurrent_goaltrace_lengthintervention_count

{
  "is_monitoring": true,
  "current_goal": "完成网站上的用户注册流程",
  "trace_length": 15,
  "intervention_count": 2,
  "recent_actions": [
    { "type": "click_submit_button", "timestamp": 1678886400000 },
    { "type": "click_submit_button", "timestamp": 1678886401000 }
  ]
}

reset_engine

重置双周期引擎状态。

输入模式{}

示例使用场景

这里是一个完整的示例,展示了如何使用双周期推理器来监控自主代理并随着时间积累经验:

1. 初始设置和配置

// 配置适用于您领域的检测参数
await configure_detection({
  progress_indicators: ['页面加载', '表单提交', '数据提取'],
  min_actions_for_detection: 3,
  alternating_threshold: 0.6,
  repetition_threshold: 0.3,
  semantic_intents: [
    '导航到页面',
    '点击元素',
    '填写表单字段',
    '提交表单',
    '验证输入',
    '处理弹出窗口',
    '提取数据',
    '等待响应'
  ],
});

// 开始监控代理的目标
await start_monitoring({
  goal: '完成网站上的用户注册流程',
});

2. 监控代理动作

// 监控代理采取的每个动作
await process_trace_update({
  last_action: '点击注册按钮',
  current_context: '首页',
  goal: '完成网站上的用户注册流程',
});

// ... 代理继续执行动作 ...

// 代理反复点击提交按钮
await process_trace_update({
  last_action: '点击提交按钮',
  current_context: '注册表单',
  goal: '完成网站上的用户注册流程',
});
// 返回:{
//   "intervention_required": true,
//   "loop_detected": {
//     "detected": true,
//     "type": "action_repetition",
//     "confidence": 0.85,
//     "details": {
//       "dominant_method": "parameter_repetition",
//       "anomaly_score": 0.57,
//       "actions_involved_count": 1,
//       "recent_actions_count": 10,
//       "metrics": {
//         "semantic_repetition": 0.6,
//         "parameter_repetition": 0.8
//       }
//     },
//     "actions_involved": ["点击提交按钮"]
//   }
// }

3. 存储和检索经验

// 存储成功的经验
await store_experience({
  problem_description: '电子邮件验证错误阻止了表单提交',
  solution: '检查电子邮件格式并使用有效地址重新尝试',
  outcome: true,
  context: '注册表单',
  difficulty_level: 'medium',
});

// 当检测到循环时,检索类似案例以恢复
const similarCases = await retrieve_similar_cases({
  problem_description: '表单提交按钮对点击无响应',
  max_results: 3,
  context_filter: '注册表单',
  outcome_filter: true,
});

理解循环检测

process_trace_update工具检测到潜在循环时,它会返回一个详细的loop_detected对象。理解此对象中的各个组成部分可以帮助您诊断和调试代理行为。

这里是对details对象中关键指标的快速指南:

  • dominant_method:触发循环检测的主要方法(例如,semantic_repetitionstate_invariance)。
  • anomaly_score:表示代理最近动作属于循环部分的整体信心得分(0-1)。它是多种检测方法的加权平均值。
  • actions_involved_count:被识别为参与检测到的循环的最近动作数量。
  • recent_actions_count:分析的最近动作总数。
  • metrics:包含不同检测方法的原始得分的对象,例如:
    • semantic_repetition:最近动作之间语义相似的比例。
    • parameter_repetition:语义相似动作参数之间的相似比例。
    • exact_repetition:最近动作中完全相同的字符重复比例。
    • cyclical_pattern:表示动作重复序列存在的分数(0-1)。
    • oscillation_pattern:表示动作来回切换存在的分数(0-1)。
    • alternating_pattern:表示动作交替模式存在的分数(0-1)。

贡献

欢迎贡献!请阅读贡献指南,并确保所有测试通过后再提交拉取请求。

许可证

本项目采用MIT许可证。详情见LICENSE文件。