拓冰建站拓冰建站
首页 / 资讯中心 / 正文

oh-my-openagent 内存 v2 配置一致性审计:configuration.md 与 schema 逐键核对、AGENTS.md 漂移修复与文档门禁实践

人工智能AI Agent代码智能体多智能体MCP ClientsAgent 编排【免费下载链接】oh-my-openagentOmO: Just type mass ulw keyword with your prompt. Now you are the master of graph engineering.项目地址https://gitcode.com/gh_mirrors/oh/oh-my-openagent点击查看免费下载本篇文章基于 oh-my-openagent 仓库中.omo/evidence/omo-senpi-adapter/memory-v2/task-20/findings.md这份审计记录完整还原Task 20docs divergence consistency audit的执行过程与结论。它展示了在 memory v2feat/memory-v2-active-learning 工作树演进过程中团队如何把 docs/reference/configuration.md 的 Memory 配置文档与 packages/omo-config-core/src/schema/memory.ts 的 Zod schema 逐键比对、修复 packages/omo-senpi/src/components/memory/AGENTS.md 的架构漂移并用测试作为机器门禁来守住文档与实现的一致性。读完本文你将掌握一套可复用的文档–schema–AGENTS.md三方一致性审计方法以及 memory v2 各配置块的完整语义、默认值与源码落点。审计背景与基线本次审计针对 memory v2 分支工作树HEAD755d55dc1分支feat/memory-v2-active-learning展开。审计执行时存在一个特殊约束其他 agent 在components/memory/下有未提交的改动people-*命令、register.ts、index.ts等。为保证结论可信审计者定下纪律所有论断只针对已提交的代码git show HEAD:验证绝不把在途in-flight工作当作事实依据。这一纪律贯穿全文也是后面1 个测试失败被判定为与本次改动无关的判据来源。审计范围覆盖三块配置文档 docs/reference/configuration.md 的### Memory一节 vs packages/omo-config-core/src/schema/memory.ts 的逐键核对memory 组件 AGENTS.md 架构表Anatomy相对 memory v2 实现的漂移检查与修复文档空缺项docs gaps与未落地 todo 的边界管理。配置文档与 schema 的逐键核对零漂移审计的第一项工作是把configuration.md的 Memory 一节里出现的每一个键值与memory.ts中对应 schema 定义逐行对照。核对结论如下表行号以审计时点 HEAD755d55dc1为准文档值Schema 位置memory.ts结论enabled: true、agent: auto、tool_exposure: direct159-163一致reflection25/on_compaction true/auto/quick/15/auto8-19一致nudgetrue/every_user_turns 1038-41一致factstrue/debounce_settles 447-50一致dreamtrue/30/24/true/5/15000056-63一致peopletrue/max_entries 401-100/max_entry_chars 20050-50069-73一致souledit_notice true79-81一致syncenabled true、remote可选searchenabled true25-32一致compile_warn_tokens 30000、agents {}186-187一致最终结论是NO drift无漂移configuration.md无需任何改动。这在多 agent 并行演进、memory 组件大面积重构的背景下并不常见说明配置文档的维护纪律本身是有效的。两个语义级确认字节预算与 nudge 阈值除了表面值一致审计还对两个容易被误读的语义做了源码级确认auto_select_max_chars是字节预算而非字符预算。它由 dream 的自动选会话逻辑消费dream-selector.ts 中conversationByteLength用Buffer.byteLength(text, utf8)计算会话文本的 UTF-8 字节数这正是配置项注释里 Byte budget for auto-selected conversations 的实现依据。多字节字符如中文会被正确按字节计量。nudge 阈值语义是大于等于。nudge.every_user_turns的触发条件在 nudge-wiring.ts 的nudgeTurns中实现为turns settings.everyUserTurns其中turns为本会话已积累用户轮次 − 最近一次保存点轮次并叠加挂起输入计数与文档 Nudge after this many user turns without a save 的表述精确吻合。AGENTS.md 漂移修复架构表回归实现真相相比配置文档的零漂移memory 组件自身的 AGENTS.md 出现了 7 处需要处理的漂移或补强。这部分工作本质是让模块自述文档重新追上已合入的实现。1. Anatomy 表补齐 memory v2 新增管线架构表仍停留在 memory v1 时代审计为以下实现补上了对应行run supervisor 子进程管线worker/memory-run-supervisor.ts及其配套——launch manifest、gated bootstrap、outcome/final 哨兵、win32taskkill收容审计定位到 memory-run-supervisor.ts:53、58、149、171 四处关键点nudge 接线nudge-wiring.ts用户轮次计数、记忆工具 provenance 注入、阈值判定facts 抽取器facts-wiring.tsfacts-runner.ts后台事实抽取的接线与执行器dream 会话选择器dream-selector.ts其中selectDreamConversations负责按分数挑选待整理会话技能使用追踪skills-usage.tssoul 编辑通知soul-notice.ts会话关闭排水shutdown-drain.ts关闭时的日志/journal 强制落盘。这些文件都可在 packages/omo-senpi/src/components/memory 下按名找到构成 memory v2主动学习能力的完整骨架。2.commands/行斜杠命令数量仍为 10审计确认Ten slash commands在 HEAD 上依然成立MEMORY_COMMAND_NAMES恰有 10 个条目以git show HEAD:.../commands/register.ts为准不采信工作树中其他 agent 的未提交注册。同时记录了/sleeptime的展示面变化现在会同时显示 nudge / facts / dream / people / soul 五类状态sleeptime.ts对应计划中的 todo 5。3. Divergence #6明确未解除保持文档诚实计划中曾将 /dream --auto / --to 描述为partially lifted但审计在 HEAD 代码中发现reflect.ts 文件头注释明确写着deliberately no --auto selector——/reflect有意识地不提供自动选择器register.ts中根本没有注册/dream命令。因此该 divergence 保持原状slash 命令表面与计划目标仍有差距行内仅更新为指向 dream-pass 扩展说明。文档不得超前于代码这是本次审计的一条重要原则。4. 新增 Extensions beyond parity 一节memory v2 相比原 parity 目标多出的一系列扩展被系统性地记录下来nudge提醒保存未落盘事实facts extractor后台事实抽取dream pass以 trigger kinddream origin 标识machine.ts带会话选择上限people cards人物卡片people/format.ts遵守 IC-16 limits APIsoul v2self目录下的 identity.md、编辑通知soul-notice.ts:1-9MCP search surface通过 tools.ts 的 109-123 行与tool-surface.test.ts覆盖的搜索工具面run supervisor 的 Windows 语义win32 上进程身份恒为 UNKNOWN按 IC-9 规则落入abandoned.json并以 bootstrap 自强制执行。5. 新增 Deliberate constants 一节记录故意不做成配置的常量审计特别强调了两处有意钉死的常量避免后人误以为漏配了开关facts 抽取器类别钉死为quickfacts-runner.ts中QUICK_CATEGORY常量且 memory.ts schema 注释同步记录了该决策类别解析失败时记 warning 并跳过本轮绝不降级到其他类别shutdown drain 预算 1500 msshutdown-drain.ts中SESSION_SHUTDOWN_DRAIN_BUDGET_MS 1500且配套测试shutdown-drain.test.ts断言该值恒为 1500。因为 senpi 会阻塞关闭流程等待 drain所以它是固定常量而非可配置项。6.step_count与文字风格step_count按计划中 restored to letta 25 的注记保持在 25schema 默认值不变从 divergence 表第 10、11 行移除 em dash—以符合仓库 prose 的行文约定——文档风格本身也纳入一致性管理。有意保留的文档空缺不为未落地 todo 提前写文档审计明确划出一条边界对尚未落地的 todo刻意不提前写文档具体包括/dream斜杠命令--auto、--to参数todo 10 仍在进行中divergence #6 保持/people系列命令工作树中的people-*.ts属于另一个 agent 的在途 todo命令数量保持为 10 不动idle/shutdown 的 dream 触发接线dream.idle_minutes/shutdown_launch目前只存在于 schema 与默认值中index.ts:40-42、identity-runtime.ts:43-45HEAD 上没有任何 scheduler 消费这两个键。configuration.md的 dream 导语虽描述了这两个键的预期门控语义但那是基于键是真实存在的事实写下的审计将其标记给落地 todo 跟进而不是删除或改写。这一取舍体现了文档工程的关键分寸已合入的代码必须有文档未合入的计划不写超前文档避免文档变成 roadmap 的副本。机器门禁测试作为一致性守护由于审计产出主要是 prose文档文字其质量门禁由两个机器测试承担test-discipline 禁止对 prose 做 phrase pin 式的断言测试结果bun test packages/omo-opencode/src/shared/markdown-link-audit.test.tsMarkdown 链接可达性审计16 pass, 0 failbun test script/agents-md-dev-env.test.tsAGENTS.md 开发环境约定4 pass, 0 failbun test packages/omo-senpi/src/components/memorymemory 组件全量365 pass, 1 fail其中唯一的失败index.test.ts的 enablement latched… restart notice appears once来自index.ts与wiring.ts——这两处恰好被另一 agent 的未提交修改所覆盖。由于本次变更只是文档AGENTS.md 文字从原理上不可能触达该测试路径故判定为 pre-existing/in-flight 问题标记但不代修。这正是文章开头只认已提交代码纪律在测试解释环节的延续。QA-by-read 核对清单键与文档段的双向映射审计收尾采用逐键对读QA-by-read把 schema 中每个键与文档中对应的章节并排阅读形成如下映射这也是读者快速查阅 memory v2 配置的最佳索引enabled/agent/tool_exposure/compile_warn_tokens/agents→ Memory 根表reflection.enabled/trigger.step_count/trigger.on_compaction/merge/category/timeout_minutes/sandbox→ Reflection 节nudge.enabled/every_user_turns→ Nudge 节facts.enabled/debounce_settles→ Facts 节dream.enabled/idle_minutes/min_hours_between/shutdown_launch/auto_select_max/auto_select_max_chars→ Dream 节people.enabled/max_entries/max_entry_chars→ People 节soul.edit_notice→ Soul 节sync.enabled/sync.remote/search.enabled→ Sync and Search 节。核对结论双向成立schema 中不存在未被文档覆盖的键文档中也不存在 schema 里没有的键。值得说明的是当前仓库的 schemapackages/omo-config-core/src/schema/memory.ts在 memory v2 之后又演进出了 recallKibitzer 只读裁判子块其默认值同样值得对照docs/reference/configuration.md 的 Recall (recollections) 一节与 schema 的OmoMemoryRecallSchemamax_items: 2、event_caps: {tool_args: 400, result_head: 600, assistant: 1500, prompt: 4000}、sidecar_max_tokens: 48000、max_concurrent_wakes: 2、tool_budget: 8一一对应OmoMemorySettingsSchema根块还保留了write_notice记忆写入以 notice 行渲染。如果读者想复现本文的审计方法只需将configuration.md的 Memory 一节与memory.ts中从OmoMemoryReflectionTriggerSchema到OmoMemorySettingsSchema的每个字段做同样的逐键比对。结语一致性审计的三条方法论回顾 Task 20可以提炼出对任何多 agent、高演进速度项目都有普适价值的三条纪律证据只取已提交代码工作树可能混杂其他在途改动结论必须以git show HEAD:的提交面为准否则测试失败与文档结论都无法归因文档永不超前代码未落地的 todo/dream --auto、people 命令、idle/shutdown dream 接线一律不写超前文档schema 有键但无人消费的状态必须显式标记给落地 todo常量与旋钮分开记录Deliberate constants如 facts 类别钉死quick、drain 预算 1500 ms是刻意为之的工程决策必须连同决策理由一起写进文档防止后来者误判为配置缺失而真正的旋钮every_user_turns、auto_select_max_chars等则用 schema 默认值 取值范围 源码消费点三方印证。这套配置文档逐键核对 AGENTS.md 架构回归 机器测试门禁 QA-by-read 双向映射的组合就是 oh-my-openagent memory v2 在文档层面保持高可信度的原因也是可以迁移到任何项目文档治理中的现成实践。赞分享人工智能AI Agent代码智能体多智能体MCP ClientsAgent 编排【免费下载链接】oh-my-openagentOmO: Just type mass ulw keyword with your prompt. Now you are the master of graph engineering.项目地址https://gitcode.com/gh_mirrors/oh/oh-my-openagent点击查看免费下载相关推荐oh-my-openagent 文档漂移审计实战以 F3 修复工作单为例的文档-代码一致性治理oh my openagent 文档漂移审计实战以 F3 修复工作单为例的文档 代码一致性治理 导读 本文以 oh my openagent 仓库中一次真实人工智能AI Agent代码智能体多智能体MCP ClientsAgent 编排oh-my-openagent 文档-代码一致性审计705 条声明中检出并修复 178 处文档漂移的完整实践oh my openagent 文档 代码一致性审计705 条声明中检出并修复 178 处文档漂移的完整实践 本文以 oh my openagent 仓库中的人工智能AI Agent代码智能体多智能体MCP ClientsAgent 编排oh-my-openagent 文档漂移审计与修复实践基于 705 项声明核验的 178 处过期修正全解析oh my openagent 文档漂移审计与修复实践基于 705 项声明核验的 178 处过期修正全解析 本文基于 oh my openagent 仓库中人工智能AI Agent代码智能体多智能体MCP ClientsAgent 编排创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门