GitLearnOS 深度研究:把「学习状态」存进 Git 的个性化 AI 辅导协议
先说一句人话版:现在会解题、会出题的 AI 一大把,但大多「教完就忘」——你下一回来找它,它又从零猜你是谁、卡在哪。GitLearnOS 想解决的不是「AI 怎么教得更好」,而是「你的学习状态,凭什么归平台所有、随会话蒸发」。它的答案很硬核:把状态写进一个学习者自己拥有的 Git 仓库,让可替换的主 Agent 每次都从已确认的位置接着教。
它不是一个辅导 App,不是一个模型,也不是一个数据库。它是一份平台无关的行为契约(协议版本 2.0-draft),外加一套可安装的 Skill、模板和(Developer Preview 阶段的)DeepSeek Harness 原生适配。下面逐层拆开。
---
一、核心承诺:学习发生在任何地方,状态属于你
GitLearnOS 给一个「有能力、可替换」的主 AI Agent 配上一块学习者私有的 Git 记忆。它负责:察觉有价值的学习事件、把证据连到目标、引导下一步、留下一份可检查、可撤销的记录。
关键定位有三句,值得反复读:
- 学习可以发生在任何地方——跟老师、在课堂、纸上、书里、练习平台、项目里、同伴间,或另一个 AI 面前。GitLearnOS 不把学习圈进某一个应用。
- 主 Agent 只接最有用的证据,不替你作答,也不替真实表现判定「会不会」。
- 默认私有。只有当学习者主动选择备份、跨设备、求师评阅、协作或发布时,才加远程仓库;且私有作答与缺口必须和共享材料分开。
---
二、架构:四层各司其职,谁也不越界
GitLearnOS 反复强调一句话:Git 是正式事实来源,RAG 只是可重建的检索层,Scheduler 只负责按时唤醒,Harness 只是承载事务的管道。任何一层都不能变成「学习事实的唯一来源」。
| 层 | 职责 | 是否必需 | 越界禁止 |
|---|---|---|---|
| Git 仓库 | 正式、可读、版本化的学习真相 | ✅ 必需(可纯本地) | 不能作为「第二套事实」之外的真相 |
| RAG(RAG-Anything,可选) | 检索已授权教材/笔记/晋升后的长期知识 | ❌ 可选,禁用也能跑 | 不能替 Agent 做掌握判定,不能每次回答都查 |
| Scheduler(真实调度器) | 在约定时间唤醒同一个主 Agent 跑到期复测/整理 | ❌ 可选(无则不标 automation-ready) | 不能因此创建「第二个学习 Agent」 |
| DeepSeek Harness 原生包 | 承载可校验的 Git 学习事务 + Agent 控制的面板 | ❌ 仅 Developer Preview 适配 | Host 不发明排名、不把面板状态当学习证据 |
---
三、学习事务模型:一次原子提交,可撤销
整个闭环长这样(协议原文):
真实学习事件
→ 整理有价值的证据
→ 需要时生成针对性问题
→ 接收作答或外部反馈
→ 更新下一步
→ 提交一次可撤销的 Git 改动
在 DeepSeek Harness 适配里,这一步由 learning_apply 落地:在 safe-auto 模式下,它能把一次学习变化里涉及的 event(事件)、knowledge-gap(知识缺口)、model(AI 提炼的可复用理解)、review(复测)、dashboard(总览) 五种操作,原子地写进同一笔可撤销的 Git 提交,前提是先过四道严格校验——学习者身份、setup/config、基础版本(base revision)、写入授权。
三种写入模式:
safe-auto:先解决眼前问题,再做最小安全写回(默认)。preview:只给出精确的待改内容,不落盘。manual:等学习者确认。
git revert 撤销边界。删除、改长期目标、发布/外发、密钥、大范围重构,即使在 safe-auto 下也必须先问。主 Agent 持续只回答三个问题:你卡在哪、现在给什么帮助、下一题该验什么。它依据任务表现,不给学习者贴抽象标签。
---
四、诊断纪律:同一句「不会」,不该得到同一个下一步
这是 GitLearnOS 最见功力、也最不像普通 AI 辅导的地方。协议里写得很硬:
> 表面错误是信号,不是诊断。在排除一些合理的替代解释之前,不得把「不会求二次函数最大值」升级为知识缺口。这是协议,不是模型性格。
它把「诊断」做成一个有证据链接的假设,而不是关于学习者的既定事实。流程是:
信号(非预期错误 / 认真尝试仍卡住 / 与既有掌握冲突)
→ 互竞假设
→ 鉴别性追问(约 1–3 个,只为劈开活假设)
→ 得到支持的最佳诊断,或仍保留不确定性
→ 学习者要求或确有必要时做干预
→ 独立、延迟的迁移检验
→ 印证、否定或改写学习模型
举协议里的例子:三个人都答错了 y = −2x² + 4x + 1 的最值题——
- 学生 A:不懂系数符号与开口方向的联系 → 练「符号 → 开口 → 极值」链;
- 学生 B:概念懂,但调不出顶点公式 → 恢复公式,或改用配方法;
- 学生 C:只是这一题漏看了负号 → 确认是偶然误读,不做过度训练。
更狠的是「写入门槛」:只有当某个具体假设已有正向鉴别证据、且会改变教学的替代已被排除或明显削弱时,才能写 supported;否则最多写 suspected,或保留精简事件、diagnosis_status = unknown。新证据否定某假设时,标为 falsified 但保留历史,并停止用该原因选题。
掌握度也只有三档,且刻意朴素:
unknown:没有有效表现证据;learning:有尝试或在帮助下完成的证据;demonstrated:经过间隔后独立完成,且目标要求迁移时完成迁移。
demonstrated 的判定权,永远留给间隔后的独立迁移证据,而不是模型写得多完整、重复多少次、或 AI 多有信心。---
五、可修正、可追溯:Git 给的底气
传统 AI 辅导最大的黑箱,是「它觉得你不会」这件事既不可见、也不可改。GitLearnOS 把这件事摊在阳光底下:
- 撤销即
git revert:上一次学习更新写错了?一条命令回到过去。 - 纠正是新记录,不是静默改写:原始作答、笔记、外部反馈永远保留;更正以新记录链接旧记录。
- 旧判断可被新证据推翻:昨天标
supported的诊断,今天新表现冲突,就打开互竞解释(遗忘?复杂度上升?迁移失败?以往掌握过于乐观?当天状态?),再出一道鉴别题。 - Dashboard 只是当前视图,不是第二套事实来源。
unknown 或「待验证」,不能猜测补全;从不声称一次写回、提交、RAG 检索、调度运行或掌握度——除非有直接证据。这跟许多产品「假装已替你配好调度器」的作风形成鲜明对比(README 明说:「网站 CTA 不创建仓库,也不假装某个按钮已 provision 了调度器」)。---
六、持久与可移植:换 AI 也能继续
因为状态躺在学习者自己的 Git 仓库里,所以:
- 换一个主 Agent(Claude Code / Codex / OpenCode / 任意支持 Git 的运行时),状态接着用,不用从零猜你;
- 不要求 GitHub。纯本地 Git 就能跑完整闭环,远程仓库只是异地备份/协作的可选项;
- 连续性由多层分担:
AGENTS.md/项目指令管长期规则,原生 AI 记忆只当「唤醒指针」,真正证据永远在 Git 仓库;
---
七、DeepSeek Harness 原生支持(Developer Preview)
GitLearnOS 目前独家为官方 DeepSeek Harness Developer Preview 提供原生包。落地说明白纸黑字区分了「证明了什么」和「没证明什么」,这种诚实很罕见。
已证明(当前代码):
- 一个免构建(no-build)的 Host + 浏览器客户端,被 Harness profile 发现;
- 受约束的
learning_status、learning_route只读观测; - 一笔
gitlearnos.yml授权的learning_apply事务:在严格校验后原子提交 event/gap/model/review/dashboard; - 回环只读面板:展示 Agent 维护的
Next up队列,尊重Panel: expand|collapse,标注开发用样例数据; - 五项队列动作:复测、练习、带一道选择题收尾、问老师、看笔记。
- 安装包只证明「被发现」,不证明学习者仓库写入权限、RAG 摄取或后台部署;
- RAG 不在本包内,也不被调用/配置;
- 重复检查不依赖第二个 Agent,但只有真实具备仓库能力的调度器确实按时唤起了同一个主 Agent,才算数(Harness Schedule 是会话级的,得真能提供这种调用才算);
- 视觉能力:DeepSeek 默认纯文本。两条受支持路径——配支持图片输入的第三方多模态模型,或保留 DeepSeek 为主模型、装一个授权的视觉/OCR 桥接插件;两者都没有时,Agent 必须请学习者转写,不能猜图片内容。
host-baseline-pass;只有演示出可写入的集成,才给 full-pass。---
八、设置:唯一标准指令与就绪状态
Quickstart 里藏着一段「唯一标准设置指令」(canonical setup prompt),要求 Agent:完整读协议、默认用户即学习者、一次性问清目标/学科/当前资料/可选本地 RAG、等学习者回答前绝不安装或提交、配置持久项目指令与原生记忆、在两个真实调度器里各试运行一次、最后报告触发层与撤销边界。
最小落地仓库:
gitlearnos.yml # 唯一持久配置与部署声明
AGENTS.md
automation.md # 真实调度器状态
dashboard.md
learner-profile.md
subjects/<学科>/
goals/main-goal.md
gitlearnos.yml 里有一份最小形状,值得贴出来看清它的「诚实默认值」:
protocol: "2.0-draft"
mode: safe-auto
authorization:
automatic_writes: true
commits: true
push: false
privacy:
repository: private
store_conversations: false
rag:
choice: undecided # 设置门槛前的诚实默认,undecided 不算就绪
automation:
time_zone: Asia/Shanghai
jobs:
maintenance: { recurrence: daily, local_time: "21:30" }
due-review: { recurrence: daily, local_time: "07:00" }
就绪状态必须由可验证证据计算,不能手写成宣传字段:
| 状态 | 含义 |
|---|---|
core-ready | 已验证目标仓库身份、gitlearnos.yml、入口说明及基本读写/Git 能力 |
knowledge-ready | 已回答并记录目标/学科/材料边界/来源工作区及明确 RAG 选择(enabled 或 declined) |
automation-ready | 两个重复任务均在具备仓库能力的调度器中观察到,并各真实测试一次 |
full-ready | 三者皆满足且所有声明能力独立验证 |
incomplete | 缺失能力诚实标出,不静默升级 |
due-review(默认 07:00,生成可立即作答的具体题)和 maintenance(默认 21:30,整理待办/过时视图/矛盾状态)——没有真实调度器运行证据就只能标 incomplete,绝不靠「我计划了」冒充「跑过了」。---
九、评测与验收:18 个场景,不靠文本匹配
GitLearnOS 用文档化学习场景验收,而不是精确文本比对。人和 AI 都能跑同一批 case,每个场景定义:初始状态、学习者输入、必需行为、禁止行为、可观察证据。通过 = 仓库与回执满足每条不变量。
18 个场景覆盖:单次请求引导(01)、整理笔记(02)、调和教师反馈(03)、生成到期复测(04)、独立作答写回(05)、防伪造与去重(06)、无 GitHub 运行(07)、受限 SAT 学习(08)、识别隐含学习事件(09)、GitHub 师生协作(10)、无 Skill 连续性(11)、跨 Agent 安装校验(12)、可选 RAG 路由(13)、重复错误综合成可迁移模型(14)、重复组织与出题(15)、DeepSeek Harness 原生校验(16)、鉴别诊断前置(17)、新学习不触发审问式诊断(18)。
还给了机器可校验的产物 schema(JSON),断言:一键回退、仅含问题的脱敏、证据支撑的晋升不阻塞冲突、对 demonstrated 要求延迟独立迁移、规范队列 ID/路径仅在实质变化时重排。这套「可机器验证」的设计,比绝大多数 AI 教育项目的「演示视频即证据」扎实得多。
---
十、批判性评估:强在哪,坑在哪
强项
- 厂商中立 + 学习者所有 + 可移植:状态在你自己的 Git 里,换 Agent、换平台都不丢,不被任何一家锁定。
- 证据链接、可修正、可审计:git 天然给出版本、撤销、追溯;纠正留痕不静默改写。
- 鉴别诊断的严谨度罕见:把「表面错」和「真因」严格分开,写入门槛高,摆明反对 AI 给学习者贴标签。
- 诚实性纪律到位:明确区分「已证 / 未证 / aspirational」,禁止无证据声称,连「假装配好调度器」都点名批评。
- 评测可机器校验:18 场景 + schema,验收门清晰。
- 仍是 Developer Preview,成熟度未知:独家适配目前只是窄 Host,写入集成尚未广泛验证;单维护者项目(Guojiz),存在 bus-factor 与长期维护风险。
- 不是开箱即用:完整闭环要求一个具备 Git 读写能力的 AI 运行时——本地 Git ≠ 完全离线的 AI 系统,仍要能跑模型。设置还有不低的摩擦(Skill 安装、原生路径、调度器验证)。
- Git 历史可能变噪:每次学习事件一笔提交,长期下来仓库提交量大,需要良好的 reconcile/去重纪律(协议已要求「重复输入更新既有状态而非新建文件」,但仍考验实现)。
- RAG 可选但大材料刚需:教材/长 PDF 多了,没有 RAG 会吃力;而引入 RAG-Anything 又加一层复杂度与隐私面。
- 视觉能力依赖插件:默认纯文本,看不懂图片/板书,除非配多模态模型或 OCR 桥;否则只能请人转写。
- 成功条件难自动度量:协议说成功 = 「日后独立表现更好」,而不是「生成笔记更多」——这个标准正确,但很难由系统自证,更多靠外部评测场景兜底。
- 采用度未知:公开 Star 数、实际用户规模无从在本研究中核实,属于「unknown」而非「零」。
十一、与同类对比(简表)
| 维度 | GitLearnOS | 通用 LLM 辅导 | Khanmigo 类 | Anki 类 |
|---|---|---|---|---|
| 状态归属 | 学习者 Git 仓库(私有、可移植) | 平台会话(易蒸发) | 厂商云端(锁定) | 本地/账户(仅卡片) |
| 诊断深度 | 互竞假设 + 鉴别追问 + 写入门槛 | 通常直接给讲解 | 中等,偏引导 | 无(纯记忆间隔) |
| 可修正性 | git revert + 链接式纠正 | 几乎不可见 | 弱 | 卡片可编辑 |
| 跨 Agent 移植 | ✅ 仓库即状态 | ❌ | ❌ | 部分(导出) |
| 是否需要模型 | 需外部运行时 | 需模型 | 需模型 | 不需要 |
| 诚实性纪律 | 强(已证/未证分明) | 参差 | 厂商自述 | 不适用 |
---
十二、给技术负责人的启示
带团队、做高并发 Agent 系统的人,看 GitLearnOS 不该只当「教育工具」,而该看它的 状态层架构范式:
- 把「可变状态」与「可调用的智能」解耦:智能(Agent/模型)可替换,状态(Git 仓库)归用户——这套思路对任何「长期服务的个性化系统」都成立,比如你正在做的 AlphaGPT 经验资产层。
- 原子事务 + 严格校验 + 可撤销回执:一次有意义的变更 = 一笔带身份/版本/授权校验的提交,并回执撤销边界。这正是高可靠 Agent 写操作的样板。
- 调度不养第二个 Agent:只唤醒同一个主 Agent,避免「多 Agent 各写各的」导致状态分裂——和很多 Multi-Agent 框架的坑正好相反。
- 诚实性即架构约束:把「无证据不声称」写进协议和验收场景,而不是靠 prompt 良心。值得在任何对外 Agent 产品里照搬。
---
收口:速记口诀
> 状态归你,存进 Git;表面是错,不是诊断; > 互竞假设,鉴别才定;纠正留痕,revert 能回; > 换 AI 不慌,仓库接着教;已证未证,分得清才配叫可靠。
---
参考来源
- GitLearnOS GitHub 仓库:https://github.com/Guojiz/GitLearnOS (MIT License,v2 协议开发中)
- 官方站点:https://guojiz.github.io/gitlearnos/
README.md:核心承诺、四层架构、DeepSeek Harness 原生支持范围zh-CN/GITLEARNOS.md(协议2.0-draft中文译版,英文 GITLEARNOS.md 为机器可执行正式契约):诊断纪律、写入权限、Git 行为、自动化、合格标准zh-CN/QUICKSTART.md:唯一标准设置指令、最小仓库结构、就绪状态docs/deepseek-harness-launch.md:已证 / 未证边界、视觉能力路径evals/README.md:18 个验收场景、机器可校验产物 schema、接受门- 中文介绍视频:https://b23.tv/n2DTU1d