ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

EverRoom Context Docs:Agent可编辑的版本化文档与可审阅操作设计解析

EverRoom Context Docs:Agent可编辑的版本化文档与可审阅操作设计解析 EverRoom Context DocsAgent可编辑的版本化文档与可审阅操作设计解析【免费下载链接】EverRoomEverRoom - A workspace that remembers your projects, decisions, and sources.项目地址: https://gitcode.com/gh_mirrors/ev/EverRoomEverRoom 是一个会记住你的项目、决策与信息源Sources的 AI 工作区其中的 Context Docs 让 Agent 可以安全地编辑版本化文档每一次改动都被记录为可回滚的版本快照而 Agent 的每一次写操作都要经过创建 → 审阅 → 应用的可审阅流程。本文用零代码的方式带你看懂这套 Agent 文档操作的版本控制与审阅机制是如何设计的适合刚接触 AI 文档协作的新手。什么是 EverRoom一个会记住的工作区EverRoom 的核心理念是A workspace that remembers your projects, decisions, and sources—— 它不只是编辑器而是把上下文Context当作一等公民项目文档、Agent 的会话、外部信息源都围绕一个个房间Room组织。在这个体系里文档不是静态文件而是可以被 Agent 持续编辑的活对象。这就引出了两个关键问题Agent 改错了怎么办—— 靠版本化每次提交Commit都会推进一个版本号历史可查、可对比、可恢复。怎么防止 Agent 乱改—— 靠可审阅的操作流程Agent 的修改先进入待审阅状态由你确认后才会真正落到文档上。这两点构成了 Context Docs 设计的两大支柱。版本化文档每次提交都是一个可回滚的版本EverRoom 的文档提交由网关中的 commit-service.ts 负责。它的设计思路可以概括为三条规则新文档必须从版本 1 开始草稿则为版本 0保证版本号单调递增、永不跳号乐观锁防冲突提交时可以携带expectedVersion期望版本如果文档在你编辑期间被别人或 Agent改过版本对不上就直接拒绝避免覆盖别人的修改原子提交一次提交会同时更新文档内容、版本号并把这份内容写入历史快照保证内容 版本永远一致。历史快照的存储与对比在 yjs-history-service.ts 中实现。它基于 CRDTYjs记录编辑历史并具备两个很实用的工程细节每 100 个版本自动打一个检查点checkpoint恢复任意历史版本时无需重放全部历史速度稳定块级 Diff对比两个版本时会把变化拆成新增 / 删除 / 修改 / 未变的块DocumentDiffBlock并给出块内文字级别的差异让你一眼看清Agent 到底改了哪几段。对比结果的数据结构定义在契约包 index.ts 中同时支持恢复到指定版本RestoreDocumentVersionInput——也就是说回滚不是另存为而是真正的版本回退。可审阅操作Agent 改文档前的 4 种交互模式Agent 要修改文档不能直接裸写。EverRoom 把 Agent 的文档写入建模为一个DocumentOperation文档操作每种操作声明自己的交互模式interaction mode共 4 种交互模式行为适用场景streaming_commit边生成边提交内容流式写入实时草稿续写atomic_review一次性生成完整修改整体送审整段重写、结构调整incremental_review修改拆成多条 item逐条接受/拒绝多点小修小补preview_replace先给你看替换预览确认后才落盘划词改写在逐条审阅模式下incremental_review每个修改项item都是一个独立的小补丁操作类型是插入、替换、删除之一附带改动前后的内容before / after和 Markdown 摘要你可以逐条接受或拒绝而不是被迫全盘接受或全盘拒绝。相关类型定义见 index.ts。状态机12 个状态保证操作全程可控整个操作的生命周期由一个显式状态机驱动源码在 state-machine.ts。它的 12 个状态可以分成两组进行中5 个created→running→awaiting_input等用户补充输入→awaiting_review等用户审阅→applying正在应用修改终态6 个completed✅ /rejected/conflicted版本冲突/failed/cancelled/expired超时自动过期状态机只允许按白名单跳转任何非法跳转比如从completed再回到running都会直接抛错。这带来三个实际好处可追溯Agent 每次操作都带着会话 IDsessionId、运行 IDrunId落库这段话到底是谁在什么时候改的永远有答案防并发同一文档的多个操作通过队列串行执行配合版本号乐观锁多 Agent 同时改文档也不会互相踩踏防越权每个能力Capability都声明了所需权限document:read/document:write等路由层在启动操作前统一鉴权见 routes.ts。关键模块路径速查 想深入源码的话按下面的地图找文档核心提交、内容引擎、历史apps/gateway/src/modules/documents/core/操作服务与状态机apps/gateway/src/modules/documents/operations/能力注册Agent 权限声明apps/gateway/src/modules/documents/capabilities/契约类型DocumentOperation、状态、交互模式packages/agent-contract/src/index.ts数据库表结构operations、items、versionsapps/gateway/drizzle/配套开发规范文档docs/agent-document-development-sop.md小结版本化 可审阅 放心的 AI 写作EverRoom Context Docs 的设计可以一句话总结Agent 有笔但你的手永远握着橡皮和审批章。版本化让任何一次 Agent 修改都可对比、可回滚可审阅操作让 Agent 的修改必须经过状态机流转重要改动等你点通过才生效状态机与权限模型把乱改、覆盖、越权这三类风险从机制上堵死。对新手来说理解了这三层你就能看懂绝大多数 AI 文档协作产品的底层逻辑——EverRoom 只是把它做了一套非常完整的工程示范。【免费下载链接】EverRoomEverRoom - A workspace that remembers your projects, decisions, and sources.项目地址: https://gitcode.com/gh_mirrors/ev/EverRoom创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表