新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/11/14 14:34:09来源:尧图网络
狗头军师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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/13 16:11:45

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