尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

狗头军师memory_store.py实现原理详解:同意门禁、有界SQLite与撤销机制

发布时间:2026/9/25 20:48:18

资讯中心
01
ARTICLE

狗头军师memory_store.py实现原理详解:同意门禁、有界SQLite与撤销机制

狗头军师memory_store.py实现原理详解:同意门禁、有界SQLite与撤销机制
狗头军师memory_store.py实现原理详解同意门禁、有界SQLite与撤销机制【免费下载链接】goutoujunshi一个先接住情绪、再分析关系并给出可执行策略的 Codex 恋爱军师内置心理、法律、社会、人文、哲学、婚姻家庭与性学知识库支持多元关系。项目地址: https://gitcode.com/gh_mirrors/go/goutoujunshi狗头军师是一款先接住情绪、再分析关系并给出可执行策略的 Codex AI 恋爱军师。它的本地长期记忆脚本memory_store.py用同意门禁、有界 SQLite、撤销机制三道防线确保保存在本机的精简关系档案可控、可审阅、随时可删。本文用通俗的方式带你读懂这份 scripts/memory_store.py 的设计与实现原理。为什么恋爱军师需要本地长期记忆 聊过几次之后每次都要重新交代我和对象 A 进展到哪了很烦。狗头军师的解法不是把整段聊天记录塞进数据库而是只保存精简字段 关键事件摘要单条不超过 200 字存到操作系统用户数据目录里的一份本地 SQLite 文件中——没有云端、没有账号、绝不写入仓库。完整的记忆规则和使用分级见 references/practical/长期记忆与关系档案.md整体架构定位见 documentation/architecture.md。这套本地有界记忆由三道防线组成防线解决什么问题 同意门禁用户没明确同意一个字节都不写 有界 SQLite条数、字数、来源全部有硬上限防止无限累积↩️ 撤销机制每次写入都留操作日志可撤销、可暂停、可硬删除第一道防线同意门禁Consent Gate没有enable就没有写入数据库里有一张settings表记录是否已获同意。所有写入和召回操作都会先执行 scripts/memory_store.py#L138-L142 中的require_enabled检查文件不存在 → 报错NOT_INITIALIZED尚未启用长期记忆consent_enabled不为 true → 报错CONSENT_REQUIRED尚未获得用户同意paused为 true → 报错MEMORY_PAUSED当前已暂停也就是说apply写入和context召回在同意前都会被拦截而status、show这类只读查询随时可用方便用户先看看再说。启用需要显式确认启用命令必须带--confirm参数表示用户已明确同意python3 scripts/memory_store.py enable --confirm不带确认会直接收到CONFIRMATION_REQUIRED错误。同样的确认锁也被用在所有破坏性操作删除对象档案、撤回同意、清空上。文件本身也上了权限锁数据库落在哪个目录由 scripts/memory_store.py#L50-L64 决定macOS 用~/Library/Application Support/goutoujunshiWindows 用%LOCALAPPDATA%\goutoujunshiLinux 用 XDG 数据目录也可用环境变量GOUTOUJUNSHI_MEMORY_DIR指定私密目录变量说明见 documentation/variables.md。创建时目录权限设为0o700、数据库文件设为0o600配合 SQLite 的 WAL 日志模式把敏感的关系档案尽量锁在当前系统用户的范围内。权限边界的完整说明见 documentation/permissions.md。第二道防线有界 SQLite —— 三张表、三重限额 三张表各司其职连接逻辑在 scripts/memory_store.py#L71-L122建表脚本一次性创建三张表表作用settings同意开关、暂停状态、策略版本memories真正的记忆条目scope 对象 字段 值 来源 置信度operations每次写入的 before/after 快照支撑撤销数字上限一览所有硬性限额都集中在文件头部 scripts/memory_store.py#L17-L28限额项上限含义单条值200 字符只存摘要不存整段聊天记忆总条数200 条全库兜底上限user档案30 条用户稳定档案object档案15 条单个对象事实relationship快照10 条关系阶段与共识event事件20 条/对象带时间的关键转折hypothesis假设5 条/对象可被纠正的暂定解释可撤销操作最近 20 次操作日志滚动保留超限时的两种处理策略prune_rowsscripts/memory_store.py#L227-L269对不同类型采取不同策略档案类user / object / relationship拒绝写入。到达上限报MEMORY_LIMIT_REACHED提示请先合并或删除旧字段——档案必须经用户整理系统不擅自丢弃稳定信息。事件与假设类event / hypothesis自动淘汰。超限后按updated_at从最旧开始删除并计入本次操作日志保证撤销时能还原。全库兜底总数超过 200 条时优先从 event/hypothesis 中删最旧条目仍超限时直接报错要求用户归档或删除旧对象而不是悄悄扩容。来源门禁谁说的话能写进哪一层写入前validate_deltascripts/memory_store.py#L164-L216还做来源-范围匹配校验核心规则是越靠近稳定人格判断来源要求越严格。记忆范围允许的来源user用户档案仅用户明确陈述object/relationship用户明确陈述或转述event/hypothesis可接受 ChatLab、工具结果、模型推断hypothesis假设模型推断唯一允许落脚的范围且必须带置信度违反规则会收到SOURCE_NOT_ELIGIBLE错误。这样模型读心出的解释只能落在带置信度的假设层永远不会悄悄升级成事实档案。上图是狗头军师跨学科知识库的 135 条参考资料总览长期记忆与其互补知识库回答这类关系该怎么分析有界 SQLite 记住你这个人的具体档案。第三道防线撤销机制 —— 每次操作都能悔棋 ↩️操作日志写入前先拍快照每次apply都在一个BEGIN IMMEDIATE事务里完成查找旧值 → 写入新值 → 淘汰超限行 → 记录操作。旧值before和写入结果after都以 JSON 存入operations表并只保留最近 20 条scripts/memory_store.py#L219-L224。撤销undo与undo --op-idcommand_undoscripts/memory_store.py#L445-L466的逻辑很直接取出目标操作默认最近一次或用--op-id指定删掉本次操作影响到的全部记忆行按 before 快照把旧值原样还原移除该操作日志防止撤销的撤销。配合 references/practical/长期记忆与关系档案.md 中的约定每次成功写入后军师都会附一行提示记忆更新…… 撤销告诉我撤销刚才的记忆普通用户不需要记命令也能使用。硬删除与撤回后悔药之外的遗忘权撤销只能回到最近 20 次操作更彻底的控制权交给用户命令效果需要forget-object 代号 --confirm永久删除该对象全部记忆并清空撤销历史、执行VACUUM回收空间--confirmrevoke --confirm撤回同意但保留现有资料暂停状态--confirmrevoke --delete --confirm撤回同意并物理删除数据库及 WAL/SHM 附属文件--confirmclear --confirm永久清空全部长期记忆--confirm相关实现见 scripts/memory_store.py#L517-L563。注意forget-object是不可逆的它同时清掉撤销历史所以命令要求先与用户核对准确代号再加--confirm。三道防线如何协同工作一次记忆的生命周期 把上面串起来就是一次完整的记忆流转查状态status报告是否存在数据库、是否已同意、当前条数与可撤销次数明确同意enable --confirm写入consent_at时间戳和策略版本写入apply依次通过来源校验 → 同意门禁 → 事务写入 → 超限淘汰 → 记录操作日志召回context --subject-id obj-a --max-chars 4000只返回当前对象需要的压缩上下文且总长度超预算时自动裁掉最旧条目退出随时可undo/pause/forget-object/revoke --delete。任何一环失败脚本都以结构化 JSON 输出{ok: false, error: {code: ...}}错误码如CONSENT_REQUIRED、MEMORY_LIMIT_REACHED、NOTHING_TO_UNDO方便宿主程序判断和向用户说明。延伸阅读记忆规则与五类档案定义references/practical/长期记忆与关系档案.md系统架构与信任边界documentation/architecture.md权限矩阵与资源边界documentation/permissions.md行为内核中的长期记忆条款SKILL.md小结memory_store.py用约 600 行 Python 回答了一个关键问题AI 恋爱军师记住了你你还能不能控制它答案是——没有明确同意不写、超过限额不存、推断不冒充事实、每次写入可悔棋、想忘就真忘。同意门禁、有界 SQLite 与撤销机制三道防线让长期记忆从营销词变成了可审计、可逆、有边界的本地工程实现。【免费下载链接】goutoujunshi一个先接住情绪、再分析关系并给出可执行策略的 Codex 恋爱军师内置心理、法律、社会、人文、哲学、婚姻家庭与性学知识库支持多元关系。项目地址: https://gitcode.com/gh_mirrors/go/goutoujunshi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。