# 它解决什么问题
AI agent 正在变得越来越强大,但它们有一个共同的盲区:它们不了解你。同一个 Claude Code,给十个人用,行为完全一样——不知道你的写作风格、工作习惯、项目优先级、人际关系。
Persome 的答案很直接:给你的 AI agent 配一本自动更新的工作日记。每次 agent 启动前,先翻翻这本日记,看看你现在在忙什么、跟谁合作、有什么习惯——而不是每次从零猜。
# 五层模型结构
Persome 把"关于你"的信息组织成五个层级,每层都有明确的证据要求:
| 层级 | 含义 | 证据门槛 | 生成方式 |
|---|---|---|---|
| Point | 一个具体观察或事件 | 原始捕获记录 | 增量提取 + 确定性门控 |
| Line | 实体之间的关系或趋势 | 引用验证 + 置信度 ≥ 0.5 | 增量提取 + 共现自动化 |
| Face | 有证据支撑的稳定行为模式 | ≥ 4 条相关持久事实 | L1 模式挖掘 (LLM) |
| Volume | 跨域高阶结构 | ≥ 2 次独立观察 | L2 跨域综合 (LLM, 硬预算 8次) |
| Root | 当前"你"的完整模型 | 活跃 Face × Volume × Profile | L3 压缩合成 (LLM, token 预算约束) |
degraded(降级)。不存在的 Root 永远不会被创建,已有的有效 Root 永远不会被空结果覆盖。
# 整体架构流水线
从原始屏幕捕获到最终人格模型,Persome 走的是确定性流水线 + LLM 辅助的混合路线。只有一个生产路径:
# 数据捕获(纯确定性)
Persome 的捕获层不涉及任何 LLM 调用。全部走 macOS 原生 API 和确定性规则:
# 状态形成(确定性规则)
捕获的原始数据经过四步确定性处理,才能进入 LLM 阶段:
| 阶段 | 做了什么 | LLM? |
|---|---|---|
| Parsers | 各应用原始结构→统一捕获记录格式 | ❌ |
| Timeline | 按 1 分钟一块分组,保证据源 | ❌ |
| Session 切割 | 确定性规则切出有边界的工作时段 | ❌ |
| Writer 写入 | 每5分钟增量规约,幂等写入持久态 | ⚠️ 含一次 LLM 规约 |
# LLM 调用全明细
这是 Persome 最核心的设计决策:LLM 只用在需要语义理解的地方。以下是系统中所有 LLM 调用点,按流水线顺序排列:
1. 会话规约器 · 每5分钟
把时间线块(应用、窗口标题、操作)规约为 {summary, sub_tasks},写入事件记忆文件。这是最频繁的 LLM 调用。
heuristic。
2. 窗口内存增量 · 每新窗口
这是最重要的 LLM 调用——从规约好的窗口里提取实体、断言、关系、事件、用户别名。每条输出必须引用会话原文。返回的 JSON 通过 7 道确定性门控后才能进入持久存储。
{
// 别名候选(需两次独立会话才激活)
"owner_alias_candidates": [
{"alias": "jay_dev",
"source_kind": "owned_account",
"quote": "Alice: @jay_dev 看看 HTTP 502 的情况",
"confidence": 0.8}
],
// 实体(必须引用原文)
"entities": [
{"ref": "Alice", "kind": "person", "quote": "...", "confidence": 0.95}
],
"assertions": [{"subject": {"ref": "self"}, "text": "...", ...}],
// 关系(封闭谓词集)
"relations": [{"src": {"ref": "self"}, "dst": {"ref": "Alice"},
"predicate": "knows", "polarity": "+", ...}],
"events": [{"title": "Fixed handle_payment HTTP 502 bug", ...}]
}
3. 行为模式检测
重复出现的事件证据积累到阈值后,LLM 验证是否构成稳定模式。单个出现不够——必须多次重复才触发。输出 skills/skill-*.md。
4. 案例提取器
找到"错误→解决"的窗口,用 LLM 提炼可复用的 Problem/Solution 卡。没有解析到错误就不调用 LLM。
5. 结构挖掘(Faces)
把持久事实跨域聚类。少于 4 条事实的 bundle 直接跳过。低置信度标记为 forming,不参与活跃模型。
6. 跨域综合(Volumes)
比较不同域下的 Faces,判断是否可合并。每次 build 最多 8 次 LLM 调用(可配置),用完了排队等下一次。
7. Root 合成
把活跃的 Face/Volume/Profile 证据压缩为 Root。失败或不输入绝不覆盖有效 Root。
8. 后台维护(默认关闭)
记忆压缩(超过 5% 名词丢失就拒绝)、记忆衰减、矛盾检查——这些默认不启用。
一次 5 分钟的码代码会话(修 bug)触发 2 次 LLM 调用:
1. 会话规约器(写事件日志)
2. 窗口内存增量(提取实体/关系/事件 + 7 道门控)
模型构建(Faces/Volumes/Root)是异步后台任务,而非常驻调用。
# 确定性门控系统
LLM 返回的东西不能全信。Persome 在每次 LLM 调用后都跑一套严格的确定性门控:
quote 必须在原文中逐字出现。没有 → drop。ref 必须在 roster 中存在,或 new_entity 原文出现。participates_in、part_of、reports_to、knows、about、depends_onself 出现在关系端点。explicit_self_identification 或 owned_account。两次独立会话才激活。knows 关系(置信度 0.6),不需要 LLM 判断。/model 页面输出不进证据。防止模型读自己的输出循环训练。pending),再跑确定性 apply。失败可重试,永不丢审计轨迹。
# 存储设计与安全
| 数据 | 存哪 | 特点 |
|---|---|---|
| 捕获缓冲区 | capture-buffer/*.json | 有界,滚动淘汰 |
| 事件记忆 | memory/*.md | 人类可读,增量追加 |
| 搜索索引 | index.db | SQLite WAL + FTS5 + 向量 |
| 模型快照 | model-build.json | 含每阶段模型名、prompt hash、commit、失败记录 |
| 人类视图 | HUMAN.md | mode 0600,只有 owner 可读 |
| 脱敏导出 | exports/*.json | 默认脱敏路径和敏感文本 |
• macOS 权限精确到每个二进制文件(不可变路径),不是笼统的 Accessibility
• HUMAN.md 写入
mode 0600• 导出默认脱敏但不保证完全匿名
• 更新用同文件系统原子交换,崩溃可确定性回滚
• 最多一个 Root——架构级保障
# 暴露接口
persome start|stop|statuspersome model build|status|exportpersome mcppersome llm setup|status
/model 浏览器查看当前模型仅 loopback 访问 + bearer token
search — 搜索记忆read_receipt — 读证据详情resolve_evidence — 解析证据链process_pending_model_work — 批量后台处理
API 返回机型可读结构
MCP 返回 agent 可读上下文
agent 通过 MCP 读取 Persome 的模型,但 Persome 完全不知道 agent 内部状态。它只暴露一个"关于你"的只读知识层,不耦合具体 agent 协议。这意味着任何支持 MCP 的客户端(Claude Code、Codex、Cursor 等)都可用。
# 关键设计哲学
| 原则 | 具体体现 |
|---|---|
| 捕获与建模分离 | 捕获只收数据不做理解,建模只收结构化数据不做捕获。边界清晰,可分开调试。 |
| 确定性 > LLM | 能走代码(会话切割、证据门控、共现关系、模型渲染)绝不走 LLM。LLM 只做语义理解,所有结果都要过代码门控。 |
| 证据链可追溯 | 每个结论都带 receipt(证据回执),可追溯到原始捕获记录。新证据可以强化、修正或推翻以前结论。 |
| 稳定覆盖不稳定 | LLM 失败或返回垃圾,不会摧毁已有的有效模型。降级模式比编造好。 |
| 自治不越界 | Persome 只做观察与建模——不做任务分派、通知、computer-use 等执行操作。边界在架构层面编码。 |
| 数据主权在人 | 所有数据在本地 Mac,Apache 2.0 开源可审计,导出脱敏。用户说自己删了就真删了。 |
# 快速体验
想自己试一下?5 分钟就能跑起来,不动你的真实数据:
git clone https://github.com/Intuition-Lab/personal-model.git cd personal-model uv run python scripts/sample_demo.py
然后打开 http://127.0.0.1:8743/model 就能看到模型结构。这用的是合成数据演示,不会碰你的个人数据。
# 延伸阅读
ARCHITECTURE.md — 完整数据流和运行时设计MODEL_FORMAT.md — Point/Line/Face/Volume/Root 规范MCP.md — agent 接入接口文档Personal AI Memory Model MCP macOS Open Source Evidentiary Gate Deterministic Pipeline