内容
# wquestions-mcp
**用 7 个问题构建任意领域模型**
一个 MCP 服务器,允许克劳德桌面版(或任何 MCP 客户端)使用一套固定的工具,构建和查询**任何**领域的知识模型 - 例如 Spa、理发店、诊所、银行。
## 问题
目前每个领域都有其专属的本体论或数据库模式:销售用的 CRM 模式、诊所用的临床模型、银行或出租车调度器用的不同模型。这些模型在领域间无法转移,且都不是为大语言模型推理而设计的 - 每个新领域都意味着在 AI 可以开始回答问题之前需要进行新的建模工作。
WQuestions 用一个固定的索引取代了所有这些:**7 个轴**,任何领域的任何事实都可以根据这 7 个轴来回答。通过在这些轴上断言事实来建模领域;无论领域是什么,都以相同的方式查询它。
## 7 个轴
| 轴 | 问题 | 持有 |
|---|---|---|
| Q | 谁 | 代理 |
| O | 什么 | 对象和具体情况(事实作为事物) |
| L | 在哪里 | 地点 |
| T | 何时 | 时间点和时间间隔 |
| N | 多少 | 带单位的量级 |
| K | 哪一个 / 什么类型 | 非时间类别、类型、状态 |
| M | 如何 | 连接 Q/O/L/T/N/K 的谓词 - 结构,而不是值轴 |

## 快速开始
将以下内容添加到您的克劳德桌面版配置(`claude_desktop_config.json`)中,然后重启克劳德桌面版:
```json
{
"mcpServers": {
"wquestions": {
"command": "uvx",
"args": ["wquestions-mcp"]
}
}
}
```
如果您更喜欢从源代码运行,请克隆此仓库,并在仓库根目录下运行 `pip install -e .` 到虚拟环境中(引擎已捆绑 - 无需其他软件包)。然后,将 `command`/`args` 指向该虚拟环境的 `wquestions-mcp` 脚本(例如 `command: ".../.venv/bin/wquestions-mcp"`,`args: []`)。
然后询问克劳德: *"加载 Spa 示例,然后给我展示模型。"* 请参阅 [`DEMO.md`](DEMO.md) 以获取完整的 30 秒演练。
## 工具
| 工具 | 功能 |
|---|---|
| `list_axes` | 描述 7 个轴 |
| `list_roles` | 列出规范角色(谁/什么/在哪里... 连接词),按领域和范围类型 |
| `add_entity` | 在值轴(Q、O、L、T、N、K)上创建个体;对于 N 轴,传递 `value` + `unit`(K 实体 ID 或内联规范)- 没有单位的量级被拒绝 |
| `define_verb` | 注册情况类型及其角色 - 可选,`assert_situation` 自动注册未知动词 |
| `assert_situation` | 断言事实:具体化情况并附加其角色 |
| `correct` | 通过重新断言现有情况的角色来纠正/更新 - 追加式;`ask` 返回最新的,`history=true` 显示记录 |
| `ask` | 按投影查询 - 固定一些角色,询问其他角色,可选地截至某个时间点;传递 `history=true` 获取完整的按时间顺序的记录,而不是当前值 |
| `show_model` | 转储当前宇宙:每个实体和事实 |
| `load_example` | 加载预建的演示宇宙(`spa`)以立即尝试查询 |
| `reset` | 清除模型并启动新的宇宙 |
## 工作原理
LLM 客户端执行自然语言到结构的转换步骤:它读取 "Diego 在 2025-06-11 在 Barber Kings 给 Marco 剪了头发" 并将其转换为角色标记的参数(`agente: diego, paciente: marco, lugar_de: barber_kings`)。服务器从不解析英语 - 它接受这些角色,根据 7 轴模型验证它们,并运行摄取和查询 `wq` 引擎。相同的引擎,相同的 10 个工具,无论它们背后的领域是 Spa 还是理发店。
## 持久性
默认情况下,服务器将其宇宙持久化到追加日志中,并在重启时重新加载,因此建模领域在会话之间存活 - 您永远不需要手动重建。通过 `reset` 可以在其中启动一个全新的领域。
- **默认位置:** `~/.wquestions/universe.jsonl`。
- **选择文件:** 设置 `WQUESTIONS_LOG=/path/to/domain.jsonl`。每个领域都指向其自己的文件(例如,客户端配置中的每个 MCP 服务器条目)- 一个日志一次保存一个实时宇宙。
- **关闭(纯内存):** `WQUESTIONS_LOG=off`。
`show_model` 报告活动的日志路径和重放的事件数量,因此您可以确认持久性已启用。
## 进一步阅读
7 轴模型 - 为什么它是固定的,每个轴实际承诺的内容,以及它在您深入研究时如何保持完整 - 在 *WQuestions* 中完整阐述,这本书就是从这个项目衍生出来的(西班牙语)。从 [第 8 章,多维空间](https://joseabantomarin.github.io/WQuestions/08-espacio-multidimensional.html) 开始阅读轴模型本身,或查看 [目录](https://joseabantomarin.github.io/WQuestions/00-introduccion.html)。