用只读状态机规划并追踪 agent 任务依赖
31.2/100
综合分
2
GitHub 星标
20
npm 周下载
—/5
用户评分
数据截至 2026/9/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add octie-clinpm 源 · octie-cli 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 44 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包octie-cli @ 1.3.2
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 04:18:10
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 62 处,展示前 41 条)
- 读取本地文件octie/plugin/index.mjs:479
const data = JSON.parse(readFileSync(join(homedir(), '.octie', 'projects.json'), 'utf8')); - 读取本地文件octie/plugin/index.mjs:522
const match = /^templateVersion: *( +)/m.exec(readFileSync(join(dir, 'preset.yml'), 'utf8')); - 读取本地文件octie/plugin/index.mjs:532
hash.update(readFileSync(join(templateDir, 'agent.cordis.yml'))); - 读取本地文件octie/plugin/index.mjs:533
hash.update(readFileSync(join(templateDir, 'preset.yml'))); - 读取本地文件octie/plugin/index.mjs:539
return JSON.parse(readFileSync(join(dir, PRESET_STAMP), 'utf8')); - 写入本地文件octie/plugin/index.mjs:546
writeFileSync(join(dir, PRESET_STAMP), JSON.stringify(stamp, null, 2) + '\n'); - 读取本地文件octie/plugin/index.mjs:563
const provisioned = existsSync(join(targetDir, 'agent.cordis.yml')); - 写入本地文件octie/plugin/index.mjs:590
mkdirSync(targetDir, { recursive: true }); - 写入本地文件octie/plugin/index.mjs:591
copyFileSync(join(templateDir, 'agent.cordis.yml'), join(targetDir, 'agent.cordis.yml')); - 写入本地文件octie/plugin/index.mjs:592
copyFileSync(join(templateDir, 'preset.yml'), join(targetDir, 'preset.yml')); - 写入本地文件octie/plugin/index.mjs:617
mkdirSync(targetDir, { recursive: true }); - 写入本地文件octie/plugin/index.mjs:619
copyFileSync(join(template, 'agent.cordis.yml'), join(targetDir, 'agent.cordis.yml')); - 发起网络请求octie/client.js:39
const res = await fetch(url, { headers: { Accept: 'application/json' } }); - 发起网络请求octie/client.js:824
const res = await fetch('/api/octie/preset/status', { headers: { Accept: 'application/json' } }); - 发起网络请求octie/client.js:838
const res = await fetch('/api/octie/preset/update', { method: 'POST', headers: { Accept: 'application/json' } }); - 执行外部命令来自配置/变量octie/bin/octie.cjs:8
const child = spawn(process.execPath, [cliPath, ...process.argv.slice(2)], { - 删除本地文件octie/dist/core/storage/file-store.js:246
await unlink(this.lockFilePath).catch(() => undefined); - 读取本地文件octie/dist/core/storage/file-store.js:255
const lockStats = await stat(this.lockFilePath); - 删除本地文件octie/dist/core/storage/file-store.js:257
await unlink(this.lockFilePath).catch(() => undefined); - 读取本地文件octie/dist/core/registry/index.js:25
const mtimeMs = statSync(join(projectPath, '.octie', 'project.json')).mtimeMs; - 读取本地文件octie/dist/core/registry/index.js:58
if (!existsSync(octieDir)) { - 写入本地文件octie/dist/core/registry/index.js:59
mkdirSync(octieDir, { recursive: true }); - 读取本地文件octie/dist/core/registry/index.js:65
if (!existsSync(entry.path)) { - 读取本地文件octie/dist/core/registry/index.js:85
if (!existsSync(registryPath)) { - 读取本地文件octie/dist/core/registry/index.js:93
const content = readFileSync(registryPath, 'utf-8'); - 读取本地文件octie/dist/core/registry/index.js:146
if (Object.keys(registry.projects).length === 0 && existsSync(registryPath)) { - 写入本地文件octie/dist/core/registry/index.js:160
writeFileSync(tempPath, JSON.stringify(registry, null, 2), 'utf-8'); - 写入本地文件octie/dist/core/registry/index.js:161
renameSync(tempPath, registryPath); - 删除本地文件octie/dist/core/registry/index.js:172
unlinkSync(tmpPath); - 删除本地文件octie/dist/core/registry/index.js:201
unlinkSync(lockPath); - 删除本地文件octie/dist/core/registry/index.js:213
unlinkSync(lockPath); - 读取本地文件octie/dist/service/engine.js:60
if (!existsSync(notesPath)) { - 读取本地文件octie/dist/service/engine.js:64
const fileContent = readFileSync(notesPath, 'utf-8').trim(); - 发起网络请求octie/dist/service/engine.js:176
const response = await fetch(`${serverUrl}/api/cache/invalidate?project=${encodeURIComponent(projectPath)}`, { method: 'POST', signal: AbortSignal.tim - 删除本地文件octie/dist/service/engine.js:210
unlinkSync(LAST_SERVER_URL_FILE); - 读取本地文件octie/dist/service/engine.js:216
if (existsSync(LAST_SERVER_URL_FILE)) { - 读取本地文件octie/dist/service/engine.js:217
return readFileSync(LAST_SERVER_URL_FILE, 'utf-8').trim() || null; - 读取本地文件octie/dist/service/tasks.js:135
if (!existsSync(notesPath)) - 读取本地文件octie/dist/service/tasks.js:138
return readFileSync(notesPath, 'utf-8').trim(); - 删除本地文件递归octie/dist/service/handoff.js:43
rmSync(childProjectPath, { recursive: true, force: true }); - 读取本地文件octie/dist/service/handoff.js:59
if (existsSync(childProjectPath)) {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 只读状态机规划任务
- 追踪任务依赖
- 实时DAG任务面板
面向智能体时代的状态导向任务图内核——DeepSeek Harness 插件包:13 个 octie_* 工具、octie Cordis 服务与事件、实时 DAG 任务面板、内置智能体预设。状态靠推导,不靠设置。
README
由 DeepSeek 最新模型翻译生成octie-dsh-plugin
状态:项目处于增量维护中(under incremental maintenance) ——新特性、修复与文档会以小幅增量持续合入(例如 DSH 客户端任务面板、项目活跃度排序、外部变更实时同步、图物理开关、随插件预置的 Octie 任务图模式、octie 使用技能等)。
功能以「先可用、再迭代」的方式演进。
Octie —— agent 时代的状态导向任务图内核(state-oriented task graph kernel),重构为 DeepSeek Harness(DSH)可安装的 bundle 插件。State is derived, not set:状态只读派生,而非手工设置——the task layer that every agent framework can call。
Octie 是一个面向 agent 时代的持久化任务图状态机:节点 = 原子任务,边 = blocker 依赖,状态只读派生(ready → in_progress → in_review → completed,唯一手动转移是 approve),完成一个任务经 BFS 自动解锁下游;原子校验在创建时拒绝模糊任务;不可变快照(SHA-256)保证长会话可恢复。
展开完整文档(README 剩余 1 节)
octie-dsh-plugin 状态:项目处于增量维护中(under incremental maintenance) ——新特性、修复与文档会以小幅增量持续合入(例如 DSH 客户端任务面板、项目活跃度排序、外部变更实时同步、图物理开关、随插件预置的 Octie 任务图模式、octie 使用技能等)。 功能以「先可用、再迭代」的方式演进。 Octie —— agent 时代的状态导向任务图内核(state-oriented task graph kernel),重构为 DeepSeek Harness(DSH)可安装的 bundle 插件。State is derived, not set:状态只读派生,而非手工设置——the task layer that every agent framework can call。 Octie 是一个面向 agent 时代的持久化任务图状态机:节点 = 原子任务,边 = blocker 依赖,状态只读派生(ready → in_progress → in_review → completed,唯一手动转移是 approve),完成一个任务经 BFS 自动解锁下游;原子校验在创建时拒绝模糊任务;不可变快照(SHA-256)保证长会话可恢复。 两种使用方式 Octie 同时是两条并行的一等接口,共享同一份任务图存储(.octie/project.json),可随时互换使用: | 方式 | 形态 | 适合 | | 独立 CLI / Web UI | 全局安装 octie 命令 + octie serve 网页界面 | 终端驱动、脚本管道、不需要 DSH 的场景 | | DSH bundle 插件 | 13 个 octie_ 模型工具 + Cordis 服务 + 任务面板 + 预置 agent preset | 让 DSH agent 直接在会话里规划、执行、追踪任务图 | 你能得到什么 - 独立 CLI(octie)与 Web UI(octie serve):不装 DSH 也能用,见下文「CLI 独立使用」 - 13 个 octie_ 模型工具 + octie Cordis 服务 + octie/ 事件——DSH 会话里直接规划、执行、追踪任务图 - DSH 客户端任务面板:列表 + 分层 DAG 图视图、项目活跃度排序、实时同步、图物理开关 - 「Octie 任务图模式」agent preset:随插件自动预置,开箱即用的任务图工作模式 CLI 独立使用 要求 Node.js ≥ 20。 安装(npm,已发布) npm install -g octie-cli 或从源码构建(开发向,详见 docs/development.md) git clone https://github.com/StarChen-Cycler/octie-dsh-plugin cd octie-dsh-plugin/octie && npm install && npm run build:cli 快速上手: octie init # 初始化项目(创建 .octie/) octie create \ --title "Implement login endpoint" \ --description "POST /api/auth/login:校验凭据、签发 JWT。" \ --success-criterion "Returns 200 with JWT for valid credentials" \ --deliverable "src/api/auth/login.ts" octie list --format md # 查看任务 octie update --complete-criterion # 维护进度 octie approve # 审批:BFS 解锁下游 octie serve # 网页界面(默认 3456 端口) CLI 的完整使用原则(建任务 / 建依赖 / 图操作 / 执行审批 / need_fix)见 docs/cli-usage-principles.md。 安装(DSH) 要求 Node.js ≥ 20。 推荐:npm 包(预构建,秒级安装): dsh plugin --profile add octie-cli 或直接从 GitHub 安装(仓库随附构建产物,开箱即用;不含 octie serve 的网页界面资源,如需使用自行构建): dsh plugin --profile add github:StarChen-Cycler/octie-dsh-plugin 安装后重启 DSH:插件会自动预置「Octie 任务图模式」(见下文),cordis.patch.yml 挂载 octie-dsh 插件行,13 个工具与 octie 技能即时可用。 DSH 插件层的使用原则(13 个 octie_ 工具的用法规范)见 docs/dsh-plugin-usage-principles.md。 更新(Update) 两条接口各自更新,先全局 CLI、再 DSH 插件(顺序反了有旧全局包遮蔽问题,见下): ① 独立 CLI(终端 + octie serve) npm update -g octie-cli octie --version # 确认 ≥ 1.2.1 ② DSH bundle 插件 dsh plugin --profile update octie-cli ③ 验证挂载形态(应为 bundle 层,而非 plain dependency) dsh --profile --dump-config | grep -i octie ④ 重启 DSH 后刷新网页(Node 侧改动必须重启才生效) 两个已知坑: - 旧全局包遮蔽:全局 octie-cli 若停留在 1.2.0 之前(尚无 dsh.bundle 声明的版本),DSH 会读到旧 manifest 并把插件当普通依赖安装——面板与工具静默失效。先更新全局 CLI,再 dsh plugin ... update 一次即可恢复;完整排查见 octie/TROUBLESHOOTING.md。 - git URL 安装:当初用什么来源 add,update 就带同一个来源( dsh plugin --profile update github:StarChen-Cycler/octie-dsh-plugin), 否则两条安装路径会并存。 客户端任务面板 - 项目活跃度排序:项目下拉按「最近任务更新时间」排序——最近动过的项目自动浮到顶部并被面板默认选中;侧边栏树按子树内最新活动排名,活跃子项目会把父项目组一起顶上去。 - 实时同步:会话内 octie_ 工具变更秒级推送到面板(列表 + 图 + 下拉同步刷新);外部写入(终端 octie CLI、Web UI、其他 DSH 会话)也会被自动检测并实时刷新。 - 图物理开关:图视图右上角的 Physics 开关——开启时小球受力(扰动后弹回平衡布局、拖拽带动邻居、松手回弹);关闭时所有节点丝滑滑回整齐的无受力布局后定格。 Octie 任务图模式 插件自带一个 DSH agent preset 模板,安装后自动预置到你的用户 preset 目录($DSH_HOME/.agent-presets/octie/),已存在则绝不覆盖: - persona 直接注入 Octie 心智模型与工作流程(图是持久真相、原子任务、显式绝对 project 路径、审批门、先可用再迭代) - 要求 agent 在第一次调用 octie_ 工具前先读取 octie 技能全文 - 新建会话时在模式选择器中选择「Octie 任务图模式」即可使用 用法 任务图组件的使用原则(工具签名、绝对路径约定、不变式、模式库、陷阱): - CLI:docs/cli-usage-principles.md - DSH 插件工具:docs/dsh-plugin-usage-principles.md License MIT(沿用上游) 给开发者 开发相关内容——环境搭建、构建与测试、CI、dist 提交策略、发布流程、架构文档索引——请见 docs/development.md。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
StarChen-Cycler/octie-dsh-plugin
用只读状态机规划并追踪 agent 任务依赖
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
智能体运行框架路由HarnessRouter/harnessrouter
智能体 harness 的统一接口。
★ 3,984已汉化DSH
71.3
这是你的仓库?认领条目