# TetraFrame：基于四元逻辑的 DSPy 推理框架

> 一个实现四元逻辑（tetralemma）推理的 DSPy 管道框架，通过九阶段流水线将问题分解为四个独立立场（P、非P、两者皆是、两者皆非）进行综合推理。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-02T23:43:18.000Z
- 最近活动: 2026-04-02T23:57:28.380Z
- 热度: 157.8
- 关键词: TetraFrame, 四元逻辑, DSPy, 推理框架, tetralemma, 结构化推理, LLM 管道
- 页面链接: https://www.zingnex.cn/forum/thread/tetraframe-dspy
- Canonical: https://www.zingnex.cn/forum/thread/tetraframe-dspy
- Markdown 来源: ingested_event

---

# TetraFrame：基于四元逻辑的 DSPy 推理框架

## 什么是四元逻辑

在传统二元逻辑中，我们习惯于非此即彼的思维方式——命题要么为真（A），要么为假（非A）。然而，这种二元框架容易陷入折中妥协的陷阱：先陈述一个论点，然后反对它，最后取中间立场。

**四元逻辑（Tetralemma，梵语 catuṣkoṭi）** 源自佛教逻辑学，由公元2世纪的那伽犀那（Nāgārjuna）发展完善。它提供了四个而非两个选项：

- **P** —— 命题成立
- **not-P** —— 命题不成立
- **Both** —— 两者同时成立
- **Neither** —— 两者皆不成立

四元逻辑的关键在于：**在综合之前，独立探索所有四个角落**，避免过早陷入折中。

## TetraFrame 框架概述

TetraFrame 是一个基于 DSPy 的九阶段推理管道，强制实施四元逻辑的结构化推理流程。它将复杂问题分解为四个独立的立场进行分析，最后综合成一个统一的输出。

### 九阶段推理流水线

```
Seed → Predicate → Four Corners → Harden → Cartograph → Arbitrate → Transform → Domain Adapt → Verify
```

| 阶段 | 名称 | 功能描述 |
|------|------|----------|
| 1 | Seed Distill | 从输入中提取利害关系、约束条件、未知因素和隐藏假设 |
| 2 | Predicate Selection | 选择四个角落将要推理的操作性谓词 |
| 3 | Four-Corner Generation | 独立生成 P、not-P、Both、Neither 四个立场 |
| 4 | Hardening | 强化每个立场，标记实际上是妥协的"Both" |
| 5 | Cartography | 映射四个角落之间的重叠、矛盾和崩溃信号 |
| 6 | Arbitration | 评估各立场的严谨性，检测近似重复和污染 |
| 7 | Transform | 综合四个立场的输出，不进行简单平均 |
| 8 | Domain Adapt | 将结果重塑为特定领域的格式（代码、写作、计划等） |
| 9 | Verify | 最终质量检查，检测妥协语言和虚假新颖性 |

## 核心设计原则

### 隔离生成

TetraFrame 强制要求 P 和 not-P 彼此隔离生成，Both 必须产生两个同时持有 P 和 not-P 的不同立场（而非妥协），Neither 必须拒绝原始框架并提出替代谓词。在 Cartography 阶段之前，任何角落都不能看到其他角落的内容。

这种设计避免了传统链式思维（Chain-of-Thought）中常见的立场污染问题，确保每个立场都是独立、完整的论证。

### 结构化验证

框架内置多重验证机制：
- **Hardening 阶段**检测软弱的妥协立场
- **Arbitration 阶段**识别重复或受污染的论证
- **Verify 阶段**最终把关，确保输出质量

## 使用方式

### 命令行使用

```bash
# 安装
cd tetralemma
python -m venv venv
venv/bin/pip install -e ".[dev]"
venv/bin/python -m pytest -q

# 运行推理
venv/bin/tetraframe run \
  "We keep framing product expansion as enter or do not enter, but the real choice may be staged reversible commitments." \
  --config configs/base.yaml \
  --out runs/latest/run.json
```

输出包括：
- `runs/latest/run.json` —— 完整运行产物
- `runs/traces/<run_id>.jsonl` —— 每阶段跟踪记录，包含时间和后端信息

### 支持的模型后端

TetraFrame 支持多种模型提供商：

| 提供商 | 配置文件 | 环境变量 |
|--------|----------|----------|
| OpenAI | configs/openai.yaml | OPENAI_API_KEY |
| Anthropic | configs/anthropic.yaml | ANTHROPIC_API_KEY |
| OpenRouter | configs/openrouter.yaml | OPENROUTER_API_KEY |
| OpenAI-compatible | configs/openai_compatible.yaml | 任意 |

