# 团队资料管理员与三级知识库 2026-10-24 更新:员工知识页以概念知识图谱为主区,支持 Wiki 文章和原文证据阅读、四类来源与原件上传。团队库由团队资料员整理;私库由使用员工模型与独立提示词的影子整理员整理。PDF/DOCX 支持文本提取,保留原件字节与 SHA-256;扫描件 OCR、音视频转写和自动事实核查尚未提供。具体上传限制与原生能力边界以[员工设置](employee-settings-refresh.md)及[原生能力](native-capabilities.md)为准。 团队资料管理员在团队中显示为系统角色,配有默认选中的复选框;它不占用可派发工作的员工岗位,不能被选为任务负责人或工作流步骤。启用时,它维护团队及员工各自的三级知识库;本地归档与模型编纂分开,自动资料按任务稳定阶段合批,没有新内容时不请求模型。 团队模板和项目团队实例分别保存 `knowledgeEnabled`,旧数据缺省视为启用。实例创建时复制模板设置,此后独立调整。取消勾选立即停止该团队共享库和全部员工专属库的 A 归档、种子复制、来源退出索引和 B/C 编纂,并阻止向员工提供 C、读取 B/A 或回退注入旧项目/员工记忆;正在编纂的请求会被中止,迟到结果不得发布。取消团队也停止这些后台操作。关闭仅暂停跨任务知识,保留磁盘上已有知识文件,不删除原生 Session、任务记录或交付成果。 重新勾选后,可以按当前归档策略从插件领域状态中的任务记录、交付、配置和显式记忆恢复本地 A,再按增量触发规则整理 B/C;这不是补抓每条原生 Session 事件,未持久化的临时内容不能保证恢复。恢复时按当前资料及权限撤回失效来源,而不是直接信任关闭前的旧知识。没有 `ProjectTeam` 记录的历史员工分组,旧数据缺省启用;通过旧版团队实例化入口新建时也复制模板开关,此后按分组独立调整。只要该组任一成员明确关闭,整组知识都暂停,避免不一致字段绕过开关。 仓储写入在等待队列、取得写锁后以及原子提交前重新检查开关,关闭时取消尚未提交的 A 索引、种子和来源退出操作。关闭不会撤销此前已经完成的文件系统写入;例如新 A 原始版本文件已写完、活动索引尚未提交时,保留该不可变文件但不将其设为当前活动来源。 该能力遵守 [ADR-001](../decisions/001-official-plugin-boundary.md):只使用插件自己的数据目录和官方公开服务,不修改 Harness,不直接操作原生 Session 数据库。 公开接入以已声明的 `@deepseek-ai/dsh-llm@0.2.1-alpha.2` 为依据,使用导出的 `LlmRuntime.stream(GenerateOptions)`,以 `provider`、`model`、`reasoningEffort`、`system`、`messages` 和 `signal` 发起单次请求;负责人默认模型通过现有 Session Controller 读取。官方源位置见 [LLM 服务](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.2.1-alpha.2/packages/llm/llm/src/index.ts)与 [GenerateOptions](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.2.1-alpha.2/packages/llm/llm/src/types.ts)。知识仓储、管理员队列和扩展后的 `worker_memory_search` 是本插件能力,不是新增的宿主官方接口。 ## 知识归属与目录 知识目录使用 `knowledge`,而非含义不明的 `.Hdata`。数据保存在插件的状态目录旁,不在用户项目工作目录里建立隐藏目录。实际根目录由 `statePath` 唯一确定: ```text resolve(dirname(statePath), 'knowledge', basename(statePath)) ``` 默认 `statePath` 为 `/composable-workforce/state.json`,对应: ```text /composable-workforce/knowledge/state.json/ ├── .owner.json ├── templates// │ ├── team/ │ │ ├── A-sources/ │ │ ├── B-knowledge/ │ │ ├── C-overview/ │ │ └── snapshot.json │ └── employees// │ ├── A-sources/ │ ├── B-knowledge/ │ ├── C-overview/ │ └── snapshot.json └── projects//teams// ├── team/ │ ├── A-sources/ │ ├── B-knowledge/ │ ├── C-overview/ │ └── snapshot.json └── employees// ├── A-sources/ ├── B-knowledge/ ├── C-overview/ └── snapshot.json ``` 中文名称分别为“团队共享库”“员工专属库”“A 原始资料”“B 详细知识”“C 知识综述”。目录用稳定 ID 定位,名称修改不会改变归属。模板团队和每次项目安装各有独立空间;两个项目安装同一模板,也不会共享写入。模板用于维护通用种子知识,项目运行产生的记录不得反向写入模板。 启用的项目知识空间首次初始化时,可以复制与安装版本精确匹配且已启用的独立模板 A;员工空间还检查对应成员模板版本。关闭的模板不作为旧知识种子读取。员工配置和团队说明已由实例保存快照,不以另一个资料 ID 重复复制。B/C 在项目空间内重新编纂,不共享模板的可写快照。如果模板已更新到不同版本,不使用新版资料冒充项目安装时的种子。`seed.json` 记录首次种子状态,即使为空、模板关闭或版本不可用也不在以后重新跟随模板;从实例撤回配置后不会因重启而复活。 根目录的 `.owner.json` 固定记录包名、归属格式版本和完整根路径。不同 `statePath` 具有不同根目录;完整清理只处理当前状态对应的、归属标记有效的根目录。 ## A、B、C 的职责 | 层级 | 内容 | 引用方式 | | --- | --- | --- | | A 原始资料 | 原始文本 `content`、规范阅读版 `text`、来源、版本、SHA-256、采集时间、验证状态、处理记录 | 来源 ID+资料版本+阅读版起止行号 | | B 详细知识 | 从多份资料重组的解释、方法、关系、比较、适用条件、争议和未知事项 | 每个条目必须引用一个或多个有效的 A 版本及行号 | | C 知识综述 | 概念/实体入口、主题综述、关键原则和结论 | 每个综述条目关联同一知识快照中的 B 条目 ID | 概念图谱是 C 导航的结构化部分:`conceptGraph: {schemaVersion: 1, concepts, relations}`。概念保存 `id/name/kind?/summary/aliases?/entryIds/citations`;`kind=entity` 只用于来源明确身份且有独立知识意义的实体,旧记录和抽象概念保持 `concept`。关系保存 `id/sourceId/targetId/predicate/summary?/basis/entryIds/citations`。模型抽取领域概念并归并同义名称;关系以“包含”“依据”“影响”等明确谓词连接不同概念,`basis: explicit` 表示资料直接陈述,`inferred` 表示基于资料作出的待验证推断。文件名、文章标题、同篇共现及来源分类不自动构成概念关系,缺少依据时允许关系为空。 发布前检查图 ID 唯一、概念名称和别名无冲突、关系端点存在、无自环及同端点同谓词重复;每个概念和关系都须有真实 B 文章引用和至少一条有效、非空的当前 A 版本行引用,且行范围受关联 B 的引用覆盖。图最多 500 个概念、1,500 条关系、1,000,000 字节;超限明确拒绝,不默默截断。检查证明证据位置有效,不能代替自然语言语义核验或领域复现;全部模型综合仍为候选。 `B-knowledge/vN.json` 继续保存文章数组。含概念图的新 `C-overview/vN.json` 保存 `{schemaVersion: 1, overview, conceptGraph}`,旧版 C 数组仍可读取,历史文件不改写。旧快照没有概念图时保留文章入口,不因打开页面或切换模型隐式全库整理,也不会以文章标题伪造概念。 界面使用一套独立的 [LLM Wiki 共享程序](shared-llm-wiki.md):完整 `pages` 投影保留 A 来源、B 知识重组、C 概览及概念/实体的阅读页面;主图 `graph.kind=semantic` 只显示已有概念/实体和 `conceptGraph.relations`。Sigma 圆点按概念/实体或语义社区着色,点击后同屏阅读完整 B 及精确 A。来源、文章、概览留在“文章”目录,不作为图中节点、图例或连线依据;旧快照无概念图时图为空,文章仍可读。无 WebGL 时使用圆点 SVG 降级。 关系按无序端点对聚合绘制,每条有向谓词、依据类型及引用仍完整保存在 `edge.relations`;`weight` 是原始语义关系数,节点 `linkCount` 是参与的原始关系数,Louvain 只基于此语义图。共享文章、来源、Wiki 链接和上游四信号关联评分均不补充主图连线;孤立概念保持孤立。统计分别显示概念数、实体数及实际语义关系数,增添 A/B/C 阅读页面不改变这些数量和度数;推断继续标为“模型推断”。 全项目只维护一个包级引擎和一个按需启动的共享子进程;空间只保存派生 `wiki/vN/` Markdown 和投影索引,不复制引擎或依赖。子进程只接收当前授权空间的虚拟页面,无任意本机读写和模型密钥。A 更新而 B/C 尚未成功重编时,投影继续使用该快照引用的历史 A 版本;引用退役后的来源不进入当前网络。插件关闭会终止引擎与待处理请求,完全清理沿用知识根的归属检查。 认知记忆的四类位于图谱上方,不显示用途注释和数量。专业知识的“上传资料”打开原有资料查看、上传和移除窗口;任务档案、复盘经验、工作约束各有独立“开启自动归档”开关,不参与图谱筛选。每个空间的 `分类目录/<类名>/index.json` 是有效 A 来源与原件位置的派生索引。 | 类别/目录名 | 稳定 ID | 来源规则 | | --- | --- | --- | | 专业知识 | `reference` | 上传专业资料、配置资料和有明确来源的项目文件 | | 任务档案 | `task-evidence` | 需求、决策、纠正、任务记录、成果及用户确认记录 | | 复盘经验 | `incident/reflection-proposal` | 失败/取消/阻塞记录、复盘提案,以及显式归类的偏好与能力经验 | | 工作约束 | `environment/constraint` | 团队说明与显式归类的环境、权限和工作边界 | 旧 `requirement/decision/correction` 兼容映射到任务档案;旧 `preference/capability-evidence` 兼容映射到复盘经验。旧六类 ID 仍可上传,读取输出使用四类 ID;仅规范化分类不会形成新的 A 版本,历史 A/B/C 与原件不重写。旧目录只移除可严格识别的派生 `index.json`,空目录才删除;未知文件、非标准索引与链接均保留。 单类开关关闭后只停止该类后续自动收录和更新,已有 A/B/C 继续保留和读取;重新开启不立即调用模型补扫。它与团队资料管理员的整体访问开关不同,不改变已有资料的读取授权,显式上传、删除和用户确认也不由自动开关代替。 分类不决定核验状态。用户确认、来源证据、模型提出的建议继续通过来源元数据及 `verified`/`candidate` 区分;复盘建议仍待验证,不能因并入经验而升级为事实或用户偏好。确认记忆按已知的结构化 `memory.source.kind` 归档:项目文件进入专业知识,用户确认与已验收成果进入任务档案,不从正文猜测偏好、约束或因果。失败分类只依据任务记录顶层业务状态,不依据输出文本出现的“失败”等词。 A 保存可核查的资料,不把 LLM 的推测改写成原文。B/C 的模型综合结果保留 `candidate` 状态,即使输入资料已验收,也不因此成为人工确认的事实或任务验收结论。资料中的命令和提示词仍是资料,不能改变工作 agent 的岗位、权限或用户指令。 首次实现接收文本资料,先检查必填来源信息、容量和 ID;以原文哈希识别同一来源的重复录入,再规范 BOM、换行和 NUL 字符。原始 `content` 保留,规范版及 `processing` 说明同步保存。内容、来源、标题或验证状态变化会形成新版本,旧版本继续可引用。 文本规范化不等于跨来源语义去重、OCR、音视频转写或自动事实核查。当前 PDF/DOCX 解析保存原件与抽取处理说明;原文引用行号对应规范阅读版。矛盾、失败和少数观点属于有效资料,不作为噪声删除。 项目私库以 `projectId + employeeId` 的不可变定位记录解析实际存储位置。加入、退出或改换团队不迁移、不复制员工原件及 A/B/C;旧版本已落盘的团队目录会被绑定继续使用。若发现同一员工存在多份非空旧私库,明确报冲突,不猜选或隐式合并。团队库的归属和访问开关仍随当前团队生效。 ## 编纂与读取 维护过程遵循“先 A,后 B/C”: ```text 显式资料操作或稳定任务阶段 → 检查、规范化、幂等录入 A → 对比来源清单,收集变更全文及必要旧引用行 → 使用共享 llm_wiki 分析提示及资料管理员模型提取候选实体、概念、联系和矛盾 → 同一模型按本项目的引用契约生成候选 B/C、归并概念与带谓词的关系 → 检查图结构、A 引用行号、B 条目关联和资料指纹 → 保存不可变版本,最后切换 snapshot.json → 由共享 Wiki 程序分别生成完整阅读页面与语义概念图,作为可重建的派生数据 ``` B/C 用同一个快照版本发布,未受影响知识原样保留。读者通过 `snapshot.json` 看到完整版本,不能读取正在写入的一半;如果编纂期间 A 已变化,拒绝发布旧结果,等待新的有效触发处理。链接存在和行号合法是结构检查,不能证明原文在语义上支持结论;候选状态必须保留。严格增量的清单、依赖与合并边界见[增量知识规则](incremental-knowledge.md)。 归档使用短队列,编纂按团队隔离,同一团队的共享库与专属库串行处理,其他团队的慢模型不阻塞当前团队。文本、来源数量、模型输入输出和编纂时间均有上限;当前单次模型输入上限为 100,000 字节;Wiki 分析输出上限 24,000 token,知识 JSON 生成上限 64,000 token(包含提供方计入输出额度的推理 token),两阶段总超时 8 分钟,超限保留 A 和上一版知识并明确报错,不截断资料后假装处理完整。尚无 B/C 时,提供标明待编纂的 A 标题、ID、版本索引,工作 agent 可以通过工具回查原始证据。 删除配置、记忆或撤回成果验收时,来源退出 A 的活动索引,原始版本保留用于审计,相关旧 C/B 暂停使用并等待重编。文件知识只来自明确配置的项目来源;知识开关或来源撤回后不再向工作 agent 提供相关原文与派生知识。原生文件能力与知识库可见范围分别生效。一次任务更窄的授权不会全局删除其他已授权任务仍需使用的资料。 团队共享库模型绑定唯一负责人实际使用的 `provider`、`model` 和推理配置,私库影子整理员绑定员工模型;不单设整理模型配置。负责人调整模型后,后续编纂使用新选择。负责人缺失、存在多名负责人或模型不可用时,不猜测其他模型,保留资料并等待有效配置。 这里的负责人按团队协作树中唯一顶级成员确定。`override` 复制负责人选择;`inherit` 与工作 agent 一样通过官方 `sessionController.modelCatalog().default` 解析 DSH 当前默认模型。默认缺失或不可用时不另选模型。只更换模型不会立即产生收费编纂,后续增量使用新模型。启动只本地归档 A 并记录检查点基线;编纂失败保留 A 和上一份完整快照,不因无关状态事务反复重试,等待相关新检查点、实际资料变化或显式重试。 资料事件不等于模型调用。待验收只本地归档,验收定稿、失败、取消、阻塞或需要重新验证等稳定阶段与最新执行一致后才合批编纂;工作流按稳定步骤,子任务随主任务阶段合并。每轮回复、工具步骤、用量和重试启动均不是新检查点。显式上传、删除、用户确认及授权专业资料的实际变化立即按增量处理。员工私有来源只进入本人的专属库;团队共享成果正文仍有验收门槛。URL 只保存来源引用,不自动抓取远端正文;项目文件由执行时的授权读取取得。 DSH Session 是持久会话容器,包含多个 Turn,Turn 内可有多个模型/工具 Step;官方没有介于 Turn 与 Thread 之间的独立 Session 层级。任务阶段是本插件定义的业务检查点,不按 agent 暂时空闲或上下文压缩划分。 新旧来源及历史版本并存,矛盾保留出处、适用条件和待确认事项,不默认较新资料覆盖旧结论。结构校验会拒绝名称、类型、ID、版本和引用等冲突,但模型提示和有限依赖检索不保证通用或完整的语义冲突检测;所有综合仍为候选。 失败、取消或阻塞的任务与运行记录归入 `incident/reflection-proposal`。插件调用上述官方 LLM 服务,使用专用提示按“失败现象、已有证据、已知原因与待验证假设、改进建议、验证步骤”整理复盘提案。它使用模型的生成与推理能力,由插件负责证据收集、触发、提示和存储;没有单独安装或加载反思 Skill,也不是宿主自动产生长期记忆。整理员不冒充业务员工自述,无证据不臆断根因,不自动确认事实、通过验收、修改 Skill 或执行改进建议。 工作 agent 默认获得相关团队共享库和自己专属库的 C,连同本次任务目标、输入、验收标准、岗位及硬约束。工作涉及某个概念、实体或方法时,必须在关键判断前读取 C 指向的 B;遇到冲突、证据不足或需要准确原文时再读 A。B/A 复用受权限检查的 `worker_memory_search` 工具,通过 `layer`、`knowledgeId`、`library` 和 `version` 指定来源及版本,不能读取另一个员工的专属资料。项目记忆工具由插件自动提供,不需要在员工能力里勾选;读取仍按知识归属、来源和开关检查。 既有项目记忆和员工记忆仍保留原有授权与显式写入规则。三级 Wiki 不替代任务状态、交接或成果验收,也不能把普通任务完成自动改成“已验收”。 ## 员工每次模型请求的上下文 一次实际模型调用包含以下几类信息;不是把 C 当作全部上下文: | 信息 | 当前实现的内容与进入时机 | | --- | --- | | 身份与职责 | 项目、员工及配置版本;使命、职责和边界,来自本次运行的项目实例快照 | | 原生能力与协作 | DSH 原生预设、沙箱与审批上下文,实际工具定义;可委派员工名册、深度、并发和上报规则,项目服务执行时检查当前状态 | | 技能 | 必备 Skill 正文在工作单启动时载入;优先 Skill 的用途与场景进入指令;原生其他 Skill 可按需加载 | | 任务与输入 | 当前请求;项目任务或工作流还带目标、输入要求、成果要求、验收标准、反馈及已验收前置成果 | | 交付规则 | 当前任务/步骤的成果与验收标准、真实性要求和待验收要求 | | 知识入口 | 开启长期记忆且有权限时,按当前任务选取团队与员工 C 的概览、版本、候选状态和 B 引用;待编纂时提供 A 元数据索引 | | 按需证据 | B 提取相关原段,A 按版本及行列区间原文分页;工具结果进入后续上下文,旧知识结果按累计限额收拢 | | 本任务历史 | 当前原生 Session 保留的任务消息、员工回答、工具调用及结果;新任务创建新 Session,不复制来源会话或同事全部聊天 | 模型、提供方、推理力度属于调用设置,工作目录属于会话元数据。它们与以上文本一起决定运行,但不属于知识 C。关闭资料管理员后仍提供身份、职责、权限、技能、当前任务及显式配置的任务资料;不提供旧长期记忆及其检索/写入工具。若关闭时任务已经注入知识,或已经接收包含该团队知识的委派结果,下一次模型调用前停止该任务,需要以新工作单取得关闭后的上下文;不会声称可以从原生历史中撤回已发送内容。 ## ABC 激活与上下文限额 C 在任务启动时按目标选择,一次运行中复用;完整库内 C 不为每轮预算反复改写。任务需要详细解释、方法或判断依据时读关联 B;C 未列出的主题也可通过 query 搜索 B。检索索引仅用于导航,不能当成已阅读正文。 A 在下列条件读取,工具参数 reason 必须明确取值: | reason | 激活条件 | | --- | --- | | quote | 用户要求逐字引用、原话或原始措辞 | | exact-detail | 需要准确数值、单位、命令、接口、代码或阈值 | | conflict | B 有冲突、历史方案、版本差异或状态不明确 | | verify | 用户要求核验,或需要检查模型候选结论的原始依据 | | missing-evidence | B 缺少必要条件、例外、支持证据或完整引用 | | source-comparison | 需要对照两个或多个来源,保留各自范围和优先级 | | no-wiki | 尚无可用 B/C,或搜索 B 后仍无相关知识 | 优先按照 B 的 citations 指定 sourceId、sourceVersion 和行范围,并保留邻近条件。用户已经指定原始资料且需要核验时,可以直接进入 A。B 无覆盖时,使用 worker_memory_search({query,layer:"A"}) 仅搜索授权 A 标题与元数据;指定来源、版本及 reason 后才返回原文。核验现行决策时需区分历史版本与当前状态。 | 层级 | 常用额度 | 单次/在场硬上限 | | --- | ---: | ---: | | C | 2,000 | 3,000 | | B 单次读取 | 按相关原段选择 | 3,000 | | B 当前上下文累计 | 按需保留 | 8,000 | | A 单次读取 | 保持原文分页 | 2,000 | | A 当前上下文累计 | 按需保留 | 4,000 | | ABC 合计 | 各层共享 | 12,000 | 以上单位为**完整序列化知识包的保守 token 估算上界**:当前默认计算 UTF-8 字节,包含原文、引用、定位、标题、分页入口和其他元数据;不是所有模型的精确 tokenizer,通常比实际文本 token 数更保守。计数模块可注入精确计数器,但当前运行使用 utf8-byte-upper-bound,不用字符数除以 4 冒充中文精确计数。 团队与员工库共享一个预算。ABC 总限额还受模型窗口约束:不超过(上下文窗口-输出预留)的 25%,并留出岗位、技能、任务、工具定义、历史和安全余量。输出预留默认 min(8,000, window/4),同时设置为实际模型调用 maxTokens;窗口元数据缺失时使用 64,000 的明确 fallback。无法容纳固定规则或当前任务历史时明确失败并要求缩小阶段,不截断非知识记录后继续。存储字节限制、管理员分析 24,000 / JSON 生成 64,000 tokens 上限、任务树累计 120,000 tokens 停止预算均不等于这里的限额。 B 使用任务相关原段抽取,A 使用原文窗口及分页;两者都保留版本、行号,部分行附一基 UTF-16 列号(结束列不含)。truncated 表示没有完整读取,A/B continuation 可原样回传 cursor。大 B 引用列表可用 citationOffset 分页。普通检索结果不返回指向虚构索引文档的 cursor,省略时需细化 query。旧确认记忆的详细入口使用独立 legacyMemoryId,避免与真实 A/B 中合法的 memory:* ID 混淆。 每次模型调用前,只对本插件知识工具结果执行官方 compaction/prune 与 tool/result 的 surfaceOp:replace;原始结果不删除,替换保留消息身份、工具关联和事件引用,原生 Session 可独立重放。重复内容仅保留一份正文;旧 B/A 收拢成可重读的 ID、库、版本及分页入口,其元数据仍计入预算。C 固定占额,不能假装淘汰仍在 system prompt 中的 C。最小引用本身耗尽额度时要求阶段交接,不宣称可以无限保留历史。 运行配置可在本插件配置中覆盖 knowledgeCMax、knowledgeBReadMax、knowledgeBActiveMax、knowledgeAReadMax、knowledgeAActiveMax、knowledgeTotalMax,均为正整数。默认值来自 14 类合成任务、三档预算的检索与独立答题评估;12K 保留全部 65 项关键证据及引用,18K 未增加主要任务完成数,紧凑 6.2K 缺少复杂任务证据。这不是任意任务或任意模型的最优证明。报告保存在源码仓库 artifacts/knowledge-context-budget-2026-10-21;答题采用当前 Codex 默认模型、预设检索路线,并非真实团队负责人模型或自主激活测试。 ## 与 DSH Session 的区别 ### 2026-10-22 的大型任务候选验证 针对较大输入窗口,新增**离线候选**:ABC 日常目标 32,000、48,000 触发可选内容整理、64,000 硬上限;C 目标 4,000、上限 8,000,B 单次 8,000,A 单次 4,000。当前任务必需证据不因达到 32K 而淘汰;超过硬限明确要求阶段拆分或另行调整预算。候选总额还取不超过输出预留后窗口的 20% 及其他输入占用后的剩余空间。K=1,000。 该控制器位于开发评测脚本,不是当前运行配置。试验使用真实 `tiktoken/o200k_base` 参考分词,完整计入序列化知识包和回读导航;没有证明它与 DSH 所选模型的 tokenizer 相同。正式运行仍使用上表的 UTF-8 上界默认值,不能把配置数字直接解释为模型精确 tokens。 8 个大型合成任务、4,128 条业务记录的预定路线试验中,12K、32/48/64K、96K 分别完整保留 0/8、7/8、8/8 任务的全部阶段必需证据。约 51K 必需原文在 64K 内完整保留,实际活跃约 54K;约 86K 原子证据在 64K 明确拒绝,96K 可容纳。另有模型固定快照答题探针;这些结果不能替代目标员工模型自主检索、实际项目和长期编纂验收。源码评估记录见 `artifacts/knowledge-budget-large-2026-10-22`。 资料分类、员工和管理员分工、概念与原子命题、逐条证据和失效传播的建议见[员工知识政策设计稿](employee-knowledge-policy.md)。其中待实现部分不会因本文描述而自动生效。 | 维度 | DSH Session | 团队/员工知识库 | | --- | --- | --- | | 主要用途 | 一次会话或执行的对话、工具调用及过程恢复 | 跨任务保存资料、知识综合和知识入口 | | 组织方式 | 按会话和事件先后顺序 | 按团队、员工、主题、来源与知识版本 | | 默认上下文 | 由原生会话及 agent 执行机制管理 | 默认注入 C,按需读取 B/A | | 权威性 | 记录实际发生过的会话与工具事件 | 保留来源和候选结论;不独立决定验收 | | 数据归属 | Harness 原生共享记录 | 本插件专属文件 | | 完整卸载 | 保留,不直接修改原生 Session 数据库 | 用户选择完整清理时移除 | 一次任务的摘要和验证结果可以成为 A 的来源;这不意味着复制整份 Session。资料管理员的团队内系统角色展示不创建员工记录、工作单或原生 Session,也没有轮询计时器;其知识编纂通过团队负责人选择的模型完成。关闭资料管理员后,员工执行当前任务所需的原生会话历史仍由 Harness 正常管理。 ## 生命周期与完整清理 普通官方卸载停止插件的管理员队列、运行句柄、订阅和后续模型请求,知识文件保留以便重装。只有用户选择 `purge` 完整清理时,才删除插件专属状态和知识根。停止 Harness 后先预览,再执行: ```sh node scripts/plugin.mjs purge --dry-run --home /absolute/dsh-home --profile web node scripts/plugin.mjs purge --host-stopped --home /absolute/dsh-home --profile web ``` 若配置自定义 `statePath`,两次命令均增加 `--owned-state-path /absolute/state.json`;该参数必须与插件配置完全一致。该参数声明待清理状态的归属,不允许扩大到其他路径。具体服务日志只在提供 `--service-root` 后按原有规则处理。 知识清理先验证根目录归属、目录结构、普通文件身份和逐文件哈希,执行前再次扫描核对;拒绝符号链接、文件硬链接、未知归属、活动写入锁和预览后变化。删除使用已验证文件列表逐个移除,再从内向外移除目录,归属标记最后删除。即使状态文件已经丢失,只要知识根的归属仍可确认,也可规划清理。未通过验证时停止,不改用无边界的递归删除。 完整清理保留用户项目、已交付成果、原生 Session、共享凭据、其他插件和其他状态对应的知识目录。安装或升级不会触发历史数据清理。功能及清理测试不能代替 [ADR-001](../decisions/001-official-plugin-boundary.md) 要求的干净官方发行版、独立 profile 和归档哈希验收。