Personal-Ontology
Health Uyari
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- process.env — Environment variable access in .github/workflows/ci.yml
- new Function() — Dynamic code execution via Function constructor in lab-ontology/vault/ops/gateway/knowledge-catalog.test.mjs
- process.env — Environment variable access in lab-ontology/vault/ops/gateway/knowledge-router.test.mjs
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Evidence-aware personal knowledge system for AI agents: schema-governed Obsidian vault, proposal-gated MCP gateway, and the skills around it / 面向 AI Agent 的个人本体:Vault + 网关 + Skills
让 AI Agent 长期、可追溯、经你批准地维护"关于你"的知识。
这是一个原创的个人本体工作台:一个完整知识系统(lab-ontology)、一个可独立使用的可信度核心(lab-trust-core),以及四个围绕知识流工作的 Skill。它解决的是 Agent 记忆的三个老问题——记得零散、来源不可追、还会在你不知情时被改写。这里的答案是三条立场:
- Markdown 与 Git 是唯一事实源。 向量库、关系图、检索索引都是可以随时从 Markdown 重建的派生层;换引擎不丢知识。
- 写入即提案。 任何 Agent 都能读,但没有谁能直接写。每次改动都是一份精确到文件内容基线的提案,只有你在当前对话里明确批准,网关才会校验、提交 Git、重建索引。
- 证据有边界,结论有成熟度。 一条观点从哪来、样本多大、利益关系如何、允许用在哪,都是字段而不是修辞;
seed → corroborated → validated按独立来源家族计,不按重复次数投票。
全景
flowchart LR
subgraph Collect["采集 · 把经历变成材料"]
CD["lab-wx-distillation<br/>从微信等既有记录蒸馏"]
LR["lab-life-reviewer<br/>主动访谈逐事件还原"]
end
subgraph Distil["蒸馏 · 决定什么值得留"]
KR["lab-retrospective<br/>结论复盘 / 逐轮法证审计"]
end
subgraph File["入库 · 提案与批准"]
KI["lab-intake<br/>查重 → 精确提案 → 等待批准"]
end
subgraph System["lab-ontology · 核心系统"]
GW["agent-knowledge 网关 (MCP)<br/>13 个 knowledge_* 工具"]
V[("Vault<br/>Markdown + Git")]
IX[("Native 派生索引<br/>关键词 + 向量")]
end
CD --> KR
LR --> KR
KR --> KI
KI --> GW
GW -- "用户批准后提交" --> V
V -. "可重建" .-> IX
AG["任意 MCP Agent(Claude / Codex / others)"] -- "knowledge_route / search / get" --> GW
TC["lab-trust-core · Trust Core<br/>独立 SDK / CLI / read-only MCP"]
GW -. "knowledge_get 后<br/>非强制 shadow" .-> TC
EXT["其他知识系统 / RAG / Agent"] -. "可独立调用" .-> TC
从左到右就是知识的流向:先从既有记录或主动访谈里采集材料,再由复盘环节决定什么值得留下,最后经提案流程入库。所有 Agent 读知识都走同一个网关,读到的是同一份 Vault。
和常见「自动记忆」的区别
多数给 Agent 加记忆的方案是一个自动写入的黑盒:模型觉得重要就存,存进一个你打不开的向量库。这个仓库走的是另一条路:
| 常见自动记忆层 | Personal-Ontology | |
|---|---|---|
| 写入 | 模型自动判断、随时写 | 每次写入都是一份精确提案,你批准才落盘 |
| 存储 | 私有数据库 / 向量库 | Obsidian 里的 Markdown + Git 历史,你随时可读可改 |
| 出处 | 无 | 每条结论带来源家族、样本量与 seed → corroborated → validated 成熟度 |
| 检索 | 向量相似即注入 | 精确优先路由:相似度只排序候选,永不单独触发读取 |
| 迁移 | 与服务绑定 | 索引和图谱是派生层,可随时从 Markdown 重建 |
代价也说清楚:它比"装上就有记忆"的方案重——需要运行本地网关,完整语义检索还需要兼容的向量服务,每次写入也要你点头。适合把个人知识当长期资产管理的人,不适合只想要聊天记忆的场景。
核心系统:lab-ontology
lab-ontology 是共享知识流的核心系统;入库与复盘 Skill 直接使用它,采集 Skill 也可以独立产出交接包。它包含三样东西:
- 一个 Vault 骨架(
lab-ontology/vault/),可以直接用 Obsidian 打开。知识按"未来如何被 Agent 使用"分三层:.raw/只保可复原、从不进索引;sources/存证据与候选观点,按需检索;projects/ decisions/ methods/ syntheses/ concepts/是默认参与判断的结果层。页面契约写在ops/SCHEMA.md,Agent 行为规则写在ops/AGENTS.md。 - 一个 MCP 网关(
vault/ops/gateway/),名为agent-knowledge,暴露 13 个knowledge_*工具:route/search/get/list/related负责读,intake/schema返回契约,propose_changes/list_proposals/get_proposal/apply_proposal/reject_proposal负责提案与审批,repair_index负责修复派生索引。读取是"精确优先"的:向量相似度只排序候选,从不单独触发读取。 - 一套 Native 治理与检索工具:Git 提交绑定的 Markdown 目录、关键词与向量混合索引、同提交关键词回退、由 frontmatter 链接生成的带类型关系、可重建的人类
index.md、Vault/Schema 校验器和索引范围检查。Schema pack(agent-decision-memory)位于ops/agent-knowledge-schema/pack.json。
它不是 prompt-only 的:CI 会把骨架复制到临时目录并初始化成独立 Git Vault,再运行完整确定性单测、Schema/Vault 校验和 13 工具启动探针。Native 向量、构建与修复协议由合成 embedding 服务测试;test:smoke 在临时合成 Vault 中验证同提交关键词降级链。完整向量能力使用 Ollama-compatible embedding 服务,真实服务只用于可选的人工本地集成检查。仓库里只有系统和合成 fixture,没有作者的个人知识。
Trust Core:lab-trust-core
打开 Trust Core 文档 · 数据模型 · 集成说明
lab-trust-core 接收一条结构化知识记录及其预期用途,返回可解释的 allow、review 或 deny 判断,并检查这条知识能否从 seed 晋升为 corroborated 或 validated。它按独立来源家族计数,不会把同一作者反复发布误认成交叉验证。
它不是第二套知识库,也不是 Skill:不保存、不搜索、不写入知识,不依赖 lab-ontology,可以通过 SDK、CLI 或只读 MCP 单独嵌入任意知识库、RAG 或 Agent。Agent Knowledge 1.8.0 已通过 lockfile 固定其公开 release,但只在 knowledge_get 通过 scope gate 后做非强制 shadow 观测;它不会阻断读取、改变路由、升级成熟度或批准写入。这个组合不影响 Trust Core 单独使用。
Skills(按知识流向排序)
| 阶段 | Skill | 输入 | 产出 | 文档 |
|---|---|---|---|---|
| 采集 | lab-wx-distillation |
微信 4.x 聊天、数据库快照或标准导出 | 经脱敏、路由、归并、验收的个人运作模型与事件账本 | 打开 Skill 文档 |
| 采集 | lab-life-reviewer |
你的主动讲述 + 与当前主题相关的材料 | 逐事件的 Raw 记录与结构化 handoff,批准后归档 | 打开 Skill 文档 |
| 蒸馏 | lab-retrospective |
一段已经结束、暂停或失败的任务、事故、访谈或长对话 | 有覆盖状态的复盘审计 + 少量可复用结论(默认为零) | 打开 Skill 文档 |
| 入库 | lab-intake |
任何已决定要保留的材料:链接、文件、文本、结论 | 一份精确提案;批准后由网关写入 Vault | 打开 Skill 文档 |
lab-wx-distillation 是四个里最重的一个:一条确定性的本地 Python 流水线,负责从既有记录里提取。它把采集、解密适配、身份脱敏留在本机,只让模型看到密封过的、脱敏的数据包;每条路由恰好产生一个处理结果,事件各自带语义状态,完整事件账本是权威,重要性只影响展示、不删除事件。当前状态是 v2.0.1,在合成/公开 fixture 上通过 150 个测试;它不宣称与任何具体微信构建的真机兼容,没有通过现场清单之前也不应该这样宣称。
lab-life-reviewer 从另一头补上记录里没有的东西:由你主动讲,Agent 逐事件追问、核对相关材料、保留 Raw 细节,再形成交接包。采访和归档是同一个 Skill 里前后衔接的两个任务,用文件交接,归档任务不能依赖对采访聊天的记忆。它不会把复杂经历压成一行时间线,也不会把解释当成事实。
lab-retrospective 站在采集与入库之间,回答“这次发生了什么、审计覆盖是否完整、有什么值得留下”。短任务使用结论模式;失败项目、长对话、跨任务范围和“复盘每一次问答”使用法证模式。它先取得当前方法页,再读取原始轮次、核验完成声明、关联用户纠正并报告 COMPLETE/PARTIAL;只有通过覆盖门后,才把叙事蒸馏成可迁移结论,并为每条候选标注证据、样本量和适用边界。大多数复盘正确的结果仍是零新增。
lab-intake 是最薄的一个,也是唯一的入口:任何材料想进 Vault,都由它先调 knowledge_intake 取契约、查重、生成精确提案,然后停下来等你批准。它自己不定义 Schema、不选存放位置、从不直接写文件;Schema 演进发生在网关里,Skill 不需要重新发布。
四个 Skill 都是厂商与模型无关的:Codex、Claude Code 和任何 MCP 客户端共用同一份 SKILL.md,只是安装位置不同。
一次完整的流转
以一次人生回顾为例:lab-life-reviewer 在采访任务里记录一段职业经历,生成 Raw 和 handoff;归档任务读取它们,调用 lab-retrospective 把叙事里能跨时间成立的结论挑出来——也许只有一条,也许没有;有结论时交给 lab-intake,它先读取当前 Schema 和目标页面、检索同义知识,再预检完整目标文件的字段、列表格式与双向关系,生成一份提案:新建一张 source 页记录出处与候选观点,或更新一张既有的 project 页。你看到的是原文级别的改动,批准后网关在隔离候选树里校验,只提交获批文件,并把 Native 索引同步到同一 Git 提交。从此任何 Agent 在相关任务开始时,都能通过 knowledge_route 读到这条结论,并看到它是 seed 还是已被多个独立来源 corroborated。
状态
| 组件 | 状态 | 验证方式 |
|---|---|---|
lab-ontology |
Agent Knowledge 1.8.0 Native-only;schema pack 1.1.1;Trust Core shadow 非强制 | Node 20/24 下临时独立 Git Vault 中的完整确定性单测、Schema/Vault 校验、13 工具启动探针(CI);真实向量服务仅用于可选人工集成检查 |
lab-trust-core |
v0.1.2,可独立安装的 Trust Core | 51 个确定性测试、Node 20/24、类型检查、构建、隐私扫描与打包预检(CI) |
lab-wx-distillation |
v2.0.1,合成/公开 fixture 范围内验证 | 150 个 Python 测试、字节码编译、冻结契约 SHA-256(CI);真机兼容待现场验证 |
lab-life-reviewer |
可用的工作流 Skill | Skill 包结构测试(CI);无行为测试 |
lab-retrospective |
可用的复盘审计 Skill | Skill 包结构、法证协议契约与布局测试(CI) |
lab-intake |
可用的路由 Skill | Skill 包结构测试、布局测试(CI) |
Quick install
系统本体:复制 lab-ontology/vault/ 作为你自己的 Vault,把其中的 MCP 网关注册到 Agent,步骤见 lab-ontology/README.md。
Trust Core 可以不下载其他组件,单独稀疏检出:
git clone --filter=blob:none --no-checkout https://github.com/haorantang97/Personal-Ontology.git
cd Personal-Ontology
git sparse-checkout init --cone
git sparse-checkout set lab-trust-core
git checkout main
cd lab-trust-core && npm ci && npm run verify
Skill 用社区 Agent Skills 安装器按需安装:
npx skills add haorantang97/Personal-Ontology --skill lab-wx-distillation
npx skills add haorantang97/Personal-Ontology --skill lab-life-reviewer
npx skills add haorantang97/Personal-Ontology --skill lab-retrospective
npx skills add haorantang97/Personal-Ontology --skill lab-intake
也可以只复制对应的完整 Skill 目录。Codex、Claude Code、直接使用和卸载说明都在各模块 README 中。
仓库结构
Personal-Ontology/
├── README.md # 本页:介绍与目录
├── CONTRIBUTING.md · CHANGELOG.md
├── LICENSE.md · THIRD_PARTY_NOTICES.md
├── lab-ontology/ # 核心系统
│ ├── README.md · docs/ # 模块手册、架构、安装
│ └── vault/ # Obsidian Vault 骨架 + ops/(网关、schema、校验器)
├── lab-trust-core/ # 可独立安装的可信度核心;不依赖 lab-ontology
├── skills/
│ ├── lab-wx-distillation/ # Python 流水线、契约、fixture、150 个测试
│ ├── lab-life-reviewer/ # 双语参考文件
│ ├── lab-retrospective/
│ └── lab-intake/
├── tests/ # 布局、Skill 包结构与公开边界测试
└── .github/workflows/ci.yml
Repository rules
- 根 README 负责介绍与目录,不重复具体 Skill、系统或 Trust Core 的操作手册。
- Skill 默认保持厂商与模型无关;不同 Agent 只使用不同安装位置。
- 每个独立组件单独声明验证状态、隐私边界和第三方依赖。
- Raw 访谈、聊天原文、身份、密钥与个人证据必须保存在仓库之外;
lab-ontology/vault/永远是空骨架。 - 任何知识库写入都必须保留精确提案和用户批准门。
- 公开 fixture 通过不等于真实设备或具体微信小版本兼容。
- 全库不得出现私人绝对路径;
tests/会在 CI 中扫描。 - 中文为主:README 用中文撰写并在末尾附英文摘要;代码、提交信息与 CI 用英文。
- 不直接向
main推送:每项工作开分支、走 PR、CI 全绿后合并,同一时间一个会话只动一个模块。详见 CONTRIBUTING.md,变更记录见 CHANGELOG.md。
FAQ
没有 Ollama 能用吗? 可以启动网关、读取精确页面与契约、管理提案,并在 Native 索引不可用时使用同一 Git 提交上的关键词回退;响应会标成降级。完整关键词+向量混合检索和索引重建需要 Ollama-compatible embedding 服务,参考配置见 setup。
我的数据会离开我的电脑吗? Vault、索引、审批记录和本仓库提供的网关按本地运行设计;本仓库不发布个人内容,并在 CI 中扫描私人绝对路径。复盘时对话历史是否离开本机,取决于你选择的 Agent 宿主、模型和隐私设置;应使用本地或已获批准的宿主,并只授予完成复盘所需的任务历史。
和 mem0 / Basic Memory 这类项目什么关系? 同一问题空间(给 Agent 的持久记忆),不同立场:它们优先"无感自动记忆",这里优先"可审计的知识资产"——写入有审批门,证据有成熟度。两者可以共存。
为什么大多数 Skill 仍然很薄? Schema、知识路由和写入审批规则由网关的当前契约返回,所以采集与入库 Skill 主要负责把 Agent 引到正确入口。lab-retrospective 是例外之一:它把模式选择、逐轮账本、声明核验和覆盖门作为稳定执行协议随 Skill 发布;具体领域方法与 Schema 仍留在知识库和网关中演进。
可以商用吗? lab-trust-core/ 采用 MIT License,可以按该许可证商用。仓库其余部分允许个人与非商业用途;商业使用需要书面授权,见 License。
License
除明确例外外,本仓库采用 PolyForm Noncommercial License 1.0.0:个人与非商业用途(个人学习、研究、实验、爱好项目,以及慈善、教育、公共研究、公共安全与健康、环保、政府机构的使用)可自由查看、使用、修改和分发;任何商业用途需另行取得著作权人的书面授权。**例外:lab-trust-core/ 按其目录内的 MIT License 独立授权,根目录的 PolyForm 条款不替代该许可。**第三方组件见 THIRD_PARTY_NOTICES.md。
English summary
Full English documentation: README.en.md
Personal-Ontology is an original workbench for letting AI agents maintain knowledge about you over the long run — traceably, and only with your approval. It consists of one complete system, one standalone Trust Core, and four Skills.
lab-ontology is the foundation: a schema-governed Obsidian vault skeleton (Markdown + Git as the only source of truth), an MCP gateway named agent-knowledge that exposes 13 knowledge_* tools for precision-first reading and proposal-gated writing, and Agent Knowledge 1.8.0's Native hybrid index. Its vectors, typed relationships and human navigation index are rebuildable; unhealthy Native retrieval visibly falls back to keyword recall over the same Git commit. Full vector search uses an Ollama-compatible embedding service.
lab-trust-core is an independent MIT-licensed policy core. Given a knowledge record and an intended use, its SDK, CLI or read-only MCP returns an explainable trust verdict and promotion check. It stores and retrieves nothing and does not require lab-ontology. Agent Knowledge 1.8.0 pins it for a non-enforcing post-read shadow diagnostic; that shadow never blocks delivery or authorizes writes.
The skills follow the flow of knowledge. lab-wx-distillation extracts an evidence-bounded personal operating model from existing records (WeChat 4.x exports) with a deterministic local pipeline; lab-life-reviewer collects what records never captured through interview-led life review; lab-retrospective audits finished, paused or failed work in conclusion or forensic mode, reports raw-turn and completion-claim coverage as COMPLETE/PARTIAL, then decides what deserves to survive with evidence and sample size attached; lab-intake is the single entry point that turns anything worth keeping into an exact proposal and waits for approval.
The repository root is a catalog; each component contains its authoritative installation, privacy, validation and usage documentation. No private interview content, personal evidence pages or assets are published here.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi