mcpField
T
Thoughtbox

Thoughtbox

本地服务
github.com/Kastalien-ResearchAI 与智能体6516 周前更新

关于 Thoughtbox

Thoughtbox 是一个 MCP 服务,用于结构化的多 Agent 协作推理。每一步思考都会作为节点写入可持久化的推理账本,可被可视化、导出和分析,适合需要审计推理过程的团队。配套的 Observatory 网页界面可实时查看推理进展。

主要功能

  1. 01通过 thoughtbox_search 与 thoughtbox_execute 两个工具暴露全部功能
  2. 02线性、回溯、分支、修订四种推理模式
  3. 03Hub 中的多 Agent 工作区、问题、提案与共识
  4. 04带时间戳与前后关联的可审计推理账本
  5. 05Observatory 实时推理图与分支导航
  6. 06支持 filesystem、memory 与 Supabase 存储后端

适用场景

  1. 01记录并回溯某个结论的推理路径
  2. 02让多个 Agent 在共享工作区中协作解决问题
  3. 03比较不同方案的分支推演

MCP 相关

Thoughtbox 本身是一个 MCP 服务,通过 Streamable HTTP 传输向客户端暴露两个工具。文档主要针对 Claude Code 优化,并说明了 Cline 与 VS Code 的配置方式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"thoughtbox": {
"command": "npx",
"args": [
"-y",
"@kastalien-research/thoughtbox"
]
}
}
}
启动命令npx -y @kastalien-research/thoughtbox

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@kastalien-research/thoughtbox1.0.3

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
thoughtstring是当前思考步骤
branchIdstring否分支标识符
isRevisionboolean否此项是否修订了先前的思考
includeGuideboolean否请求将模式指南作为嵌入式资源提供(也会在 thought 1 和最后一个 thought 中自动提供)
thoughtNumberinteger是当前思考编号(正向思考时可为 1→N,反向/目标驱动思考时可为 N→1)
totalThoughtsinteger是预计所需的思考总数(反向思考时,从 thoughtNumber = totalThoughts 开始)
revisesThoughtinteger否正在重新考虑的思考编号
branchFromThoughtinteger否分支起点的思考编号
needsMoreThoughtsboolean否是否需要更多思考
nextThoughtNeededboolean是是否需要继续思考

详细介绍

Thoughtbox

可审计的多 Agent 协作推理。 Thoughtbox 是一个用于结构化多 Agent 推理的 MCP 服务,并配有用于工作区和检查流程的 Web 应用。每一步都会作为结构化思考记录在持久化推理账本中,可视化、导出和分析。

运行模式: 本地开发可使用文件系统或内存存储。部署模式使用由 Supabase 提供支持的存储,目前的生产 MCP 服务运行在 Cloud Run 上。

Thoughtbox Observatory Observatory UI 展示了一个包含 14 条思考的推理会话,以及一个从思考 5 分支出来的分支探索(紫色节点 13-14)。

代码模式

Thoughtbox 使用代码模式,提供恰好 两个 MCP 工具:

  • thoughtbox_search — 编写 JavaScript 以查询操作/提示词/资源目录。大模型可以对目录进行全面的程序化筛选。
  • thoughtbox_execute — 使用 tb SDK 编写 JavaScript 以串联操作。通过统一的命名空间访问思考、会话、知识、笔记本、hub、可观测性和协议工具。

工作流: 先搜索以发现可用操作,再执行代码调用这些操作。使用 console.log() 进行调试——输出会记录在响应日志中。

这种方式用两个工具取代了逐个注册操作的做法,既能扩展,也不会让上下文窗口膨胀。

多 Agent 协作

Hub 是协作层。Agent 使用特定角色的配置文件注册、加入共享工作区,并通过结构化的问题解决工作流开展工作——所有操作都通过 thoughtbox_execute 完成。

工作流: 注册 → 创建工作区 → 创建问题 → 认领 → 开展工作 → 提出解决方案 → 同行评审 → 合并 → 达成共识

工作区原语:

  • 问题 — 一个工作单元,可包含依赖项和子问题,并跟踪状态(open → in-progress → resolved → closed)
  • 提案 — 提出的解决方案,包含源分支引用和评审工作流
  • 共识 — 与思考引用关联的决策标记,便于追溯
  • 频道 — 针对某个问题的消息流,用于讨论

Agent 配置文件: MANAGER、ARCHITECT、DEBUGGER、SECURITY、RESEARCHER、REVIEWER——每种配置文件都会提供特定领域的思维模型和行为引导。

涵盖身份、工作区管理、问题、提案、共识、频道和状态报告的 28 项操作。

可审计的推理

每条思考都是图中的一个节点——都有编号和时间戳,与前序节点相连,并持久化保存,跨会话保留。由此形成可审计的轨迹,记录结论是如何得出的。

Agent 可以向前思考、逆向规划、分支开展并行探索,也可以修订较早的结论。每种模式都是一项一等操作:

模式说明用例
正向按顺序从 1→2→3→N 推进探索、发现、开放式分析
逆向从目标(N)出发,反向推演至起点(1)规划、系统设计、从已知目标出发开展工作
分支分叉开展并行探索(A、B、C……)比较替代方案、A/B 场景
修订根据新信息更新较早的思考错误纠正、完善理解

每条思考都带有语义 thoughtType(reasoning、decision_frame、action_report、belief_snapshot、assumption_update、context_snapshot、progress),用于对思考的类型进行分类,与所使用的过程模式相互独立。

详见 模式手册,其中包含完整示例。

实时可观测性

Observatory 是一个内置的 Web UI,地址为 http://localhost:1729,可用于实时查看推理过程。

  • 实时图谱 — 思路通过 WebSocket 实时显示为节点
  • 分支导航 — 分支会折叠为可点击的占位项;可深入查看并返回
  • 详情面板 — 点击任意节点即可查看完整的思路内容
  • 多会话 — 在活跃的推理会话之间切换
  • 深度分析 — 分析会话中的推理模式、认知负荷和决策点

完整的可观测性技术栈包括 OpenTelemetry 跟踪、Prometheus 指标和 Grafana 仪表板。

知识与推理工具

知识图谱 — 跨会话的持久化记忆。将见解、概念、工作流和决策保存为带类型的实体,并通过带类型的关系(BUILDS_ON、CONTRADICTS、SUPERSEDES 等)和可见性控制(public、agent-private、team-private)进行管理。

笔记本 — 交互式文学式编程,将文档与可在隔离环境中执行的 JavaScript/TypeScript 相结合。

客户端兼容性

Thoughtbox 目前针对 Claude Code 进行了优化。我们正在积极开发对更多 MCP 客户端的支持。由于 MCP 生态系统中各项能力的支持情况存在差异——包括服务端功能(提示词、资源、工具)、客户端功能(根目录、采样、引导),以及 listChanged 通知等行为——我们针对许多客户端实现了自定义适配。

如果你使用的客户端不是 Claude Code,并遇到问题,请提交问题,说明你使用的客户端和遇到的问题。

安装

Thoughtbox 以基于 Docker 的 MCP 服务形式运行。它需要 Docker 和 Docker Compose。

快速开始
git clone https://github.com/Kastalien-Research/thoughtbox.git
cd thoughtbox
docker compose up --build

这会启动 Thoughtbox 和完整的可观测性技术栈。MCP 服务监听端口 1731,Observatory UI 可通过 http://localhost:1729 访问。

MCP 客户端配置

由于 Thoughtbox 使用 HTTP 传输,请将 MCP 客户端配置为通过 URL 连接。

Claude Code

将以下内容添加到 ~/.claude/settings.json 或项目的 .claude/settings.json 中:

{
  "mcpServers": {
    "thoughtbox": {
      "url": "http://localhost:1731/mcp"
    }
  }
}

如需通过可观测性 sidecar 连接(会添加 OpenTelemetry 跟踪):

{
  "mcpServers": {
    "thoughtbox": {
      "url": "http://localhost:4000/mcp"
    }
  }
}
Cline / VS Code

将以下内容添加到 MCP 设置或 .vscode/mcp.json 中:

{
  "servers": {
    "thoughtbox": {
      "url": "http://localhost:1731/mcp"
    }
  }
}

使用示例

正向思考 — 问题分析
Thought 1: "Users report slow checkout. Let's analyze..."
Thought 2: "Data shows 45s average, target is 10s..."
Thought 3: "Root causes: 3 API calls, no caching..."
Thought 4: "Options: Redis cache, query optimization, parallel calls..."
Thought 5: "Recommendation: Implement Redis cache for product data"
逆向思考 — 系统设计
Thought 8: [GOAL] "System handles 10k req/s with <100ms latency"
Thought 7: "Before that: monitoring and alerting operational"
Thought 6: "Before that: resilience patterns implemented"
Thought 5: "Before that: caching layer with invalidation"
...
Thought 1: [START] "Current state: 1k req/s, 500ms latency"
分支 — 比较备选方案
Thought 4: "Need to choose database architecture..."

Branch A (thought 5): branchId="sql-path"
  "PostgreSQL: ACID compliance, mature tooling, relational integrity"

Branch B (thought 5): branchId="nosql-path"
  "MongoDB: Flexible schema, horizontal scaling, document model"

Thought 6: [SYNTHESIS] "Use PostgreSQL for transactions, MongoDB for analytics"

环境变量

