# 模型、上下文与工作会话 [返回项目首页](../README.md) ## 视频上下文与 post-history instruction B站来源填写视频BV号、av号或完整视频链接。每个来源可添加独立上下文、文字资料、工作区内的显式文件引用,以及可编辑的post-history补充指令。资料只读取所选工作区内的非隐藏md/txt/json/csv文件,拒绝越界符号链接;单文件128KB、总量256KB。多个来源不会因使用同一工作区而自动共享全部资料。 模型请求保留前置system数据边界,Assembler在history/input之后追加固定提醒及用户补充指令。当前native后端以真实user消息投递尾部提醒,不伪称system消息;Jev决策指令另行附加同样的边界。测试证明消息顺序与持久化,不能保证模型绝不受注入影响。平台内容及资料不插入可信指令。工作会话使用宿主标准工具及受角色绑定约束的业务工具,发布由插件独立检查权限,已授权的B站自动评论另需明确决策、身份标识和独立监督。 ## 调整模型背景顺序 在添加或编辑来源时,可以调整“来源信息与关注规则”“上下文”“资料”“当前内容及讨论”四个数据块的顺序,也可以调整资料内部的顺序。“更新真实预览”会解析所选工作区内显式引用的文件,并装入选定的真实内容项。新来源没有实际内容时显示占位;尚未解析的文件只显示路径。 顺序保存后用于 Agent、Jev 与人工会话背景。system 任务、真实历史和尾部 PHI 的位置固定。Jev 使用独立协议,同序数据块进入 `state`,PHI 放入问题 `instructions`。预览展示数据块和固定边界,不代表模型提供商的完整请求。 顺序、上下文或资料变更会使旧草稿失效,并为后续人工处理创建新会话,旧会话自身的完整历史仍保留。“整理已有数据”只处理当前来源尚未分析的历史基线,以及有新内容版本的项;重复点击不会强制重跑当前已完成项。来源背景或学习指导变更保留已有分析、评价和处理状态,新指导用于后续处理。自动整理和“刷新并整理”继续跳过首次接入且从未分析的已读基线。 ## 复用宿主模型目录与阶段背景 生成与监督模型从 DSH 的实际提供商和模型目录选择,包含宿主已注册的订阅提供商。模型列表随提供商按需读取,可以显式刷新。Jev 使用单独的 profile 下拉,保留使用 Jev 默认的选项。列表显示名称并辅助显示 ID,不需要手工填写 ID,也不会自动选择第一项。DSH 0.2.1-rc.2 的官方 DeepSeek 适配器在缺少凭据时会返回空模型列表;可先在宿主模型设置中完成配置,再显式刷新目录。插件不自行补写凭据或构造模型列表。旧选择暂不可用时保留原值并提示重新选择;切换提供商会清除相关旧模型,不能跨提供商继承全局模型。 来源配置保留现有上下文、资料、关注规则、PHI 和装配顺序作为共用背景。你可以分别为 Jev 轻量决策、低置信升级、生成与分析、独立监督补充专属上下文和资料。生成与分析按来源能力执行评论拟稿、PR 审查、issue 核实或 release 摘要,没有独立总结调用。 实际请求只装入共用背景与当前阶段的专属背景。来源预览可选择阶段,展示对应数据块;升级的 decision、监督的 draft 在预览中明确占位,实际执行时才附加真实结果。服务端解析所有显式资料以计算来源版本,预览不会触发模型。人工会话使用共用与生成分析背景,原有会话历史完整保留。 ## 模型失败与持久会话 阶段默认限时五分钟,超时记录 `TIMEOUT`、限时和取消来源;用户取消与插件停止另行保留。计时和结算只针对该轮消息,不取消随后排队的用户会话轮。模型请求失败时,插件展示宿主记录的终止代码、消息、可用的 HTTP 状态与原会话 ID,工作记录保留实际角色会话。`TRANSPORT` 仅表示宿主报告的传输失败,不能据此断言某个网络或账号问题;失效模型路线按[执行时限与模型失效回退](#执行时限与模型失效回退)尝试一次全局默认;插件不自动修改代理或凭据。 同内容项、来源、分析角色、工作区和实际目录再次整理时,优先复用最早有效的持久原会话,可暖态继续或冷恢复。会话忙或有待处理输入时本轮失败并保留原归属,不抢占或另建会话绕过。监督、学习和人工角色保持各自语义。每轮使用当前内容/资料版本和独立收据;历史收据不作为新轮提交。自动工作完成或失败后保留原 Agent,你可以在同一会话继续追问。人工处理会话创建后也保持可用,后台不会提前调用模型。实例由 DSH 的创建者生命周期管理,插件卸载或宿主退出时统一清理;会话在此期间占用宿主内存。真实历史持久保存,重启后由宿主从原 ID 恢复。 插件每五秒按游标读取共享会话目录变化,恢复宿主列表中缺失的已有会话。目录监听在离开插件页面后继续生效,没有变化时不遍历历史身份集合。目录恢复不复制或补写历史。升级前已经显示“会话不可用”的页面可重新载入,以恢复原会话的输入框。 ## 执行时限与模型失效回退 全局配置中的“自动执行时限 → 单轮执行时限(秒)”可设置 1–1800 秒,来源可以覆盖或恢复继承。留空沿用后端 `timeoutMs`,初始为 300 秒。决策升级、生成分析、独立监督和评价学习分别计时,包含该轮工具执行与上下文压缩;整批整理、Jev 请求、人工继续和远端任务回报等待不在此计时范围内。保存后用于新发起的工作,在途计时不变。 受管会话的旧供应商、模型或调用配置失效时,自动尝试“看点什么”当前全局生成/分析默认;监督会话使用全局监督默认。默认也失败则明确报错。热会话、重启后恢复的会话和迟到回报均适用,仍可用的选择保持原样。只重试失败的模型请求,已执行工具和既有分析不会重复运行。全局默认本身仍需配置有效的供应商与模型。 ## 工作工具与存稿 工作、监督和人工会话默认显式挂载宿主已安装的 DSH `ptc` 模式,新会话固定为 `workspace-write` 和 `ask`。PTC 保留宿主工具与 AGENTS 等工作区说明,模型通过 `run_code` 内的 `tools.dmc_read_item(...)`、`tools.dmc_submit_result(...)` 查询和保存业务结果。冷恢复保留用户后来选择的模式和权限;只读或计划模式下,业务提交工具拒绝写入。来源原文、评论和资料仍属于待处理数据,不因此获得发布授权。 创建或恢复业务会话时,插件解析存储目录与工作区的真实路径。存储若位于该工作区、`/tmp` 或宿主临时目录的可写范围,插件会拒绝启用工作会话,并提示选择更具体的工作区或把存储移到宿主私有目录。符号链接也按实际目标检查。标准文件权限不限制所有读取或网络行为,发布审核仍由插件单独执行。 人工背景先进入宿主待用输入。宿主重启后,打开会话触发恢复时,插件从该轮冻结的来源与内容快照恢复尚未接受的背景。首次用户发言后,宿主依次记录系统消息、背景和用户输入;已经接受的背景不会因再次打开而重复加入。仅查看冷历史时,不把待用背景伪装成已执行消息。 `dmc_read_item` 查询本来源已采集的内容。先用 `section: "items"` 按页获取内容 ID,再把返回的 `id` 作为 `itemId`,沿用 `version` 读取正文或评论。评论列表返回摘录和评论 ID,`section: "comment"` 读取该条完整原文。正文按 Unicode 码点计数的 `offset`、`length` 分块读取,沿用同一个内容版本,直到 `complete: true`。这些 ID 是插件返回的稳定标识,不把远端评论号当作本地内容 ID。 `dmc_submit_result` 是 Agent 结果的正式保存入口。自动工作角色提交分析、升级判断或监督结论;人工处理角色提交草稿。最终助手文字不作为落稿或监督结论的替代输入。一次提交使用固定 `operationKey`;精确重试返回原收据,同一个键提交不同内容会失败。 来源绑定的分析工作会话(writer、review、investigate)可以使用 `dmc_revise_analysis` 更新绑定内容项的最新结论,例如收到稍后完成的验证报告。可先读取 `dmc_read_item({section: "analysis"})` 查看当前结论,再提交完整 `analysis` 和修订 `reason`,可附报告 ID 或链接 `evidenceRefs`;引用由 Agent 提供,不代表插件已核验报告。每次更新使用新 `operationKey`,重试沿用原键和内容。 工具根据真实会话绑定确定目标,采用提交时最新的内容、来源配置和分析版本,不要求配置或内容与原整理轮一致,也不要求该轮已有首次分析收据。`version`、`contextVersion`、`expectedAnalysisRevision` 是可省略的旧参数,传入旧值不会阻止更新。不同操作按提交顺序更新最新结论,并各自保存前一版;相同操作的精确重试只返回原收据,不覆盖之后的结论。 修订会更新面板摘要并追加工作记录,原分析、原收据和真实会话历史保留。它不重新执行整理或派发任务。旧的待监督、待审核或被拦截草稿会标为过期,已发送和发送状态待核实的记录保留。首次自动整理仍用 `dmc_submit_result` 保存本轮结果;修订工具只更新分析,不生成或发布回复,也不会自动接收任务插件的完成通知。 ```js const current = await tools.dmc_read_item({section: "analysis"}); await tools.dmc_revise_analysis({ operationKey: "verification-followup-1", analysis: {summary: "验证完成,问题已确认", importance: 2, reason: "报告中的证据支持该问题", urgent: false, urgencyReason: null, intervention: "review", evidence: "confirmed"}, reason: "根据已读取的验证报告更新分析", evidenceRefs: ["实际报告的 ID 或链接"] }); ``` 从插件内容入口创建的人工会话固定当前内容项和输入版本。读取同来源其他项不会改变存稿目标。需要给另一项存稿时,从那一项新开会话。新稿先显示“等待独立监督”;监督失败或会话失败后,已保存正文仍可查看,并可从草稿启动监督。监督通过后显示“等待你审核”。 在已有 DSH 工作区中直接新建或继续普通会话,也可以使用这两个工具。先调用 `dmc_read_item({section: "sources"})` 查找当前工作区绑定的来源,再以 `sourceId` 查询 `section: "items"`,用返回的 `itemId` 读取 `section: "item"`。该返回值包含当前 `version` 和 `contextVersion`,后者也计入工作区资料文件的内容。普通会话仅可保存草稿,参数为 `{kind: "draft", operationKey, itemId, version, contextVersion, body}`。同一会话可为不同内容项分别存稿,来源改绑后权限随之更新。没有绑定来源时来源列表为空。 普通会话的模式、权限、提示词与历史由 DSH 保持原状。插件只向现有会话注册工具,并在内容项的工作记录中保留真实会话入口。保存后的草稿可在插件内容详情中找到,仍需独立监督与人工审核。工作区 AGENTS 索引可以记录工具返回的稳定 ID 和版本,后续通过工具读取原文。 草稿正文保存后不可修改。改稿创建新 ID;替换旧稿需提交旧 ID 与 `bodyHash`,旧稿显示“已被新稿替换”。新稿需重新监督。发送中、结果待核实和已发送的草稿不能通过改稿覆盖。