LingJing

io.github.genesis-planv1.0.1Updated Oct 9, 2026

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

Overview

AI-generated overview

LingJing runs a local virtual classroom where the assistant acts as a questioning AI student that probes a topic you explain and returns blindspots and a…

What it does
LingJing is a self-hosted virtual classroom: a human explains something they know, and one AI student (a mirror) asks follow-up questions from seven probe categories. A deterministic layer decides what to ask and which weak point to target, while an LLM only phrases the questions. After class it returns a side-by-side list of what was asked and what you answered, plus blindspots and a summary. It explicitly does not answer questions, grade, or judge.
When to use it
Useful for self-testing comprehension of material you already know, extracting tacit experience into queryable form, team handover, teaching practice, expert interviews, or research comparison. It is meant for local or intranet self-hosting, not as a public multi-tenant service.
Requirements
Local process, Node.js 22 or newer, no third-party dependencies; runs via node server.js and is opened in a browser at localhost. No account or authentication. Optional LLM phrasing requires an API key via environment variables such as LINGJING_OR_KEY, LINGJING_ZHIPU_KEY, LINGJING_SILICONFLOW_KEY, or LINGJING_DEEPSEEK_KEY, selected with LINGJING_LLM_PROVIDER. Without a key it runs on deterministic fallback text with no outbound calls.
Before you install
With an LLM configured, class text is sent to the chosen provider, which may be overseas; domestic providers can be selected instead. Classroom data is written to the sessions directory. There is no account, authentication, or public service, so it should not be exposed publicly without a compliance review. The project is UNLICENSED and has no CI, so changes are not automatically guarded.

Installation

In SourceWeft

  1. Open LingJing in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

灵境 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+)

bash
git clone https://github.com/genesis-plan/lingjing.gitcd lingjingnode server.js          # → http://localhost:8080

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

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

② 想让 AI 学生说人话(可选)

bash
# 默认 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.jsLINGJING_LLM_PROVIDER=siliconflow LINGJING_SILICONFLOW_KEY=xxx node server.jsLINGJING_LLM_PROVIDER=deepseek    LINGJING_DEEPSEEK_KEY=xxx    node server.js

③ 看真实测试基线

bash
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 学生问出的话一定切中要害;任何"教育效果"。研究引用是我们的设计依据,不是"已达到该效果"的证据。


文档

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

结构

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

许可(摘要)

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

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


联系

  • 授权 / 反馈:[email protected](亦可用仓库 Issues)
  • 版权方:广州红尘灵境(太白 / 邓其聪)

Source: README.md at commit 8144889

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v1.0.1LatestOct 9, 2026