变量说明默认值
DISABLE_THOUGHT_LOGGING禁止将思路记录到 stderrfalse
THOUGHTBOX_DATA_DIR持久化存储的基础目录~/.thoughtbox
THOUGHTBOX_PROJECT用于隔离会话的项目范围_default
THOUGHTBOX_TRANSPORT传输类型(stdio 或 http)http
THOUGHTBOX_STORAGE存储后端(fs、memory 或 supabase)fs
THOUGHTBOX_OBSERVATORY_ENABLED启用 Observatory Web UIfalse
THOUGHTBOX_OBSERVATORY_PORTObservatory UI 端口1729
THOUGHTBOX_OBSERVATORY_CORSObservatory 的 CORS 来源(以逗号分隔)(无)
THOUGHTBOX_AGENT_ID预先分配的 Hub Agent ID(无)
THOUGHTBOX_AGENT_NAME预先分配的 Hub Agent 名称(无)
SUPABASE_URLSupabase 项目 URL(使用 supabase 存储时必需)(无)
SUPABASE_SERVICE_ROLE_KEYSupabase 服务角色密钥(使用 supabase 存储时必需)(无)
PORTHTTP 服务端口1731
HOSTHTTP 服务绑定地址0.0.0.0
NODE_ENVNode 环境(无)
PROMETHEUS_URLPrometheus 端点(Docker)http://prometheus:9090
GRAFANA_URLGrafana 端点(Docker)http://grafana:3000

开发

本地开发(需要 Node.js 22+):

pnpm install
pnpm build
pnpm dev      # Development with hot reload
测试
npx vitest run              # Unit tests
pnpm test                   # Full suite (build + vitest)
pnpm test:agentic           # Agentic tests — full suite (build + run)
pnpm test:agentic:tool      # Agentic tests — tool-level only
pnpm test:agentic:quick     # Agentic tests — quick (no build)
pnpm test:behavioral        # Behavioral contract tests
Docker Compose

docker compose up --build 可启动完整技术栈:

服务端口说明
thoughtbox1731 (MCP), 1729 (Observatory)核心 MCP 服务 + Observatory 界面
mcp-sidecar4000集成 OpenTelemetry 的可观测性代理
otel-collector4318 (HTTP), 8889 (metrics)OpenTelemetry Collector
prometheus9090指标存储 + 告警
grafana3001仪表板和可视化

持久化数据存储在命名卷中:thoughtbox-data、prometheus-data、grafana-data。

架构

src/
├── index.ts                # Entry point (Streamable HTTP transport)
├── server-factory.ts       # MCP server factory with tool registration
├── thought-handler.ts      # Core thought recording logic
├── types.ts                # Shared type definitions
├── database.types.ts       # Supabase generated types
├── code-mode/              # Code Mode tool surface
│   ├── search-tool.ts      # thoughtbox_search — catalog query via JS
│   ├── execute-tool.ts     # thoughtbox_execute — operation chaining via tb SDK
│   ├── search-index.ts     # Frozen catalog of operations/prompts/resources
│   └── sdk-types.ts        # TypeScript definitions for the tb SDK
├── thought/                # Thought operations and tool definitions
├── sessions/               # Session management
├── persistence/            # Storage layer
│   ├── storage.ts          # InMemoryStorage with LinkedThoughtStore
│   ├── filesystem-storage.ts  # FileSystemStorage with atomic writes
│   └── supabase-storage.ts # SupabaseStorage for deployed/cloud usage
├── observatory/            # Real-time visualization
│   ├── ui/                 # Self-contained HTML/CSS/JS
│   └── ws-server.ts        # WebSocket server for live updates
├── hub/                    # Multi-agent collaboration
│   ├── identity.ts         # Agent registration
│   ├── workspace.ts        # Workspace management
│   ├── problems.ts         # Problem tracking with dependencies
│   ├── proposals.ts        # Solution proposals with reviews
│   ├── consensus.ts        # Decision recording
│   ├── channels.ts         # Problem-scoped messaging
│   ├── hub-handler.ts      # Hub operation dispatcher
│   └── operations.ts       # 28-operation catalog
├── channel/                # Hub event channels and SSE streaming
├── protocol/               # Ulysses and Theseus protocol tools
├── knowledge/              # Knowledge graph memory
├── auth/                   # API key authentication
├── audit/                  # Audit manifest generation
├── evaluation/             # LangSmith evaluation and online monitoring
├── notebook/               # Literate programming engine
├── events/                 # Event emission system
├── observability/          # Prometheus/Grafana integration
├── prompts/                # MCP prompt definitions
├── references/             # Anchor parsing and resolution
├── revision/               # Revision indexing
├── operations-tool/        # Operations tool handler
└── resources/              # Documentation and patterns cookbook
存储

Thoughtbox 支持三种存储后端:

  • InMemoryStorage:用于测试的易失性存储,使用 LinkedThoughtStore 实现 O(1) 思想查找
  • FileSystemStorage:支持原子写入和项目隔离的持久化存储(默认)
  • SupabaseStorage:基于 Supabase Postgres 的云原生存储,适用于已部署的实例

默认情况下,数据存储在 ~/.thoughtbox/ 中(FileSystemStorage):

~/.thoughtbox/
├── config.json           # Global configuration
└── projects/
    └── {project}/
        └── sessions/
            └── {date}/
                └── {session-id}/
                    ├── manifest.json
                    └── {thought-number}.json

贡献

欢迎贡献!请参阅 CONTRIBUTING.md,了解以下内容:

  • 开发环境设置
  • 提交规范(针对 thick_read 代码理解进行了优化)
  • 使用 vitest 和智能体脚本进行测试
  • 拉取请求流程

许可证

MIT License — 可免费使用、修改和分发。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。