Atom of Thoughts(AoT)MCP服务器-Rust实现

将复杂问题分解为原子思维单元,以进行稳健推理
🧠 概述
Atom of Thoughts(AoT)是一个服务器,它将复杂问题分解为独立的原子思维单元,利用这些单元之间的依赖关系提供更稳健的推理和经过验证的见解。此Rust实现提供了一个MCP(模型上下文协议)服务器,该服务器可以与AI助手集成,以增强推理能力。
与传统的顺序思维不同,AoT通过允许原子思维单元相互形成依赖关系,创建可以验证、分解和收缩的推理图,从而实现了更强大的问题解决。
✨ 主要特点
- 原子推理单元:用于不同推理阶段的五种不同原子类型
- 分解收缩机制:将复杂原子分解为更简单的子原子,并在验证后收缩回来
- 依赖项跟踪:管理推理单元之间的关系
- 自动终止:当达到最大深度或发现高置信度结论时,停止推理
- 信心评分:每个原子都有一个带有视觉反馈的置信度(0-1)
- MCP集成:完整的模型上下文协议服务器实现
- 两种服务器模式:全AoT(深度5)和AoT光(深度3,处理速度更快)
- 命令接口:控制分解,检查终止,得出最佳结论
🚀 快速开始
先决条件
- 锈 1.70或更高版本
- 货物(带有铁锈)
安装
# Clone the repository
git clone https://github.com/yourusername/Atom_of_Thoughts_rs.git
cd Atom_of_Thoughts_rs
# Build the project
cargo build --release
# Run tests to verify everything works
cargo test运行MCP服务器
# Run in debug mode
cargo run
# Run release build for better performance
cargo run --release服务器在stdio传输上运行,并已准备好接受MCP请求。
🐛 调试和记录
AoT服务器使用标准Rust log 板条箱 env_logger 用于灵活的测井控制。日志记录是通过环境变量配置的,支持多个日志级别。
环境变量
RUST_LOG:控制日志级别和筛选(标准env_logger变量)
- 例子: export RUST_LOG=debug - 水平: error, warn, info, debug, trace - 可以按板条箱过滤: export RUST_LOG=atom_of_thoughts_rs=debug,info
AOT_DEBUG:向后兼容性-映射到RUST_LOG=debug设置时
- 例子: export AOT_DEBUG=1 - 接受: 1, true, on, yes - 仅在以下情况下使用 RUST_LOG 尚未设置
日志输出
日志以以下格式写入标准错误(stderr):
[timestamp] LEVEL crate::module message输出示例:
[2026-03-01T17:22:32Z INFO atom_of_thoughts_rs::mcp] Starting MCP server
[2026-03-01T17:22:32Z DEBUG atom_of_thoughts_rs::mcp] ServerHandler::get_info called
[2026-03-01T17:22:33Z DEBUG atom_of_thoughts_rs] P1 | premise | Depth: 0 | Dependencies: none | Confidence: 90.00% | Verified: ✗
[2026-03-01T17:22:33Z INFO atom_of_thoughts_rs] SERVER EVENT: atom_created - premise: P1日志级别
error:阻止操作的关键错误warn:关于潜在问题的警告(例如,达到的最大深度)info:一般服务器事件、启动、验证、收缩debug:Atom处理细节、分解事件、依赖关系trace:详细的原子结构转储和详细的内部状态
用法示例
# Basic debug logging
export RUST_LOG=debug
cargo run
# Filter by crate for cleaner output
export RUST_LOG=atom_of_thoughts_rs=debug
cargo run
# Backward compatibility with AOT_DEBUG
export AOT_DEBUG=1
cargo run
# Different log levels
export RUST_LOG=error # Only errors
export RUST_LOG=info # Default informational messages
export RUST_LOG=debug # Debug information
export RUST_LOG=trace # Very verbose output🧩 原子类型
AoT使用五种不同的原子类型,每种原子在推理过程中都有特定的作用:
| 原子类型 | 符号 | 颜色 | 用途 |
|---|---|---|---|
| 前提 | 🔍 | 蓝色 | 解决问题的基本假设或给定信息 |
| 推理 | 🧠 | 绿色 | 基于其他原子的逻辑推理过程 |
| 假设 | 💡 | 黄色 | 建议的解决方案或中间结论 |
| 验证 | ✓ | Magenta | 评估其他原子(尤其是假设)有效性的过程 |
| 结论 | 🏆 | 红色 | 已验证的假设或最终问题解决方案 |
每个原子都有:
- atomId:唯一标识符(例如“P1”、“H2”、“C3”)
- 内容:原子的文本描述
- 依赖项:此原子所依赖的原子ID列表
- 自信:置信度得分在0.0和1.0之间
- 已验证:此原子是否已验证
- 深度:分解树中的深度级别(0=根)
🔧 MCP工具
服务器公开了三个MCP工具:
1.AoT工具(全面实施)
名字: AoT\ 描述:用于复杂推理任务的完整Atom of Thoughts实现。
何时使用:
- 解决需要复杂推理的问题
- 生成需要从多个角度验证的假设
- 在关键任务中得出高置信度结论
- 需要多个验证步骤的决策
- 尽量减少逻辑错误
参数:
atomId:原子的唯一标识符(必需)content:原子的实际含量(必填)atomType:原子类型:“前提”、“推理”、“假设”、“验证”、“结论”(必填)dependencies:此原子所依赖的其他原子的ID列表(必填,可以是空数组)confidence:置信水平在0-1之间(必填)isVerified:此原子是否已验证(可选,默认为false)depth:分解收缩机制中的深度级别(可选,自动计算)
最大深度:5个级别
重要说明:
- 结论必须得到验证(
isVerified: true)出现在best_conclusion结果 - 要验证结论,请使用以下命令创建它
isVerified: true或者创建一个依赖于它的验证原子 - 验证原子
isVerified: true自动验证其列表中列出的原子dependencies - 这
atomcommands该工具使用使用创建的原子AoT工具(不是AoT-light)
2.AoT轻型工具(快速加工)
名字: AoT-light\ 描述:轻量级版本,处理速度更快,结果更快。
何时使用:
- 快速头脑风暴会议
- 解决时间敏感问题
- 更简单的推理任务
- 使用完整AoT之前的初步探索
- 学习或演示目的
主要区别:
- 最大深度较低(3而不是5)
- 简化验证过程
- 高置信度假设的即时结论建议
- 减少计算开销
- 针对速度而非详尽分析进行了优化
参数:与完整的AoT工具相同
重要说明:
- AoT light使用独立于完整AoT的服务器实例
- 用AoT光产生的原子对
atomcommands工具 - 对于分解特征或
best_conclusion对于AoT轻原子,请使用完整的AoT工具 - 高置信度假设(置信度≥0.8)触发自动结论建议
3.原子命令工具(高级控制)
名字: atomcommands\ 描述:控制分解收缩机制和自动终止的命令工具。
命令:
decompose:将指定原子分解为更小的子原子complete_decomposition:完成正在进行的分解过程termination_status:检查当前AoT流程的终止状态best_conclusion:以最高的置信度得出经过验证的结论set_max_depth:更改最大深度限制
参数:
command:要执行的命令(必需)atomId:原子ID(必需decompose命令)decompositionId:分解过程的ID(需要complete_decomposition)maxDepth:最大深度值(要求set_max_depth)
重要说明:
best_conclusion仅返回经过验证的结论(isVerified: true)atomcommands适用于完整的AoT服务器,而不是AoT轻型服务器- 使用
best_conclusion使用AoT轻原子,使用完整的AoT工具重新创建它们 - 结论必须经过验证才能出现在结果中(集
isVerified: true或使用验证原子)
🌀 分解收缩机制
分解过程
- 开始分解:将一个复杂的原子(通常是一个假设)分解为更简单的子原子
- 添加子原子:自动或手动将原子添加到分解中
- 计算深度:子原子获得深度=父原子深度+1
- 完全分解:将分解标记为准备收缩
收缩过程
- 验证:当验证原子验证假设时
- 检查条件:必须验证所有亚原子并完成分解
- 计算置信度:亚原子的平均置信度
- 更新原始:原始原子获得更新的置信度并标记为已验证
- 建议结论:如果验证的假设置信度≥0.8,则提出结论
自动功能
- 自动添加到分解中:新原子自动添加到当前分解中
- 自动终止:当达到最大深度或发现强有力的结论时终止(置信度≥0.9)
- 自动结论:对置信度≥0.8的已验证假设提出结论
- 自动验证:验证原子会自动验证其依赖关系
📋 用法示例
示例1:基本推理链
{
"atomId": "P1",
"content": "The user wants to find restaurants near them",
"atomType": "premise",
"dependencies": [],
"confidence": 0.9
}{
"atomId": "R1",
"content": "We need to get the user's location first",
"atomType": "reasoning",
"dependencies": ["P1"],
"confidence": 0.8
}{
"atomId": "H1",
"content": "Ask the user for their location or use IP geolocation",
"atomType": "hypothesis",
"dependencies": ["R1"],
"confidence": 0.7
}示例2:验证和结论
{
"atomId": "V1",
"content": "IP geolocation is less accurate but faster; asking is more accurate but requires interaction",
"atomType": "verification",
"dependencies": ["H1"],
"confidence": 0.85,
"isVerified": true
}{
"atomId": "C1",
"content": "Use IP geolocation for quick results, then ask for precise location if needed",
"atomType": "conclusion",
"dependencies": ["H1"],
"confidence": 0.77
}示例3:分解命令
{
"command": "decompose",
"atomId": "H1"
}示例4:获取终止状态
{
"command": "termination_status"
}🧪 测试
该项目包括全面的单元测试:
# Run all tests
cargo test
# Run tests with output visible
cargo test -- --nocapture
# Run specific test
cargo test test_decomposition_flow
# Run all tests and show output
cargo test -- --show-output测试覆盖范围包括:
- 原子类型功能
- 服务器初始化
- 原子处理和验证
- 分解流程
- 验证和收缩
- 终止逻辑
- 最佳结论检索
- 轻量级服务器功能
🏗️ 项目结构
Atom_of_Thoughts_rs/
├── Cargo.toml # Rust dependencies and metadata
├── Cargo.lock # Dependency lock file
├── README.md # This file
├── AGENTS.md # Agent guidelines and conventions
├── memory.ms # Project information and design notes
├── refference.ts # TypeScript reference implementation
├── src/
│ ├── lib.rs # Core library implementation
│ └── main.rs # Binary entry point with logging setup
└── target/ # Build artifacts (generated)关键组件 lib.rs:
- 数据结构:
- AtomType:具有五种原子类型的枚举 - AtomData:具有所有字段的核心原子结构 - DecompositionState:跟踪分解进度 - TerminationStatus:终止条件和原因
- 核心服务器:
- AtomOfThoughtsServer:完整实施,最大深度5 - AtomOfThoughtsLightServer:轻量级版本,最大深度为3
- 错误处理:
- AtomError:带有描述性消息的全面错误枚举 - Result:键入别名 Result
- MCP集成:
- AtomOfThoughtsMcpHandler:带有三个工具的MCP服务器处理程序 - AtomRequest:原子创建请求的架构 - AtomCommandsRequest:命令请求的架构
- 核心算法:
- 分解管理 - 收缩触发 - 置信度计算 - 终止检查 - 依赖性验证
- 记录系统:
- 标准 log 板条箱 env_logger 整合 - 环境变量控制日志级别(RUST_LOG) - 向后兼容 AOT_DEBUG 变量 - 多个日志级别:错误、警告、信息、调试、跟踪 - 带有时间戳和机箱/模块信息的结构化日志输出
🔍 发展
代码风格
- 遵循Rust 2024版本
- 用途
cargo fmt格式一致 cargo clippy -- -D warnings对于linting- 带有文档注释的综合文档
建筑
# Debug build
cargo build
# Release build
cargo build --release
# Type checking without building
cargo check
# Generate documentation
cargo doc --open依赖项
- rmcp:模型上下文协议实现(v0.17)
- Serde/Serde JSON:JSON序列化
- 无论如何:错误处理
- 这个错误:自定义错误类型
- 东京:异步运行时
- 计时:日期时间处理
- 彩色的:终端输出着色
- 日志:测井立面
- env_logger:基于环境的日志记录配置
📊 输出格式
原子以彩色、格式化的输出显示:
┌────────────────────────────────────────────────────────────────────────────────┐
│ 💡 HYPOTHESIS:H1 [Depth: 0/5] (✓ Verified) │
├────────────────────────────────────────────────────────────────────────────────┤
│ Ask the user for their location or use IP geolocation │
│ Confidence: [████████████████░░░░] 80% │
│ Dependencies: R1 │
└────────────────────────────────────────────────────────────────────────────────┘特征:
- 基于原子类型的彩色标题
- 置信条可视化
- 深度信息
- 验证状态
- 依赖关系列表
🎯 何时使用AoT
理想用例
- 复杂决策:多种因素,结果不确定
- 问题解决:将复杂问题分解为可管理的部分
- 假设检验:生成和验证多个假设
- 风险评估:用置信度评分评估不同的情景
- 规划:在每个阶段进行逐步推理和验证
比较:AoT与AoT灯
| 宽高比 | AoT(满) | AoT灯 |
|---|---|---|
| 最大深度 | 5 | 3 |
| 处理 | 全面 | 快速 |
| 验证 | 多步骤 | 立即 |
| 用例 | 关键决策 | 快速推理 |
| 输出详细信息 | 完整分析 | 仅为必需 |
| 自动功能 | 全部启用 | 简化 |
🤝 贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 进行更改
- 运行测试:
cargo test - 格式代码:
cargo fmt - 检查棉绒:
cargo clippy -- -D warnings - 提交更改:
git commit -m 'Add amazing feature' - 推送到分支:
git push origin feature/amazing-feature - 打开拉取请求
开发指南
- 遵循现有的代码风格和约定
- 添加新功能的测试
- 根据需要更新文档
- 保持提交的重点和原子性
- 提交消息中的引用问题
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🙏 致谢
- 基于原始的思想原子概念
- 使用模型上下文协议(MCP)进行AI工具集成
- 受认知架构中分解收缩机制的启发
📚 资源
______________________________________________________________________
Built with ❤️ using Rust
Decompose. Reason. Validate.
