dsh-agent-roster: Static Member Profiles and Validation Layer for Multi-Agent Teams

前言

在 DeepSeek Harness(DSH)里用 dsh-agent-teams 跑多智能体协作时,成员的人设、模型路由和工具边界往往散落在对话或临时配置里,难以评审、版本化和与运行时对齐。若直接在运行时里逐个改成员参数,改名或字段含义变化后也不易核对「档案里写的」和「团队里存的」是否一致。

下面介绍社区插件 dsh-agent-roster(npm 包名 @stofone/dsh-agent-roster,仓库 dsh-agent-roster/dsh-agent-roster)。它把团队成员定义成磁盘上的可校验文件,并桥接到 agent_teams_* 调用参数;调度、建队与 .agent-teams/ 状态仍由 dsh-agent-teams 负责。

这是什么

dsh-agent-roster 是 DSH 生态中的工作流类插件:为 DeepSeek Harness 提供静态成员花名册(roster)与成员档案的定义格式、校验,以及向 dsh-agent-teams 成员创建流程的输出转换。

花名册即一份明确文件:谁在队、各自职责、走哪条模型路由、允许哪些工具策略。插件只做定义与校验层,并在 roster_create 时按字段标注哪些会进入运行时、哪些仅为声明;不会创建成员、排任务或写入团队运行态。

维护与发布信息以仓库与 package.json 为准:GitHub 组织/仓库为 dsh-agent-roster/dsh-agent-roster,npm 作者为 STofone,当前资料中包版本为 1.5.0,许可证 MIT。社区目录页:skillhub.cn 插件页(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

资料中明确的能力边界如下。

角色 说明
定义与校验 花名册为可版本化文件;错误会带文件与字段路径失败,而非静默忽略
桥接 dsh-agent-teams roster_create 产出可用的 agent_teams_add_member 参数,并逐字段说明运行时实际接受的项
核对 roster_verify 读取 team.json,将持久化值与花名册对比
非运行时 不创建成员、不调度、不写 .agent-teams/ 状态

安装后插件提供 11 个工具(资料列举):roster_list、roster_show、roster_create、roster_verify、roster_diff、roster_index、roster_space、roster_search、roster_changes、roster_compile、roster_team。左侧栏会出现 Agent Roster 主面板(非 Settings 子项)。

成员字段在桥接时被分类:direct(如 name、role、systemPrompt、provider、model、reasoningEffort、toolPolicy)会传给 agent_teams_add_member;config(如 fallback)需属主侧配置;declaration(如 description、aliases、skills、examples 等)仅文档与校验,运行时不会自动应用。roster_verify 会将各字段报告为 applied、overridden、omitted 或 unconfirmed。

安装与启用

依赖:需要带 tools 服务的 DSH(任意较新构建),以及 yaml(插件已声明为依赖)。Node 引擎要求为 >=22.19.0(来自 package.json)。

在 DSH 插件管理器中指向本仓库(绝对路径),或发布后使用包名安装。资料原文给出的标识为:

@stofone/dsh-agent-roster

包内带有 cordis.patch.yml,安装后会自动写入 profile。Fresh 安装时全局档案库为空,面板会显示「0 rosters」,直到在 UI 中创建或通过 CLI 操作。

安全说明:插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与 MIT 许可证,确认符合你的环境策略。

档案库位置与文件格式

档案库是全局的:每台机器一份,不在工作区内;默认路径为 DSH 数据目录下的 agent-roster($DSH_HOME/agent-roster,一般为 ~/.dsh/agent-roster;Docker 中为挂载卷)。首次保存时创建,无需手工建目录。

每个花名册占一个子目录,目录内有且仅有一个主文件,探测顺序为 roster.yaml、roster.yml、roster.json;若存在多个会报错,不会静默择一。

示例结构(来自 README):

~/.dsh/agent-roster/
└── core-review/
    └── roster.yaml

顶层字段仅允许文档列出的键;未知键视为错误。必填包括 kind(必须为 dsh-agent-roster/v1)、roster(kebab-case,且等于目录名)、version(精确 SemVer)、members(1~32 条)。可选包括 defaults(成员继承的路由字段)、captain(描述队长会话,不自动创建)等。成员必填 name、role、systemPrompt;systemPrompt 上限 8000 字符。

Quick start 片段(YAML,字段含义见仓库 File reference):

kind: dsh-agent-roster/v1
roster: core-review
version: 1.0.0
title: Core review team
description: Fixed members for code review and release gatekeeping.
license: MIT
maintainers: [STofone]
tags: [review, release]

defaults:
  provider: deepseek
  model: deepseek-v4.1-flash
  reasoningEffort: high

members:
  - name: reviewer
    role: Code review
    description: Reviews only, never releases
    aliases: [code-reviewer]
    skills: [frontend-skill]
    examples:
      - Review this change for semantic bugs
    systemPrompt: |
      You review for semantic bugs first, style second.
    toolPolicy: readonly
  - name: release-manager
    role: Release gatekeeper
    systemPrompt: |
      You check the diff, the version and the rollback plan.
    model: deepseek-v4.1-pro
    reasoningEffort: low

captain:
  name: lead
  description: The main session is the captain; it splits work and accepts results
  provider: tsingmicro
  model: deepseek-v4.1-flash
  personaPrefix: |
    Restate the goal and acceptance criteria before delegating.

同目录可选 capabilities.yaml 声明部署能力需求(详见仓库 Capability requirements 章节)。机器可读 Schema 位于仓库 schema/roster.v1.schema.json。

典型用法

1、在面板或通过工具浏览、编辑全局档案库;也可让模型调用 roster_list 等工具。

2、用 CLI 查看示例库或校验当前全局库(与工具读同一默认路径):

# 查看仓库内示例库
npx dsh-agent-roster list --dir examples
npx dsh-agent-roster validate
npx dsh-agent-roster list

3、定义好 roster.yaml 后,通过 roster_create 获取 agent_teams_add_member 参数(字段映射如 systemPrompt → executionPrompt),再在 dsh-agent-teams 侧创建成员;之后用 roster_verify 对照 team.json 检查是否一致。改名时可用 aliases 避免验证误报「未部署 / 未管理」。

仓库还提供 examples/ 与 examples-orchestration/ 示例;默认 rosterDirs 为空,仅指向上述全局库。若要 CLI 直接读示例,需像上文一样通过 --dir 指定。

适用场景与注意

适合:需要把多 Agent 团队成员人设、模型与工具策略固化成可评审、可版本化文件,并与 dsh-agent-teams 创建成员流程对齐的团队;需要在改档案后核对运行时状态的场景。

不适合:期望本插件代替 dsh-agent-teams 做调度、重试或审查环的场景——这些属于运行时插件职责。

注意:

  • skills 等声明字段不会自动加载 Skill,仅作约定与校验。
  • 插件不写入团队状态;建队与任务分发仍需在 agent-teams 工作流中完成。
  • 安装与运行权限等同于 DSH 进程;生产环境请先审阅源码与依赖(yaml、@deepseek-ai/schemastery 等)。

结尾

dsh-agent-roster 把多 Agent 团队的成员定义从「口头配置」收拢为磁盘上的校验文件,并在创建成员时透明桥接到运行时接受的字段,同时用 roster_verify 帮助发现漂移。DSH 生态遵循「一切皆插件」;若要在本地启用,以插件管理器安装 @stofone/dsh-agent-roster 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye