🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

hnlg-coder/dsh-sisyphus-presets

DeepSeek Harnessspec-screened扫描:未发现敏感能力在 GitHub 查看 ↗
需源码安装

DSH Sisyphus 预设

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/2 · 已提供中文文档

DeepSeek Harness 智能体预设:Sisyphus 编排器(6 条专家子智能体通道)+ Sisyphus Oracle 只读顾问。移植自 oh-my-openagent 工作流。

综合分
29.6
GitHub 分
29.6
用户评分
—
★ Stars
2
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add hnlg-coder/dsh-sisyphus-presets
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
信任档位:已验证本站已于 1 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 23 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-sisyphus-presets(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/22 03:52:35

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
DSH Sisyphus 预设

DeepSeek Harness 智能体预设:Sisyphus(编排者)与 Sisyphus Oracle(只读顾问),移植自 oh-my-openagent(OMO)的 Sisyphus 工作流。

English README

| 预设 | 角色 | 简介 |
|---|---|---|
| sisyphus | 编排者 | 分解任务、并行委派给六条专家子代理车道、验证结果、推动任务完成。 |
| sisyphus-oracle | 只读顾问 | 诊断、架构设计、权衡评估、安全/性能审查。绝不修改任何内容。 |

本项目是 oh-my-openagent 的 Sisyphus persona 与编排工作流的衍生作品,采用 SUL-1.0 许可(见 LICENSE)。

更新记录(2026-09-02)

- persona 重写并压缩约 55%:决策框架不变(意图门、委派协议、验证循环、红线),删除机制复述;新增 FIXED ULTRAWORK 模式:分级强制规划、二值通过条件的场景契约、双证据 RED/GREEN 的 TDD、触发式评审门、持久便签。
- MCP 可见性开关(sisyphus/mcp-switch.js,新增):blender/playwright 的 MCP 工具集(约 50 个 schema)在 sisyphus 会话默认隐藏,保证每次请求的提示词精简;mcp_enable / mcp_disable 按需显示/隐藏。GitHub 工具始终可见。
- Oracle 掩码自动解除(sisyphus-oracle/restrict.js):只读工具掩码现按会话追踪,会话切换到非 sisyphus-oracle 预设(如 router 预设)时自动解除——修复需要 platform shell 的预设首轮装配失败的问题。
- 新增 command-goal 行(人类 /goal 命令 + 模型侧 goal 工具共享同一持久目标域);bash/pwsh 行恢复为一次性 shell(持久 PTY shell 会丢失 run_in_background)。
- lane-models.js 注释块修复(此前为乱码)并保持完全可移植:所有车道默认 null = 继承会话模型(钉模型见模型策略)。
- 版本下限上调:本版本要求 DSH ≥ 0.1.2-alpha.3 —— mcp-switch.js 使用 0.1.2-alpha.3 的工具 output 契约注册工具,restrict.js 使用 disposer 式掩码 API(agent-preset/selected 事件),command-goal 随 app 主包附带。在 0.1.2-alpha.4 上构建并验证;旧的 0.1.0-rc.x 系列没有这些 API(见前置条件)。

目录

- 更新记录(2026-09-02)
- 功能特性
- 与官方预设对比
- 与 oh-my-openagent(OMO)对比
- 安装
- 部署与应用
- AI 辅助部署提示词
- 前置条件
- 模型策略
- 为什么需要这两个 JS 文件(模型间接层)
- Sisyphus(编排者)
- Sisyphus Oracle(只读顾问)
- 验证方法
- 常见问题
- 许可证

功能特性

Sisyphus —— 带六条专家委派车道的编排者

- 意图门(Intent Gate):行动前先分类请求(解释/实现/调查/评估/修复/重构);对提问绝不擅自实现。
- 三种模式:Orchestrate(默认编排)、Advise(问答)、Execute(琐碎单文件工作直接执行)。
- 六条只读、可续接的子代理车道(支持后台运行、send_message 续接、完成通知):

| 车道 | 用途 | toolFilter 白名单要点 |
|---|---|---|
| subagent_explore | 内部代码库检索("上下文 grep") | read/glob/grep/lsp/session_* |
| subagent_oracle | 硬问题的高 IQ 咨询 | 另含 get_goal/job_list/job_output |
| subagent_vision | 图像理解(多模态) | read_image/read/glob/grep |
| subagent_librarian | 外部参考检索(文档/开源) | web_search/read/glob/grep |
| subagent_metis | 规划前分析:隐藏意图、歧义、AI 失败点 | read/glob/grep/lsp/session_* |
| subagent_momus | 对抗式计划评审(PASS / PASS-WITH-FIXES / FAIL) | read/glob/grep/lsp/session_* |

- 规划闭环:METIS → 计划 → MOMUS → 修订 → 用户批准(小任务跳过)。
- 并行执行纪律:多角度任务并发 2–5 个后台子代理;绝不重复已委派的搜索。
- 验证循环:证据落地、lsp 诊断、测试、构建、手动 QA、独立核验委派结果。
- 硬性不变量:禁止类型错误抑制、禁止空 catch、禁止破坏性 git、禁止伪造引用/验证。
- 分类路由:workflow 工具 + team-orchestration skill 的 category-router.js 模板,按任务域在运行时把单元路由到不同模型(视觉→多模态、硬逻辑→重推理、琐碎→便宜模型)。
- MCP 可见性开关:blender/playwright 的 MCP 工具 schema(约 50 个,sisyphus/mcp-switch.js)默认隐藏,保持每次请求的提示词精简;mcp_enable / mcp_disable 按需显示/隐藏。GitHub 工具始终可见。

Sisyphus Oracle —— 只读顾问

- 三层只读强制:
1. restrict.js 插件——监听 agent/created,在 agent 自身作用域调用 tools.restrict({allow: [...]}),屏蔽全部继承的全局工具(MCP github/playwright/blender、write/edit、bash/pwsh、schedule、goals、jobs)。掩码按会话追踪,会话切换到非 oracle 预设(agent-preset/selected)时自动解除。
2. persona 硬约束(绝不编辑、绝不执行副作用命令)。
3. 宿主审批策略(ask)。
- 保留工具:read、read_image、glob、grep、lsp、web_search、ask_user_question(+ 无害的 agent 级 schedule_)。
- 模型:跟随用户当前会话模型(见模型策略)。

与官方预设对比

DSH 官方自带四个预设。以下是 sisyphus / sisyphus-oracle 与它们的关系:

| 能力 | standard | code | cordis | minimal | sisyphus | sisyphus-oracle |
|---|---|---|---|---|---|---|
| Persona | 短 | 短 | 长(两平面) | 固定(complete: true) | 压缩编排协议(ultrawork 模式) | 只读顾问 |
| bash / pwsh | ✅ | ✅ | ✅ | 持久 PTY | ✅ | ✅(restrict.js 屏蔽) |
| fs 读写 | ✅ | ✅ | ✅ | fs-local | ✅ | 只读(restrict.js) |
| str_replace_editor | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
| 后台任务 | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| goal | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| 计划模式 | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| 压缩 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| skills | ✅ | ✅ | ✅ + 编辑技能 | ❌ | ✅ | ❌ |
| 子代理委派 | ✅ | ✅ | ✅ | ❌ | ✅ + 6 条角色车道 | ❌ |
| workflow / ralph | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| run_code(Code Mode) | ❌ | ✅ | ❌ | ❌ | ✅(mode: both) | ❌ |
| tool-cordis(自改运行时) | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ |
| lsp | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| 会话检索 | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| 角色车道(explore/oracle/vision/librarian/metis/momus) | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| 注册表级只读强制 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅(restrict.js) |
| 车道模型集中配置(lane-models.js) | ❌ | ❌ | ❌ | ❌ | ✅ | 不适用 |

如何选择:

- standard — 日常编码的纯净基线。
- code — 与 standard 相同,但通过 run_code 批量执行多步操作。
- cordis — 想让 agent 自己编写/修改 DSH 预设时(自引用工具集 + 编辑技能)。
- minimal — 固定提示词、两个持久工具,确定性优先,无任何 agent 机制。
- sisyphus — 需要编排能力时:意图门、六条专家车道、METIS→计划→MOMUS 闭环、并行委派、分类路由。是 standard 的超集,另含 LSP/会话检索/run_code/cordis。
- sisyphus-oracle — 需要"零副作用硬保证"的咨询时(注册表级工具屏蔽)。

与 oh-my-openagent(OMO)对比

sisyphus 是 OMO 的 Sisyphus 工作流向 DSH 平台的移植。两者共享编排哲学,但机制不同:

| 方面 | oh-my-openagent(opencode 插件) | DSH Sisyphus | 说明 |
|---|---|---|---|
| Agent 构建 | 动态(createSisyphusAgent(model, availableAgents, tools, skills, categories)——提示词随模型族变化并注入实时环境) | 静态 persona(手写、模型无关) | DSH 预设是声明式文件,无运行时提示词生成 |
| 委派 API | task() + category(8 类别)+ subagent_type(explore/librarian/oracle/metis/momus) | subagent 工具 + 6 条固定车道(explore/oracle/vision/librarian/metis/momus) | 角色集相同,载体不同 |
| 动态分类路由 | 原生 category 参数调用时选模型 | workflow 脚本 agent(prompt, {provider, model}) 运行时覆盖,category-router.js 模板 | DSH 用 workflow 引擎实现等价能力 |
| Metis / Momus | 预规划顾问 + 计划评审(昂贵模型) | ✅ 移植为 subagent_metis / subagent_momus 车道 | 规划闭环:METIS → 计划 → MOMUS |
| Librarian | 外部参考 agent(GitHub/Context7/Web) | ✅ 移植为 subagent_librarian 车道(web_search) | |
| Vision | multimodal-looker | ✅ subagent_vision 车道 | |
| 技能注入 | 动态 availableSkills 注入 persona | 静态技能引用 + tool-skill | persona 写使用规则,非实时目录 |
| 会话延续 | continuation session id | 持久子代理 id + send_message | 等价 |
| 并行后台探索 | run_in_background + background_output | backgroundMode: continuable + 完成通知 | 等价 |
| 工作流引擎 | 无原生等价(hyperplan = skill 模拟) | 原生 workflow 工具(JS 编排脚本) | DSH 优势 |
| Ralph 循环 | 无原生等价 | 原生 ralph 工具(自引用循环) | DSH 优势 |
| 自我修改 | 无 | tool-cordis(inspect/define/run/stop/undefine 活运行时) | DSH 优势 |
| Code Mode | 无 | run_code(TypeScript SDK 批量执行) | DSH 优势 |
| 只读保证 | 仅 persona | 注册表级(restrict.js 从目录屏蔽工具) | sisyphus-oracle 的 DSH 优势 |
| 许可证 | SUL-1.0 | SUL-1.0(衍生) | 见 LICENSE |

OMO 有而 DSH Sisyphus 没有的:

- 按模型族动态生成提示词(OMO 为 kimi/gpt/claude 各烘焙不同提示词)。
- 实时环境注入(persona 直接列出会话真实可用的 agents/tools/skills)。
- task() 的原生 category 参数(DSH 需要 workflow 脚本实现等价)。

DSH Sisyphus 有而 OMO 没有的:

- 原生 workflow 引擎、ralph 循环、run_code、tool-cordis 自我修改。
- 注册表级只读强制(restrict.js)。
- 声明式预设文件——复制目录即安装,无需构建步骤。

1. 安装预设

将每个预设目录复制到 DSH 用户预设根目录($DSH_HOME/.agent-presets/):

在本仓库目录下
Copy-Item .\sisyphus        \.agent-presets\sisyphus        -Recurse
Copy-Item .\sisyphus-oracle \.agent-presets\sisyphus-oracle -Recurse

预设会以 "Sisyphus" 和 "Sisyphus Oracle" 的名称出现在 Web UI 的预设选择器中。

2. 安装 team-orchestration skill(推荐)

sisyphus 的 persona 会引用 team-orchestration skill 中的工作流模板(hyperplan、安全研究、并行探索、分类路由):

Copy-Item .\skills\team-orchestration \skills\team-orchestration -Recurse

3. 重启 DSH

停止并启动你的 harness 实例(使用你惯常的重启方式——启动命令、服务管理器或 Web UI 的重启操作均可)。新会话会加载新预设。

部署与应用

文件必须放到的位置

| 文件 | 必须位于 |
|---|---|
| sisyphus/(整个目录) | \.agent-presets\sisyphus\ |
| sisyphus-oracle/(整个目录) | \.agent-presets\sisyphus-oracle\ |
| skills/team-orchestration/(整个目录) | \skills\team-orchestration\ |

DSH_HOME 是 harness 家目录(启动脚本设置;本仓库参考机器上是 D:\DeepSeek Harness\home)。必须复制整个目录,而不是只复制里面的文件——预设目录携带自己的 lane-models.js、mcp-switch.js 和 restrict.js 兄弟文件,composition 通过相对路径引用它们。

将预设设为默认

要让 sisyphus 成为所有新会话的默认预设,在 settings.yaml 中设置:

agent-presets:
default: sisyphus

该值在每次创建会话时读取——仅此改动无需重启。你也可以保留官方默认,改为按会话选择预设。

使用预设

- Web UI:创建新会话时打开预设选择器,选择 Sisyphus 或 Sisyphus Oracle。
- API:在 session.create 中传 "agentPreset": "sisyphus"(或 "sisyphus-oracle"):

$body = '{"type":"client-request","rpcId":"t","method":"session.create","payload":{"workspaceId":"","agentPreset":"sisyphus"}}'
Invoke-WebRequest -Uri "http://127.0.0.1:3080/api/session.create" -Method POST -ContentType "application/json" -Body $body -UseBasicParsing

- 切换空白会话:尚未产生任何轮次的会话可通过 agentPreset.select 切换预设(已运行的会话锁定其预设)。
- 重启说明:修改 lane-models.js(固定车道模型)或预设目录内任何文件需要重启 DSH——composition 在预设挂载时读取。settings.yaml 的改动(默认预设、模型 provider)无需重启即生效。

部署后检查清单

1. 两个预设都能挂载:分别创建会话——期望 ok: true。
2. Oracle 会话只显示只读工具(见验证方法)。
3. Sisyphus 会话暴露全部六条车道(subagent_explore/oracle/vision/librarian/metis/momus)以及 workflow、ralph、run_code、cordis_。
4. 车道模型解析正常:让 oracle 子代理自报 {{model}}——应与你的会话模型(或 lane-models.js 的固定值)一致。

AI 辅助部署提示词

如果你想用 AI 编码助手(Claude Code、opencode、Cursor 等)帮你部署这些预设,直接粘贴下面的提示词。它自包含:告诉 AI 精确的复制目标、位置和验证方式,无需额外上下文。

提示词:部署预设

Deploy the DSH Sisyphus presets to a DeepSeek Harness installation.

Context:
- The presets are in this repository: the sisyphus/ and sisyphus-oracle/
directories (each is an agent preset = a directory with agent.cordis.yml
plus sibling files), and the skills/team-orchestration/ directory
(a DSH skill with a SKILL.md and references/).
- DSH_HOME is the harness home directory. On Windows it is typically
D:\DeepSeek Harness\home; on Linux/macOS it is $HOME/.dsh. Find the real
one by checking the launcher scripts for the DSH_HOME environment
variable, or look for the profiles/ and sessions/ directories.

Steps:
1. Copy the whole sisyphus/ directory to \.agent-presets\sisyphus\
(copy the directory itself, not just its files).
2. Copy the whole sisyphus-oracle/ directory to
\.agent-presets\sisyphus-oracle\.
3. Copy the whole skills/team-orchestration/ directory to
\skills\team-orchestration\.
4. Restart DSH (stop then start the harness using whatever restart
procedure this deployment normally uses).

Verification (required, report the results):
- Create a session with agentPreset "sisyphus": expect ok:true and no
"failed to mount" error.
- Create a session with agentPreset "sisyphus-oracle": expect ok:true.
- In the oracle session, prompt "List every tool name in your catalog" —
the visible tools must be exactly: read, read_image, glob, grep, lsp,
web_search, ask_user_question, schedule_create, schedule_delete,
schedule_list. There must be NO write/edit/pwsh/mcp__* tools.
- In the sisyphus session, verify the six subagent lanes exist:
subagent_explore, subagent_oracle, subagent_vision, subagent_librarian,
subagent_metis, subagent_momus.

Constraints:
- Do NOT modify any file inside the preset directories after copying.
- Do NOT create a git repo, do not push anything.
- If a copy target already exists, report it and stop rather than
overwriting.

提示词:验证已有部署

Verify that the DSH Sisyphus presets are correctly deployed on this
DeepSeek Harness installation.

Check:
0. DSH version is ≥ 0.1.2-alpha.3 (check the app package version / npm ls @deepseek-ai/dsh);
note this release does NOT run on 0.1.0-rc.x builds.
1. \.agent-presets\sisyphus\ exists and contains
agent.cordis.yml + lane-models.js + mcp-switch.js (plus preset.yml).
2. \.agent-presets\sisyphus-oracle\ exists and contains
agent.cordis.yml + restrict.js (plus preset.yml).
3. \skills\team-orchestration\ exists with SKILL.md and
references/ (hyperplan.js, security-research.js,
parallel-exploration.js, category-router.js).
4. The presets mount: call session.create with each preset id and report
ok:true / any mount errors.
5. sisyphus-oracle tool restriction is active: in an oracle session, ask
"List every tool name in your catalog" and confirm only read-only tools
are visible (no write/edit/pwsh/mcp__).
6. Lane model config is wired: check that sisyphus/agent.cordis.yml lane
rows reference lane-models.js via agentOptions !!js expressions, and
that lane-models.js has entries for all six lanes.

Report a pass/fail table for each check with the evidence you found.

提示:第二个提示词在 DSH 升级后也很有用——预设 composition 和 restrict.js 位于 harness 家目录,升级重写 app 目录不会触碰它们,但重新验证成本很低。

前置条件

| 要求 | 说明 |
|---|---|
| DSH 版本 | 要求 ≥ 0.1.2-alpha.3;构建并验证于 0.1.2-alpha.4。本版本使用 0.1.2-alpha.3 的工具 output 契约(mcp-switch.js)、disposer 式 tools.restrict + agent-preset/selected 事件(restrict.js)与 app 随附的 @deepseek-ai/dsh-command-goal。0.1.0-rc.x 系列没有这些 API——不要在 rc 构建上运行本版本。 |
| 宿主平面服务 | lsp(LSP)、session-query(会话检索)、schedule、tool-web(web_search)必须挂载在宿主组合(cordis.patch.yml)中。官方 web profile 自带这些。 |
| 插件版本 | profile 插件版本必须与 app 主包版本一致——注意 DSH 官方 AGENTS.md §1 提到的 latest tag 陷阱。 |
| 模型 provider | settings.yaml → llm-pi-ai.providers 中配置的任意 provider(见模型策略)。 |

模型策略

两个预设都不固定模型。 所有子代理车道与 Oracle 预设都继承父 agent 的模型路由(在会话/agent 创建时快照)——即会话启动时选择的模型(默认取部署默认值)。这让预设跨部署可移植:没有任何 provider 或模型名被硬编码,在任何 DSH 安装上都能工作,无论配置了哪家 LLM provider。

⚠️ 会话中途切换模型不会重路由子代理。 子代理在委派时继承 parent.options.model(已实测:通过 session.selectModel 切到更重的模型后,父会话自身请求会切换,但已创建的子代理车道保持创建时的模型)。Oracle 预设的顶层 agent 会跟随会话切换(其请求解析当前会话模型);它的子代理车道不会。

车道路由模型优先级

1. lane-models.js 中固定配置的 { provider, model }   ← 显式单车道覆盖(最高)
2. 否则:父 agent 创建时的模型                         ← 默认(会话启动时的模型)

自定义单车道模型——编辑 lane-models.js,无需改 YAML

每条车道的模型从 sisyphus/lane-models.js(随预设旅行的纯 JS 模块)解析。null = 继承会话模型(默认);{ provider, model } = 固定该车道。编辑文件后重启 DSH:

// sisyphus/lane-models.js
// 将  替换为你自己的 settings.yaml → llm-pi-ai.providers 中的 key。
module.exports = {
explore:   null,                                                          // 继承
oracle:    { provider: '', model: '' },  // 固定示例
vision:    { provider: '', model: '' },  // read_image 需多模态
librarian: null,
metis:     null,
momus:     null,
};

- provider 必须是你的 settings.yaml → llm-pi-ai.providers 中的 key。
- agent.cordis.yml 中的六条车道通过 loader 的 !!js + createRequire 机制读取该文件——你永远不需要编辑 YAML 结构。
- 修改固定配置需要重启 DSH(配置在 preset 挂载时读取)。

⚠️ Vision 车道注意:read_image 仅当路由模型声明支持图像输入时才可用。如果会话模型是纯文本,要么把会话切换到支持图像的模型,要么通过 lane-models.js 把 subagent_vision 固定为多模态模型。

运行时分类路由(workflow)

对于多领域任务,workflow 工具的 agent(prompt, { provider, model }) 支持运行时模型覆盖。team-orchestration skill 内置 references/category-router.js 模板,把每个单元路由到其类别对应的模型。

发布版路由表完全可移植:每个类别默认 null = 继承当前会话模型,零硬编码 provider/模型名。 要启用按域路由,编辑 category-router.js 中的 CATEGORY_ROUTE 表(workflow 脚本运行在沙箱中、无 require,路由表必须内联)。示例配置:

| category | 模型(示例) |
|---|---|
| visual-engineering | mimo-v2.5(多模态) |
| ultrabrain / deep | deepseek-v4-pro(仅真硬推理) |
| artistry / writing / quick / unspecified-low | deepseek-v4-flash |
| unspecified-high / 未传 / inherit | 当前会话模型 |

为什么需要这两个 JS 文件(模型间接层)

你可能会问:为什么不直接把模型写进 agent.cordis.yml?有三个原因迫使引入间接层——用一个 JS 文件把车道/类别映射到实际模型:

1. 预设是声明式的,不是可执行的。 agent.cordis.yml 是静态 YAML 声明,在预设挂载时读取一次。它不能计算、不能读配置、不能分支——所以"跟随部署的 provider 选择模型"这类逻辑无法在 YAML 本身表达。

2. 硬编码模型名会破坏可移植性。 一个写着 model: deepseek-v4-pro 的预设,在任何 settings.yaml 未定义该模型、或 provider key 不同的部署上都会失败。把映射放在 JS 文件里、默认值为 null(继承会话模型),预设就能在任何地方运行;用户只需编辑一个小文件即可选择固定路由。

3. 两种机制活在两个不同的执行环境中:

- lane-models.js 由 DSH loader 在预设挂载时读取:agent.cordis.yml 中每条车道的 agentOptions 是一个 !!js 表达式,通过 createRequire 加载该文件并取对应车道条目。loader 环境有 require,所以映射可以放在独立文件中,不用塞进 YAML。
- category-router.js 是 workflow 脚本,在 workflow 引擎的沙箱中执行——没有 require、没有文件系统、没有 Node API。因此路由表必须内联在脚本里。这就是它默认全 null(继承)而不是指向外部文件的原因。

所以这两个文件是同一个思路应用到两个不同的载体:默认保持预设可移植,同时给用户一个小的、文档完善的、可以固定真实模型的地方。

| 文件 | 载体 | 执行环境 | 为什么需要 JS 文件 |
|---|---|---|---|
| lane-models.js | 固定 subagent_ 车道 | DSH loader(有 require) | agent.cordis.yml 是静态 YAML;模型映射必须在挂载时计算,且不触碰 YAML 结构即可用户编辑 |
| category-router.js | workflow 运行时路由 | workflow 沙箱(无 require) | workflow 脚本不能读文件,所以表内联;发布版全 null(继承)以保持可移植 |

Sisyphus(编排者)

- 意图门 — 行动前分类(解释/实现/调查/评估/修复/重构)。
- 三种操作模式 — Orchestrate(默认)、Advise(问答)、Execute(琐碎单文件工作)。
- 六条专家委派车道 — 全部只读、全部可续接(可后台、持久子代理 id、send_message 续接、完成通知)。
- 规划闭环 — METIS → 计划 → MOMUS → 修订 → 用户批准(小任务跳过)。
- 并行执行纪律 — 多角度工作并发 2–5 个后台子代理;绝不重复已委派的搜索。
- 验证循环 — 证据落地、lsp 诊断、测试、构建、手动 QA、独立核验委派结果。
- 硬性不变量 — 禁止类型错误抑制、禁止空 catch、禁止破坏性 git、禁止伪造引用/验证、咨询中的子代理未返回前绝不交付最终答案。

Sisyphus Oracle(只读顾问)

- 只读三层强制:
1. restrict.js 插件——监听 agent/created,在 agent 自身作用域调用 tools.restrict({allow: [...]}),屏蔽全部继承的全局工具(MCP github/playwright/blender、write/edit、bash/pwsh、schedule、goals、jobs)。掩码按会话追踪,会话切换到非 oracle 预设(agent-preset/selected)时自动解除。
2. persona 硬约束(绝不编辑、绝不执行副作用命令)。
3. 宿主审批策略(ask)。
- 保留工具:read、read_image、glob、grep、lsp、web_search、ask_user_question(+ 无害的 agent 级 schedule_)。
- 模型:跟随当前会话模型(可随时切换)。

验证方法

1) 两个预设都能挂载(ok: true)
$body = '{"type":"client-request","rpcId":"t","method":"session.create","payload":{"workspaceId":"","agentPreset":"sisyphus"}}'
Invoke-WebRequest -Uri "http://127.0.0.1:3080/api/session.create" -Method POST -ContentType "application/json" -Body $body -UseBasicParsing
用 agentPreset "sisyphus-oracle" 重复一次

2) Oracle 会话不暴露任何修改类工具
提示词: "List every tool name in your catalog" → 应只显示
read/read_image/glob/grep/lsp/web_search/ask_user_question/schedule_

常见问题

Q: 我切换会话模型后,为什么子代理还在用旧模型?
A: 子代理继承的是父 agent 的模型路由,在会话/agent 创建时快照(parent.options.model)。切换会话模型只影响父会话自身之后的请求。要改车道模型:新开会话、编辑 lane-models.js、或在 workflow 的 agent() 调用中传 {provider, model}。

Q: 我用的 LLM provider 和示例不同,需要改什么?
A: 默认(继承)行为下什么都不用改——车道跟随会话模型。只有固定车道时,使用你自己的 settings.yaml → llm-pi-ai.providers 中的 provider key。

Q: Oracle 预设真的绝不修改任何东西吗?
A: 是的。restrict.js 在注册表层面从工具目录中屏蔽 write/edit/bash/pwsh 和全部 MCP 工具,加上 persona 约束与宿主审批策略(ask)。已端到端验证:尝试 write 的提示词得到"我的可用函数集中不存在该工具"的回复。

Q: 可以添加自己的车道吗?
A: 可以。复制 sisyphus/agent.cordis.yml 中任意车道块,给它唯一的 toolName 和 id,在 lane-models.js 添加对应条目,(可选)配置 toolFilter 白名单。

Q: 必须安装 team-orchestration skill 吗?
A: 只有使用工作流模板(hyperplan、安全研究、并行探索、分类路由)时才需要。六条子代理车道不依赖它。

Q: 为什么我的 sisyphus 会话里看不到 blender/playwright 的 MCP 工具?
A: sisyphus/mcp-switch.js 默认隐藏两个服务端的全部工具(约 50 个 schema),保证每次请求的提示词精简——这就是 ultrawork 的"上下文节食"。调用 mcp_enable 并传服务端名即可显示(下一次请求生效);mcp_disable 重新隐藏。GitHub 工具永不被隐藏。

Q: 需要哪个 DSH 版本?
A: 至少 0.1.2-alpha.3 —— mcp-switch.js 使用的工具 output 契约、restrict.js 的 disposer 式掩码 API、以及 app 随附的 dsh-command-goal 命令都来自 0.1.2-alpha 系列。参考部署:0.1.2-alpha.4。rc 构建(0.1.0-rc.x)将无法挂载 mcp-switch。

许可证

SUL-1.0(Sustainable Use License v1.0)——oh-my-openagent(© YeonGyu-Kim)的衍生作品,上游同样采用 SUL-1.0。完整条款见 LICENSE。

非商业/个人使用免费。商业使用需另行授权。再分发必须保留本声明与原始许可条款。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群