关于 T1/T2 Protocol
T1/T2 Protocol 是仅依赖 Python 标准库的参考 MCP 服务,用于结构化推理和异质验证,面向需要问题拆解、跨模型评估与确定性检查的 MCP 主机。项目明确说明它不是生产级安全产品。
主要功能
- 01将问题拆分为四个层级
- 02生成跨模型评估提示词
- 03确定性检查答案结构
- 04设置评估语言和权重
- 05限制 T2 递归评估
适用场景
- 01梳理含糊的决策问题
- 02用另一模型审阅答案草稿
- 03复用前检查结构化输出
MCP 相关
通过 stdio 上的 JSON-RPC 暴露 t1_protocol、t2_protocol 和 checksum 工具。前两者向主机 LLM 返回提示词模板;checksum 返回确定性的校验结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| locale | string | 否 | 输出语言:'en'(默认)或 'zh' |
| question | string | 是 | 要翻译的原始问题 |
| weight_hint | string | 否 | 可选的评估权重提示。英语:fact-first、efficiency-first、cost-first、robustness-first、general-first。中文:事实优先、效率优先、成本优先、鲁棒性优先、通用优先。 |
详细介绍
T1/T2 Protocol — 面向 MCP 的异构验证
中文文档 · MCP Registry 条目 (io.github.Fauxetine/t1-t2-protocol)
参考实现。 这是一个用于结构化推理规范的仅依赖标准库的 MCP 参考服务,并非生产级安全产品。在敏感环境中部署前,请评估你自己的威胁模型。与官方 Python MCP 服务不同,它不使用
mcpSDK;而是直接通过 stdio 进行 JSON-RPC 通信。
T1/T2 是一个 MCP 服务,可让 AI 推理变得可验证、可审计且可信——它先将模糊问题拆解为结构化层级(T1),再通过跨模型评估验证答案(T2),并配备不依赖任何大模型的确定性校验和层。
为什么?
当大模型检查自己的答案时,它使用的是相同的训练数据、相同的推理偏好和相同的系统性偏见。自我反思无法发现自身的盲点。
T1/T2 引入了异构验证:生成答案的模型与评估答案的模型应该不同。它们不同的训练分布可以互相弥补各自的盲点。
工具
| 工具 | 功能 | 重要性 |
|---|---|---|
| t1_protocol | 将模糊问题拆解为 L1(事实)/L2(假设)/L3(假说)/L4(未知项) | 在回答前强制进行结构化推理 |
| t2_protocol | 从另一个模型的视角评估答案质量(定性五级置信度) | 发现自我反思无法察觉的盲点 |
| checksum | 确定性结构验证——纯正则表达式,不依赖大模型 | 安全性不随智能水平而变化 |
工具如何返回数据:
t1_protocol和t2_protocol会返回结构化提示词模板,供 MCP 宿主的大模型执行。只有checksum会返回确定性 JSON(checksum_passed、errors)。
工具输入(MCP 架构)
t1_protocol
| 输入 | 类型 | 必填 | 描述 |
|---|---|---|---|
question | string | 是 | 要拆解的模糊问题 |
locale | string | 否 | en(默认)或 zh |
weight_hint | string | 否 | fact-first、efficiency-first、cost-first、robustness-first、general-first(或对应的中文选项) |
t2_protocol
| 输入 | 类型 | 必填 | 描述 |
|---|---|---|---|
answer | string | 是 | 要评估的文本(通常是宿主大模型的答案草稿) |
locale | string | 否 | en(默认)或 zh |
weight_hint | string | 否 | 与 t1_protocol 相同的选项 |
checksum
| 输入 | 类型 | 必填 | 描述 |
|---|---|---|---|
text | string | 是 | 要验证的结构化答案文本 |
返回 JSON:{"checksum_passed": bool, "errors": [...]}。
快速开始
要求
- Python 3.10+
- 一个 MCP 客户端:Cursor、Claude Desktop、Windsurf 或任何兼容 MCP 的宿主
安装
从 PyPI 安装(推荐):
pip install "t1-t2-protocol>=0.1.0"
从源码安装(开发用途):
git clone https://github.com/Fauxetine/t1-t2-protocol.git
cd t1-t2-protocol
pip install -e ".[dev]"
T1T2_DISABLE_COUNTERS=1 python -m pytest tests/ -v
或者无需安装,直接运行:
python src/t1_t2_mcp_server.py # Windows
python3 src/t1_t2_mcp_server.py # macOS / Linux
配置
pip install 后,在 MCP 配置中使用控制台脚本(推荐):
{
"mcpServers": {
"t1-t2-protocol": {
"type": "stdio",
"command": "t1-t2-protocol"
}
}
}
Cursor — .cursor/mcp.json(与上文相同)。
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"t1-t2-protocol": {
"command": "t1-t2-protocol"
}
}
}
从源代码运行(无需 pip install) — 指向脚本:
{
"mcpServers": {
"t1-t2-protocol": {
"type": "stdio",
"command": "python",
"args": ["C:/path/to/t1-t2-protocol/src/t1_t2_mcp_server.py"]
}
}
}
在 macOS/Linux 上,请使用 "command": "python3" 替代 "python"。
验证是否正常运行
- 编辑配置后,重启或重新加载 MCP 宿主。
- 确认出现三个工具:
t1_protocol、t2_protocol、checksum。 - 使用
{"question": "Should we adopt microservices?", "locale": "en"}调用t1_protocol— 你应该会收到结构化的 T1 提示词模板。 - 使用示例
[L1 Facts]…---文本调用checksum— 你应该会收到包含checksum_passed的 JSON。
用法
T1:梳理模糊问题
使用你的问题调用 t1_protocol。宿主 LLM 会收到包含四个层级的结构化提示词模板:
Input: {"question": "Should we migrate our monolith to microservices?"}
Output: Prompt template instructing the host to produce:
[L1 Facts] Team size, codebase size, current stack
[L2 Assumptions] Expected benefits that need verification
[L3 Hypotheses] Testable claims about migration risk
[L4 Unknown] Future growth trajectory
[Core Question] The precise feasibility question
T2:交叉验证决策
使用决策或答案文本调用 t2_protocol。它会返回供宿主 LLM 使用的评估提示词:
Input: {"answer": "Decision text for approach A..."}
Output: Prompt template requesting:
Confidence: high | medium-high | medium | medium-low | low
Adoption table with:
✅ Adopt — verified conclusions (L1)
⚠️ Reserved — needs more evidence (L2)
❌ N/A — blind spots to address
checksum:验证输出结构
使用结构化文本调用 checksum。它会根据确定性规则返回通过/失败结果:
Input: "[L1 Facts]\n1. ...\n[L2 Assumptions]\n1. ...\n---"
Output: {"checksum_passed": true, "errors": []}
完整工作流
Vague question → T1 structured decomposition → Decision based on structure → checksum (optional) → T2 validation → Refined decision
对于有时效性的事实主张,请在调用方一侧先进行搜索,再执行 T2 — 参见调用方侧网页验证(v2.6)。
配置
语言
t1_protocol 和 t2_protocol 都接受可选的 locale 参数:
| 值 | 输出 |
|---|---|
en(默认) | 英文模板 |
zh | 中文模板 |
示例:{"question": "...", "locale": "zh"}
权重提示
t1_protocol 和 t2_protocol 都接受可选的 weight_hint 参数,用于调整评估标准的权重:
| 权重 | 效果 |
|---|---|
事实优先 / fact-first | 优先考虑事实准确性 |
效率优先 / efficiency-first | 优先考虑效率 |
成本优先 / cost-first | 优先考虑成本 |
鲁棒性优先 / robustness-first | 优先考虑鲁棒性 |
通用优先 / general-first | 不设置特定偏向 |
递归保护
T2 会自动检测递归深度,并在深度 >= 3 时终止,因为此时边际信息增益会降至 5% 以下。
设计理念
完整的设计原理请参阅 docs/philosophy.md。
核心原则:
- 将智能与信任分离 — AI 能力和 AI 安全应由不同系统保障
- 异构优于自我指涉 — 跨模型验证比自我反思更可靠
- 确定性优于概率性 — 能通过代码检查的内容,不应交由模型判断
示例
分步演示请参阅 examples/:
定位
| 项目 | 层级 | 功能 | 与 T1/T2 的关系 |
|---|---|---|---|
| Sequential Thinking(官方 MCP) | 调用方侧思维链 | 一个模型记录迭代步骤 | 互补——T1 增加 L1–L4 层级,T2 进行跨模型审查 |
| ThoughtProof / verdict APIs | 服务端验证 | 返回带置信度的 APPROVE/DENY/UNCERTAIN | 互补——T1/T2 在 verdict APIs 执行操作前构建推理结构 |
| 自我反思 / 提示词链 | 同一模型 | 重新读取或重新提示自身输出 | 已被取代——异构验证可以发现共同盲点 |
| 工具完整性(例如 Phionyx) | 传输 / 工具架构 | 检测工具投毒、架构漂移 | 正交——T1/T2 不会保护工具定义 |
T1/T2 是面向 MCP Discussion #2574 式推理规范的标准库参考实现:先构建结构(T1),再交叉验证(T2),并为代码可验证的内容计算校验和。它不是签名 verdict API,也不是安全扫描器。
版本控制
有两个版本号,请勿混淆:
| 示例 | 含义 | |
|---|---|---|
| 包(PyPI) | 0.1.0 | 分发版本生命周期。0.x = 实验性(SemVer,FastAPI 政策)。 |
| 协议(规范) | v2.5 | 服务端输出页脚中的 T1/T2 工具语义。调用方侧 Web 验证文档使用 v2.6。 |
推荐安装方式:pip install "t1-t2-protocol>=0.1.0"。错误发布到 PyPI 的版本 2.5.2–2.5.4 已撤回。
许可证
Apache License 2.0——参见 LICENSE。
为 MCP 生态系统打造。属于通过确定性架构探索 AI 安全这一更广泛项目的一部分。
链接
- 贡献指南
- MCP Registry —
io.github.Fauxetine/t1-t2-protocol - 安全政策
- 更新日志
- 设计理念
- 调用方侧 Web 验证 v2.6
- Agent / MCP 主机说明
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。