还支持 CLI 工具作为后端（如 Claude Code、Codex、OpenCode），通过子进程运行。

### 自动发现后端

无需配置文件即可自动发现可用后端：

```bash
venv/bin/tetraframe discover          # 显示可用工具
venv/bin/tetraframe run "seed"       # 自动选择最佳可用
venv/bin/tetraframe run "seed" --tool openai-api  # 强制指定工具
```

优先级：Hermes pools > 有密钥的 API 后端 > PATH 上的 CLI 工具

### 编程接口

```python
from tetraframe.config import load_config
from tetraframe.backends.factory import build_dspy_lm
from tetraframe.pipeline import TetraFrameProgram, build_runtime_runner
import tetraframe.dspy_compat as dspy

cfg = load_config("configs/base.yaml")
lm = build_dspy_lm(cfg)
dspy.configure(lm=lm)

program = TetraFrameProgram(cfg)
runner = build_runtime_runner(program)
result = runner.run("Your reasoning seed")
result.to_json("runs/latest/run.json")
```

## 代理服务器功能

TetraFrame 包含 `tetraframe-proxy` 工具，可将任何配置的后端暴露为 OpenAI 兼容的 HTTP API：

```bash
venv/bin/tetraframe-proxy --config configs/claude_code_cli.yaml
venv/bin/tetraframe-proxy --host 127.0.0.1 --port 8765
```

支持通过 `X-Backend` 头在请求级别选择后端：

```bash
curl http://127.0.0.1:8765/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-Backend: claude-code" \
  -d '{"messages": [{"role": "user", "content": "Hello"}]}'
```

## 实际运行示例

以下是一个真实运行案例，TetraFrame 分析其自身的管道架构。种子问题询问：TetraFrame 的多阶段架构是否产生真正的推理改进，还是仅仅产生复杂的重述？

### 阶段 1 — Seed Distill（61秒）

从原始种子中提取结构，输出包括利害关系、约束条件、未知因素、隐藏假设和候选谓词。

提取结果示例："TetraFrame 是一个基于四元分解的 9 阶段、20+ LLM 调用推理管道。它面临三个可分离的问题：(A) 未解决的架构方向——是整合调用以降低成本/延迟，还是深化阶段隔离以提高质量；(B) 验证差距——当前套件可以启发式检测垃圾输出，但无法区分真正的辩证转化与复杂的重述；(C) 闭环差距——领域适配器产生类型化产物，但没有来自下游消费者的信号返回上游阶段。"

隐藏假设示例："9 个阶段是正确的粒度——既不多也不少——而不是系统最初构建方式的人为产物。"

### 阶段 2 — Predicate Selection（152秒）

选择四个角落将要推理的操作性谓词。

选定谓词："TetraFrame 的多阶段管道产生的输出在可测量程度上与其输入的复杂重述不同，这一点由在嵌入距离、结构新颖性和逻辑形式变化维度上操作的交叉验证二元分类器确定，在保留标记示例上的精确率和召回率均高于 0.80。"

选择理由：主要谓词之所以被选中而非架构整合问题，是因为它是先决条件：必须先解决问题 B，才能有意义地解决问题 A 或 C。

## 高级功能

### 基准测试

```bash
venv/bin/tetraframe benchmark \
  --config configs/base.yaml \
  --dataset examples/benchmark_cases_test.jsonl \
  --out runs/benchmarks/report.json
```

### 编译优化程序

```bash
venv/bin/tetraframe compile \
  --config configs/compile.yaml \
  --out runs/compiled_program.json
```

### 跟踪分析

每次运行都会写入 JSONL 跟踪文件，包含阶段名称、延迟、后端信息和输入/输出摘要，便于后续分析和优化。

## 应用场景

TetraFrame 特别适合以下场景：

- **复杂决策分析**：避免过早陷入二元对立的思维陷阱
- **创意写作**：探索故事发展的多种可能性
- **战略规划**：全面评估商业决策的多个维度
- **学术研究**：深入分析论点的正反两面及超越性视角
- **产品设计**：突破"做或不做"的简单框架，寻找创新路径

## 总结

TetraFrame 将古老的四元逻辑智慧与现代 LLM 管道工程相结合，提供了一种结构化的深度推理方法。通过强制隔离生成和九阶段验证，它帮助用户突破二元思维的局限，探索问题的完整可能性空间。

对于需要深度思考、避免草率结论的复杂问题，TetraFrame 提供了一个强大的框架工具。
