LingJing

LingJing classroom MCP: human teaches, AI student questions; returns blindspots & summary.

AI & MLJavaScriptv1.0.2

灵境 LingJing

License Node Deps Core

一间虚拟课室:人类给 AI 上课,AI 当一面镜子。 人讲 → AI 多角追问 → 人答 → 人自判 → 带走你的思考、盲区与总结。

English web version (no install, BYO-key): https://hongchenlingjing.com/lingjing-en/ — three personal uses: self-learner comprehension checks, a private knowledge library, your own experience made queryable. No signup; your API key stays in your browser and is never sent to any server (BYO-key app). Works with free models (OpenRouter free tier).

角色契约:人类是体验者(也是传授者),AI 是激发者;AI 不学习、不评分、不判定,判定权永远归人。 这不是产品态度,是架构不变量——世界模型 World = ⟨S, R, M, T⟩ 里根本不存在「学生 → 分数」这条边。

说明
是一间可以本机跑起来的虚拟课室;一名 AI 学生(一面镜子 · 小明)按七类探测追着你问;课后给你「他问的 / 你答的」逐条并排清单
不是答疑机器人(它不答问)、评分 / 考核工具、知识库检索、情感陪伴产品,也不是公网可用的多租户服务

30 秒上手

① 跑起来(零依赖,Node 22+)

git clone https://github.com/genesis-plan/lingjing.git
cd lingjing
node server.js          # → http://localhost:8080

浏览器打开 http://localhost:8080(2D 课室)或 http://localhost:8080/classroom3d.html(3D 课室,Three.js 已本地化,离线可用)。 再点 / 上的输入框,讲一段你熟悉的东西——课就开始。

不配任何密钥也能跑:走确定性兜底语料,流程完整、体验降级、全程零外发。

② 想让 AI 学生说人话(可选,须自带 key)

# 默认硅基流动(国内,数据不出境);须自带 key
LINGJING_LLM_PROVIDER=siliconflow LINGJING_SILICONFLOW_KEY=xxx node server.js

# 或换其他境内提供商
LINGJING_LLM_PROVIDER=zhipu LINGJING_ZHIPU_KEY=xxx node server.js

# 仅当你明确要用境外 OpenRouter 时才指定(课堂文本将出境,须自担合规)
LINGJING_LLM_PROVIDER=openrouter LINGJING_OR_KEY=sk-or-v1-xxx node server.js

# 或换境内提供商(数据不出境)
LINGJING_LLM_PROVIDER=zhipu       LINGJING_ZHIPU_KEY=xxx       node server.js
LINGJING_LLM_PROVIDER=siliconflow LINGJING_SILICONFLOW_KEY=xxx node server.js
LINGJING_LLM_PROVIDER=deepseek    LINGJING_DEEPSEEK_KEY=xxx    node server.js

③ 看真实测试基线

node tools/test_questioning.mjs     # 提问引擎(确定性提问规格)
node tools/test_reflection.mjs      # 双稿制反思引擎
node tools/test_weakpoint.mjs       # 薄弱点定位层(跨场景必不同)
node tools/test_p0_wiring.mjs       # 盲区环端到端接线

完整 23 个测试的分类、依赖与真实通过数见 02 · 使用指南。


能力边界(诚实声明)

维度说明
判定不做。任何"你答到了没有 / 学生懂没懂"的自动判定都已被主动删除(曾经实装过,标定发现是噪声)
学生的"理解度"不存在这个量。我们不知道一个 AI 学生有没有"悟"(它没有脑子),所以从不声称知道
AI 学生人数1 名(一面镜子)。2026-09-18 由"5 名学生分角色"改为一名——要的是照出缝的镜子,不是一群角色
提问由谁决定确定性层决定"问什么、钉哪个口子"(薄弱点定位 + 提问规格);LLM 只当"嗓音"负责把它说出口
依赖零第三方依赖(只用 Node 内置模块与浏览器标准 API)
数据不留账号、不留手机号;课堂世界落 sessions/(已 gitignore);配了 LLM 才外发文本,可切境内提供商或完全不配
部署自托管(本机 / 内网)。无账号、无鉴权、无公网服务;公网运营前须过合规清单(见 06)
验证tools/ 下 23 个自动化测试;无 CI(改动无自动守护,见 07)

不承诺:AI 学生问出的话一定切中要害;任何"教育效果"。研究引用是我们的设计依据,不是"已达到该效果"的证据。


灵境 MCP · 给 AI Agent 的课室

