Chuyển đến nội dung chính

dsh-sop-agent-teams

Đã xác minh

dsh-sop-agent-teams · v0.1.0 · MIT · Giao diện web

SOP-driven business Agent Teams for DeepSeek Harness: configurable captain/member agents, human- or agent-defined SOP workflows (nodes, dependencies, quality gates, manual gates), event-driven task scheduling, and a web dashboard (SOP canvas, run board, a

Cài đặt

dsh plugin add dsh-sop-agent-teams

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Thẻ

Tác giả

Readme

dsh-sop-agent-teams

SOP 驱动的通用业务 Agent Team 插件,运行在 DeepSeek Harness(DSH)之上。

  • 主 Agent / 子 Agent 的角色、模型、工具、数据契约全部可配置
  • SOP 既可人预定义sops/*.yaml),也可由主 Agent 主动规划sop_plan)并运行中调整sop_amend);
  • 配置好后按 SOP(节点编排 + 依赖 + 质量门 + 人工关卡 + 回退)自动跑任务:成员空闲时调度器自动领取就绪节点并唤醒;
  • 每一步在可视化看板上可观测(运行看板、任务详情、审批中心、工作流设置、定时任务);审批中心可直接点击通过/驳回(无需在对话中操作);定时任务可按 cron 自动运行指定 SOP;
  • 状态持久化到磁盘(真相源),支持冷恢复归档复盘、全量审计事件。

设计来源:Claude Code Agent Teams(共享任务列表/依赖解锁/人工审批/角色模板)+ NanmiCoder/dsh-agent-teams(队长委派/attempt 安全/事件调度/邮箱/活动面板/冷恢复),业务建模参考《风控业务 Agent Team》文档(7 角色闭环 + 统一工作台 + 双层状态机 + Context Bundle)。

快速开始

# 1. 构建(或从发布包安装)
pnpm install && pnpm build

# 2. 安装到 DSH profile(web 或 headless)
dsh plugin --profile web add .

# 3. 校验组合配置并启动
dsh --profile web --dump-config
dsh web

在会话中对主 Agent 说:

运行 risk-control-daily SOP,目标:降低支付盗刷漏召率,误杀率不超过 1%。

或者让主 Agent 现场规划:

治理支付盗刷漏报,先做一轮专项,上线必须有我确认。

主 Agent 会调用 sop_create_instance(已有 SOP)或 sop_plan(现场规划,默认进审批中心)启动流程。Web 界面右上角出现 SOP 工作台 浮层(运行看板 / 任务详情 / 审批中心 / 工作流设置 / 定时任务 / 产出物)。

核心概念

概念 说明
SOP 定义 一组可配置的业务流程:agents(角色)+ tables(数据契约)+ steps(节点 DAG)+ manual_gates + rollbacks + planning + prompts
实例 一次业务运行(investigation/工单/专项),instance_id 串联所有数据;每个实例一个主 Agent(captain)
节点任务 双层状态机:实例阶段(running/waiting-human/monitoring/closed…)+ 任务状态(pending→claimed→in_progress→completed/failed/cancelled,带 attempt_id)
Context Bundle 任务只存引用;执行前按节点 inputs 组装上下文,四层拼装执行提示词(角色层 + 任务层 + 上下文层 + 协议层)
事件调度 成员 idle → 调度器原子领取就绪任务 → 唤醒成员;被动推送为主、主动 claim 为辅;冷重启自动恢复
质量门 / 人工关卡 声明式规则(表.字段 非空率 == 100%);人工关卡将节点置为 waiting-human,审批通过继续、驳回回退
动态规划 sop_plan 现场设计 SOP(受 planning 约束:scope/agent_source/max_steps/max_depth),变更进审批中心并可版本回滚

模型工具(sop_*

工具 使用者 作用
sop_create_instance 主 Agent 按 SOP 定义创建运行实例
sop_status 全员 实例全景:节点/任务/成员/待审/进度
sop_claim_task 成员 显式领取任务(引擎原子校验)
sop_update_task 成员 携带 attempt_id 推进任务(completed/failed + 质量门)
sop_assign 主 Agent 指派/转派(撤销旧 attempt 重新排队)
sop_message 全员 成员间/向主 Agent 直达消息(邮箱持久化 + 唤醒,拒冒名)
sop_approve 主 Agent 决定人工关卡(grant/reject + 意见)
sop_rollback 主 Agent 回退到指定节点(下游子图整体重跑)
sop_plan 主 Agent 现场规划新 SOP(校验 + planning 约束 + 审批)
sop_amend 主 Agent 运行中调整 SOP(结构变更走审批)
sop_archive 主 Agent 结束实例并归档(含复盘结论入共享记忆)

示例 SOP

开发

pnpm install
pnpm typecheck   # host + client 类型检查
pnpm test        # 核心逻辑单测(DSL/质量门/调度器/存储/提示词拼装/示例 SOP)
pnpm build       # tsc host + tsc client + tsdown 客户端打包
pnpm verify      # 以上全部

已知问题

  • 当前 DSH 构建的 spawn continuable 成员激活失败:成员被创建、领取任务、收到唤醒消息,但执行轮次以 error 结束且无输出(GUI 与 headless 一致,已用最小 e2e 复现)。解法:profile 中配置 memberProvider: forkfork 下成员独立执行完整链路已验证通过):
    # profile 的 cordis.patch.yml
    - id: sop-agent-teams
      config:
        memberProvider: fork
    
  • 成员模型路由:成员缺省继承队长路由;若 SOP 中给成员写死 model,该模型必须是环境已配置的路由(示例 SOP 不写死模型)。

发布

pnpm verify
pnpm publish                # npm 发布(package.json 已含 publishConfig)
# 或 GitHub 方式:git tag v0.1.0 && git push origin v0.1.0

用户安装(三种方式)

# 1) npm 包
dsh plugin --profile web add dsh-sop-agent-teams

# 2) GitHub 仓库(git 依赖,无需 npm 发布)
dsh plugin --profile web add git+https://github.com/KarmaX/dsh-sop-agent-teams.git

# 3) 本地目录(开发调试)
dsh plugin --profile web add /path/to/dsh-sop-agent-teams

安装后校验组合配置并启动:dsh --profile web --dump-config && dsh web;重启后浏览器右上角出现 Agent teams 工作台 即生效。

文档

  • docs/user-guide.md —— 使用指南(安装确认、三种用法、完整示例、看板操作、自定义 SOP、故障排查)
  • docs/dsl-reference.md —— SOP DSL 完整参考(agents/tables/steps/manualGates/rollbacks/planning/prompts/trigger)

许可证

MIT