灵境除了本机网页课室,现已打包成 MCP stdio server(lingjing-classroom-mcp)——让任何支持 MCP 的 AI Agent / 编排器直接调用这间"课室":人(或 Agent)讲授,灵境当学生追问,返回盲区与总结。

特性:确定性引擎,无需 LLM、无需联网、可离线复现;fail-closed(无效会话直接报错)。与网页课室共享同一套"七类认知盲区"判定逻辑,但不经过 LLM 嗓音层,纯本地可复现。

一键接入(agents npx 即用)

npx lingjing-classroom-mcp

四个工具:lingjing_start_session(开课)→ lingjing_teach(讲授 + 苏格拉底追问)→ lingjing_reflect(七维盲区 + 总结 + 卡片)→ lingjing_close_session(收尾并清理)。完整用法见 mcp/README.md。

发现 / 分发

渠道状态
官方 MCP Registryio.github.genesis-plan/lingjing v1.0.1(active · isLatest)
npmlingjing-classroom-mcp @1.0.1
Glama / HiMCP / LobeHub待自动收录(本仓已含 server.json,目录爬到即显)

包源码在 mcp/;Registry 条目与 npm 包版本一致。许可同本仓 UNLICENSED(商用须书面授权)。


文档

文档内容
01 · 产品作用它是什么、给谁用、为什么不评分、能力与边界、对外口径红线
02 · 使用指南自托管上手、HTTP 接口、环境变量、LLM 配置、测试真实基线、常见问题
03 · 设计思想角色契约、盲区照见反思环、理论依据、试过并删掉的东西、防漂移红线
04 · 技术参考模块表、薄弱点定位层、提问引擎、双稿制反思、世界模型、LLM 接入、测试体系、已知问题
05 · 应用场景七类场景(经验萃取 / 费曼自测 / 团队交接 / 教学训练 / 专家访谈 / 研究对照 / 部署形态)与误用清单
06 · 许可与合规授权现状(UNLICENSED)、数据实践与出境提示、公网运营前必须补的清单
07 · 版本管理当前无版本号体系的原因、建议约定、发布一致性清单、兼容性承诺
08 · 项目历史从物理定律学习到虚拟课室的完整沿革,含被推翻的方向与被删除的功能
09 · 数学框架设计期统一数学框架(灵境照见代数)——归档文档,实现以 04 为准
10 · 方法论基座盲区照见反思环的方法论展开与证据基座——归档文档,实现以 04 为准

结构

server.js            极简 HTTP 服务(SSE 流式课堂 + 静态资源 + 安全护栏)
teacher.js           课堂编排:探针调度(薄弱点定向优先 + 轮转兜底)、纪要、finalize
teaching.js          纯数学模型:薄弱点定位层 detectWeakPoints + 七类探测策略库
questioning.js       TCMQ 确定性提问引擎(只产出"问句规格",不产出文字)
llm.js               LLM 连接器:多提供商 + 降级链 + 按功能组合管线
world.js             世界模型 ⟨S,R,M,T⟩(公理3:人类=外部输入;无"学生→分数"边)
retention.js         匿名留存埋点(只给离线脚本读,绝不进用户屏幕)
public/              课室前端(2D/3D)、双稿制反思、课后总结、跨课知识库、课前生产性失败
tools/               23 个自动化测试 + 辅助脚本
docs/                主题文档(本表)
mcp/                 灵境 MCP stdio 包源码(给 AI Agent 的课室,见上)
server.json          官方 MCP Registry 清单(目录/Glama/HiMCP 自动发现用)

许可(摘要)

UNLICENSED —— 保留所有权利。 仓库公开可见 ≠ 授权使用: 未经版权人明确书面许可,不得复制、修改、分发、再许可或用于商业 / 非商业目的。 若希望以具体开源协议(MIT / Apache-2.0 或开源 + 商用双轨)使用,请与版权人另行联系。

⚠️ 已知张力:LICENSE 字面禁止复制,而本文档的"30 秒上手"写着 clone 自跑 —— 二者尚未对齐,属版权人待拍板的法律决策,工程侧不代决。详见 06 · 许可与合规。


联系

  • 授权 / 反馈:553420544@qq.com(亦可用仓库 Issues)
  • 版权方:广州红尘灵境(太白 / 邓其聪)

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y lingjing-classroom-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-genesis-plan-lingjing": {
      "command": "npx",
      "args": [
        "-y",
        "lingjing-classroom-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

lingjing-classroom-mcpnpm

Compatible MCP Clients

LingJing works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More