Repository navigation
Releases: bloodarea/dsh-agent-team-presets
Release list
v0.1.5 — Members are created even when the subagent provider arrives late
0.1.5
从 v0.1.4 到这里 1 个提交(对比)。单一主线:成员创建不再取决于两个插件谁先被宿主激活。
成员别名改为跟随 subagent provider 注册表
- 此前插件只在激活时同步扫一次 provider 注册表,把结果连同错误一起存下来,之后再也不复查。宿主并发加载插件,
spawn/fork稍晚注册是正常情形;一旦发生,成员创建完全不可用——工具要么根本不出现,要么报「没有注册名为 spawn 的 subagent provider」,而且重启插件也不恢复。 - 现在别名是注册表的活视图:先订阅
subagent/provider-added/subagent/provider-removed,之后再做一次初始扫描,因此初始化窗口内发生的注册不会被漏掉。 - provider 迟到即注册别名;被替换则把包装重新绑定到新对象(不残留过期 upstream);被撤走则拒绝新建,重新注册后自动恢复。全程不需要重启插件、不需要改配置、也不依赖 YAML 条目顺序。
fresh与fork各自独立:只有真缺的那一端被拒绝,且各自带有自己的原因;拒绝的性质发生变化时会重新上报,而不是被去重吃掉。- 插件自身的别名注册/释放本身就是注册表事件,因此这部分必须收敛而不是级联:忽略本插件拥有的别名名、重入不递归、仅在真正变化时注册、
dispose幂等且先摘监听再释放别名,卸载后的激活不会把别名复活。 - 配置字段名、别名名与对外 API 均未改变:升级即替换,0.1.4 已持久化的成员继续保有原身份。
声明宿主支持范围
- 新增
engines.dsh(>=0.2.0-rc.2 <0.3.0)。认识该字段的宿主以它为唯一判据;不认识它的旧宿主仍按未改动的peerDependencies判定,接受与拒绝的运行时与之前一致。 - 该区间记录的是已验证过的范围,不是对区间内每个版本的承诺。
Member aliases now follow the subagent provider registry
- The plugin used to resolve the member execution aliases from ONE synchronous registry scan taken while it activated, and never revisit it. The Host loads plugins concurrently, so a
spawn/forkprovider that registered a moment later left member creation entirely unusable: the tool either never appeared or reported that no subagent provider was registered, and restarting the plugin did not recover it. - The aliases are now a live view of that registry: the
subagent/provider-addedandsubagent/provider-removededges are subscribed to BEFORE the initial scan, so a registration landing in that window cannot be missed. - A provider that appears later is picked up without a remount; one that is replaced has its wrapper rebound to the new object rather than left pointing at a stale upstream; one that is withdrawn refuses new creation and recovers on re-registration. No plugin restart, configuration change, or YAML ordering is involved.
freshandforkstay independent: only the context whose own backend is gone is refused, each with its own reason, and a refusal that changes kind is reported again rather than suppressed.- The plugin's own alias registrations and releases are registry edges too, so this converges rather than cascades: aliases this plugin owns are ignored by its listeners, a reentrant sweep never recurses, registration happens only on a real change, and
disposeis idempotent — it detaches every alias and stops listening first, so an unloaded activation cannot resurrect one. - No configuration key, alias name, or public API changed: an upgrade is a drop-in replacement, and members persisted by 0.1.4 keep their identity.
Declared Host support range
- Adds
engines.dsh(>=0.2.0-rc.2 <0.3.0). A Host that understands the field decides from it exclusively; a Host that predates it still reads the unchangedpeerDependencies, which accept and refuse the same runtimes as before. - The range records what has been verified, not a guarantee for every release inside it.
验证 / Validation
-
node tools/test.mjs—— 27 个测试文件 / 420 项通过,含新增的别名生命周期用例(延迟注册、逐上下文独立、替换重绑、撤销与恢复、自触发不递归、dispose 幂等)。 -
node tools/test.mjs --e2e—— 29 个文件 / 425 项通过,含真实 Team 服务与真持久化下的成员创建。 -
node tools/typecheck.mjs—— host 与 client 零本地诊断。 -
node tools/build.mjs—— 产物可复现(lib/index.jsSHA2565a711894e250e6aa,重复构建一致)。 -
两套新用例都先在修复前的源码上跑过,确认它们会失败,并原样捕获到用户看到的拒绝信息。
-
在真实
dsh 0.2.0-rc.2进程上验证:spawn_team_member创建成员成功,宿主记录持久身份preset-member-fresh-v1;同一流程在修复前的构建上被拒绝。桌面端与真实商用模型不在本次验证范围内。 -
node tools/test.mjs— 27 files / 420 tests, including the new alias-lifecycle cases. -
node tools/test.mjs --e2e— 29 files / 425 tests, including member creation over the real Team service and real persistence. -
node tools/typecheck.mjs— zero local diagnostics for host and client. -
node tools/build.mjs— reproducible artifacts. -
Both new suites were first run against the pre-fix sources to show they fail there.
-
Verified on a real
dsh 0.2.0-rc.2process. Desktop and real-model acceptance are not covered.
安装 / Install
dsh plugin --profile <profile> add dsh-agent-team-presets@0.1.5固定来源安装:dsh plugin --profile <profile> add github:bloodarea/dsh-agent-team-presets#v0.1.5(可复现,代价是收不到后续更新提示)。
v0.1.4 — Plugin-only member scoping and three default Teams
0.1.4
发布修订 / Publication correction: 本 Release 的
v0.1.4标签已重新指向feb4622。运行时代码与版本号未变,改动是这两份 README 已更新为当前公开版本,并修正了工具权限与成员模型路由相关表述。已按先前标签内容安装的副本不会自动更新;需要不可变引用时请固定上面这个提交 id,而不是可移动的标签。The
v0.1.4tag now points at the commit that carries the current public documentation. Runtime code and the version number are unchanged: both READMEs in this source archive are updated, along with the wording about tool permissions and member model routing. A copy installed from the previous tag content does not update automatically; pin the commit id above when an immutable reference is needed.
从 v0.1.3 到这里共 6 个提交(对比)。两条主线:成员配置改成纯插件实现,以及随包附带的默认团队预设。
成员配置不再依赖官方接口的未声明字段
0.1.3 把 agentOptions、persona、toolFilter 直接塞进 agentTeams.spawnTeammate()。这三个字段不在官方请求类型里,rc.2 不再透传,于是成员拿不到自己的模型和工具策略,静默跑在队长的线路上。
0.1.4 换了个做法,不改宿主源码、不打补丁:
- 创建之前,先把冻结配置原子写进持久成员单元(
agent_team_presets_members,single布局):路由、推理强度、persona、团队分工、严格工具策略。 - 成员改由插件自己注册的两个 subagent 执行后端别名创建(
preset-member-fresh-v1/preset-member-fork-v1)。别名只把整个 provider 契约转发给部署原本的实现,宿主会把别名写进 roster 行和子会话的subagent/descriptor,这样"这个成员归插件管"就有了独立于快照的持久依据。 - 在串行的
agent/created钩子里,趁成员的首次请求还没放行,装上模型选择、persona 前缀、团队上下文和严格工具守卫。 - 冷恢复走同一条路:成员被唤醒时重新读取快照,重放同一份配置。
该大声失败的地方都大声失败:存储域不可用、快照版本或校验不通过、身份对不上、部署深度上限不够、固定路由解析不出来,都在创建事务内拒绝,不会退化成"默认模型 + 全量工具先跑起来"。被拒的创建不写 intent、不写 roster、不发模型请求。
成员对外报告 configuredRoute(插件实际装上的那条路由),不再转发 roster 里来自创建选项的 model。
三套默认团队预设
首次安装就有 轻量研发团队 / 标准研发团队 / 全栈软件研发团队。它们就是普通预设,改名、复制、导出、删除都随意。
- 每个部署只装一次,记录在
seededDefaults里。删掉的不会在重启或升级后自己回来,你改过的也不会被覆盖。 - 设置页的"恢复默认预设"按需恢复:补回随插件发布的名称、说明、提示词、颜色和成员名单,同时保留你给这些角色配的模型路由与工具权限,自建团队不受影响。注意它会恢复内置团队的原始名单,往内置团队里加过的角色会被移除——想留住就先复制一份。
- 恢复只是草稿,点保存才生效。
工具权限收紧
- 自定义模式同时管继承工具和 Agent 自己注册的工具;团队协作工具(
send_message、team_task_*等)也要显式勾选。空的自定义列表是"全部拒绝",不是"不限制"。 - 自定义模式禁用通用
run_code,以及普通subagent、subagent_fork、workflow委派——这些路径没法保证严格策略传下去。 - 团队预设生效期间,原生
spawn_teammate一律拒绝,改用spawn_team_member。 - 自定义策略以原生工具调用呈现。继承来的 PTC 呈现会被本插件在 Agent 作用域覆盖,并在设置页说明;如果当前作用域已经声明了无法替换的呈现方式,团队直接拒绝应用,而不是悄悄放宽策略。
- 白名单不是文件系统、进程或网络沙箱。放行 shell 或能力很强的第三方工具,等于接受它们的间接能力。
会话输入区与设置页不再静默失败
选择团队改走 remote.settings.mutate,带修订号。被拒时先回读宿主文档再重试一次,仍失败就把宿主原文显示在控件和设置页上——以前点了没反应的情况,现在有明确报错。
启动打包修复
0.1.3 的 lib/ 依赖外部解析 zod,从源码链接安装时如果插件目录没有 node_modules/zod,启动导入会直接失败。0.1.4 把 zod 校验代码内联进 Host Typert 与 Remote 两个入口,zod 挪到 devDependencies,并按许可要求附上 THIRD-PARTY-NOTICES.txt。校验没有放宽。从旧 tag 装的副本不会自动拿到这个修复。
文档
两份 README 覆盖:环境要求、安装与升级、首次使用、字段说明、生效时机、预设分享、权限与安全边界、排障、开发与贡献、许可。
Member scoping moved off the official request's undeclared fields
0.1.3 passed agentOptions, persona, and toolFilter straight into agentTeams.spawnTeammate(). None of the three is part of the official request type, rc.2 stopped forwarding them, and members silently fell back to the captain's route with the default tool surface.
0.1.4 reimplements member scoping without patching the host. The frozen configuration (route, reasoning effort, persona, team context, strict tool policy) is committed to a durable member unit before creation; the member is created through one of two plugin-registered subagent execution-backend aliases, which the Host records in its roster row and the child's subagent/descriptor; and a serial agent/created hook installs model selection, persona, team context, and the strict tool guard before the child's first request. Cold resume replays the same snapshot.
Every unusable precondition refuses inside the creation transaction instead of degrading to the deployment default: missing storage domain, failed schema or version check, mismatched identity, insufficient delegation depth, unresolvable route. A refused creation writes no intent, no roster row, and no model request. The member tool now reports configuredRoute rather than forwarding the roster's creation-option model.
Three Team presets ship with the plugin
A fresh install starts with 轻量研发团队 / 标准研发团队 / 全栈软件研发团队 — ordinary stored Teams you can rename, duplicate, export, or delete. They are installed once per deployment and tracked in seededDefaults, so a deleted preset stays deleted across restarts and upgrades, and an edited one is never overwritten. Restore defaults in Settings puts them back on request: it restores the shipped name, purpose, prompts, colors, and roster while keeping the routes and tool policies you configured for those roles, and it leaves your own Teams alone. It also restores each built-in Team's shipped roster, so roles you added to a built-in Team are removed — duplicate it first if you want to keep them. A restore is staged until you save.
Stricter tool policies
Custom mode governs inherited tools and exact-Agent registrations alike; coordination tools such as send_message and team_task_* must be selected explicitly, and an empty custom list denies everything rather than meaning "unrestricted". Custom mode denies general run_code and ordinary subagent/subagent_fork/workflow delegation, which cannot carry the strict policy. Native spawn_teammate is refused while a Team preset is active. Custom policies run with native tool calling: an inherited PTC presentation is shadowed at the Agent scope and disclosed in Settings, and a presentation that cannot be replaced refuses the Team instead of quietly weakening the policy. The allow-list is still not a filesystem, process, or network sandbox.
Composer and Settings stop failing silently
The per-Session selection now writes through remote.settings.mutate with the revision, retries once after a recovery read, and reports the Host's own error text on the control and the Settings page.
Startup packaging fix
0.1.3's lib/ resolved zod externally, so a source-link install without node_modules/zod failed its startup import. 0.1.4 inlines the schema code into both the Host Typert and Remote entrypoints, moves zod to devDependencies, and ships THIRD-PARTY-NOTICES.txt. Validation is unchanged. A copy installed from an earlier tag does not receive this automatically.
验证 / Validation
-
node tools/test.mjs— 25 个测试文件 / 397 项通过,覆盖成员注入与冷恢复、工具权限矩阵、设置写入 E2E、Typert 隔离、内置预设与贡献副本不漂移。 -
node tools/typecheck.mjs— host 与 client 零本地诊断(DSH_CHECKOUT指向 rc.2 检出)。 -
npm pack --dry-run— 76 个文件 / 346 KB;exports全部指向存在文件,官方包全部是 peer,dependencies为空。 -
本次没有在真机上重跑一遍 GUI 验收;成员路径由上面的自动化用例覆盖。
-
node tools/test.mjs— 25 files / 397 tests, covering member injection and cold resume, the tool-permission matrix, the settings-write E2E, Typert isolation, and shipped-preset drift. -
node tools/typecheck.mjs— zero local diagnostics for host and client against an rc.2 checkout. -
npm pack --dry-run— 76 files / 346 KB; everyexportstarget exists, all official packages are peers,dependenciesis empty. -
No full GUI acceptance run on a real instance for this release; the member path is covered by the specs above.
安装 / Install
浮动安装(插件市场据此提示更新):
dsh plugin --profile <profile> add github:bloodarea/dsh-agent-team-presets固定到本次发布:
dsh plugin --profile <profile> add github:bloodarea/dsh-agent-team-presets#v0.1.4固定 ref 只与同一个 ref 比对,市场不会为它提示后续更新;需要不可变引用时请固定提交 id。npm 形式:0.1.4 已发布到 npm 并成为 latest,dsh plugin --profile <profile> add dsh-agent-team-presets 装到的就是本版本(可先 npm view dsh-agent-team-presets version 确认)。
需要满足 rc.2 API 的 Harness:部分 peer 要求 >=0.2.0-rc.2 <0.3.0,其余范围见 package.json,由插件管理器逐项校验。rc.1 不足以安装本版本。
The floating form is what the plugin market compares for updates. A pinned ref is only compared against that same ref, so it never reports later releases; pin a commit id when you need an immutable reference. The npm form: 0.1.4 is published and is the registry's latest, so dsh plugin --profile <profile> add dsh-agent-team-presets installs this release; check npm view dsh-agent-team-presets version to confirm. Several peers require >=0.2.0-rc.2 <0.3.0; the plugin manager checks them individually, and rc.1 is not sufficient for this release.
v0.1.3 — Team task stability, Settings sync and version clarification
0.1.3 发布修订 / Publication correction
本次替换 v0.1.3 标签并更新此 Release,提交:fd1ac04。仅修正文档和发布同步工具,运行时代码及版本号不变。 已安装旧标签内容不会自动更新,Git/pnpm 缓存也可能保留旧解析结果;需要不可变固定时请使用上面的完整提交 id,而不是可移动标签。
This Release and its v0.1.3 tag were revised to clarify package identity and migration. Runtime code is unchanged. Previously installed copies do not update automatically; use the resolved commit id for an immutable pin.
版本来源与迁移 / Package identity and migration
- 社区发布包:
dsh-agent-team-presets@0.1.3。插件详情应显示v0.1.3。 - monorepo 开发包:
@deepseek-ai/dsh-experimental-agent-team-presets。其版本跟随 Harness,例如0.2.0-rc.2,不代表社区插件的版本。 - 切换时先备份 profile 与团队配置,在 GUI 实际运行的同一 profile 中替换开发依赖、启用的 bundle 及
agent-team-presets入口的模块名,保留团队配置和会话选择。不要同时启用两个包。 - 切换包身份后重启 Harness,再刷新 GUI;仅刷新页面可能保留旧客户端入口而导致重复插件启动失败。
The community and workspace packages have separate names and version lines. Replace the development dependency and bundle in the same active profile, preserve the Team configuration and Session selections, and restart the Harness after changing identities. Do not enable both packages.
更新内容 / Changes
- Publication clarification (same-version tag replacement). The community
package isdsh-agent-team-presets@0.1.3; the monorepo development package is
@deepseek-ai/dsh-experimental-agent-team-presetsand follows the Harness's
version, such as0.2.0-rc.2. README and development notes now distinguish
those identities, document same-profile migration and a Harness restart after
switching package identities, and explicitly include member prompts in the
frozen definition. Runtime code is unchanged by this publication correction.
Thev0.1.3tag was moved to include these documentation corrections; an
already installed copy does not automatically receive them. Use the resolved
commit id when an immutable pin is required. - 中文:发布说明修正(同版本替换标签):社区包为
dsh-agent-team-presets@0.1.3,monorepo 开发包@deepseek-ai/dsh-experimental-agent-team-presets的版本跟随 Harness,例如0.2.0-rc.2。文档现明确区分两种来源,说明同 profile 迁移与切换包身份后的 Harness 重启,并明确成员提示词也属于冻结定义。本次修正不改变运行时代码;v0.1.3标签移到包含文档修正的新提交,已有安装不会自动更新。需要不可变固定时请使用解析后的提交 id。 - Team definitions stay consistent throughout a task. The captain's persona,
briefing, member preset prompts and role descriptions, member roster, and
tool policies are adopted together between tasks,
not replaced while the captain or a teammate is running or provisioning.
Selection changes and removing a Team follow the same adoption boundary;
members still running under a previously selected Team also block model-issued
preset writes. - Settings reports live execution state. An event-driven Remote stream
suppliesidle,busy, orunknownplus aggregate execution and pending
adoption counts. A missing, failed, or ended stream never passes for idle. - Open drafts coordinate with external writes. Settings adopts changed,
added, or removed Teams from the Host, preserves edits to unaffected Teams,
and reports when a stored update replaces a local edit. Saving coordinates
against the latest stored document rather than silently restoring stale Teams. - 中文:团队定义在任务期间保持一致,队长提示词、briefing、成员预设提示词与角色描述、成员名单与工具权限在任务间一起采用;切换或移除 Team 遵循同一边界,仍执行旧 Team 的队员也会阻止模型发起的预设写入。Settings 通过事件驱动的 Remote 流显示执行状态与待采用计数,流缺失、失败或结束不会被误判为空闲。打开的草稿会同步 Host 修改、新增或删除的 Team,保留未受影响 Team 的编辑,并提示被外部更新替换的本地编辑;保存前再次协调最新文档,避免恢复过时记录。
- A running Team task keeps its definition, not its routing. A member's
provider,model, andreasoningEffortare read from the stored Team each
time that member is summoned, and each slot's accent color is read when the
roster draws, so both sit outside the definition a Team task freezes.
Correcting a member route in Settings now reaches the next member the running
task summons, without interrupting it or waiting for its next task — a route
fix used to need the whole Team task to end first. Prompts, roles, roster, and
tool policy stay frozen exactly as before, a teammate already provisioned
keeps the route it was spawned with, andupdate_team_presetstill refuses
while the Team is executing. - The Settings footer,
get_team_preset, andupdate_team_presetnow state
that split, andpendingSessionscounts only a definition a Session has not
adopted yet. - 中文:成员的路由与颜色不再属于团队任务冻结的定义。
provider/model/reasoningEffort改为每次召唤该成员时从存储的 Team 读取,颜色在绘制名单时读取,因此执行中修正路由会在下次召唤生效,无需中断任务或等到下一次任务;提示词、角色、名单与工具策略仍按原样冻结,已创建的 teammate 保留创建时的路由,update_team_preset在团队执行期间仍拒绝写入。设置页脚与两个预设工具同步说明了这一区分,pendingSessions只统计尚未采用的定义。
提示词边界: 队长和成员预设提示词都属于冻结定义。任务期间新召唤的成员使用该任务的定义;已创建队友保留创建时的提示词与工具权限,消息唤醒不会自动换成新版预设。成员路由与颜色不在定义冻结范围内;新路由供下次新建成员使用,不改变已有队友的路由。
验证 / Validation
- 228 automated regression tests and the production Loader composition end-to-end test passed for the unchanged runtime.
- Host and client TypeScript checks passed for the unchanged runtime.
- Revised package dry-run, diff checks, and sync-script syntax checks passed.
- An isolated real sync verified that community version and bilingual migration guidance survive a monorepo sync.
- Restarted GUI verified: only
dsh-agent-team-presetsis loaded; plugin details showv0.1.3and its component is running.
安装 / Install
dsh plugin --profile <profile> add github:bloodarea/dsh-agent-team-presets#v0.1.3将 <profile> 替换为 GUI 使用的 profile(例如 web)。Harness peer 范围为 >=0.2.0-rc.1 <0.3.0,不是“任意更高版本”。已有安装需备份后移除并重新安装;开发链接迁移见 README。
Replace <profile> with the active GUI profile. Supported Harness peers: >=0.2.0-rc.1 <0.3.0. Back up existing configuration before removal and reinstall; see the README for development-link migration.
v0.1.2 — 队长调整预设与安全写入 / Captain preset editing & write safeguards
中文
本版本让队长根据用户反馈调整团队预设,并为共享预设写入增加运行状态、修订号和提示词校验保护。
更新内容
- 读取预设
get_team_preset:读取当前会话所选 Team(或指定 Team)的全部可编辑字段和设置修订号,报告正在执行的成员数;未选团队时列出已配置团队,避免猜测编辑对象。 - 更新预设
update_team_preset:修改团队用途描述、队长的角色描述与常驻提示词,以及成员的角色描述与常驻提示词。写入使用读取到的修订号作为并发保护;名称、模型路由和工具权限仍由 Settings 页面管理。 - 运行期间禁止写入:只要任何选中该 Team 的会话仍有 running 或 provisioning 成员,写入即返回
team-busy,不落盘,也不会自动打断团队。 - 用户直接发起才可修改:工具仅对会话根 Agent(队长)开放;自动续跑和 teammate 汇报触发的回合不能改写共享预设。
- 提示词先校验后保存:本次提交的常驻提示词若包含当前会话无法解析的
{{variable}},会在写入前被拒绝,避免后续模型请求失败。
生效范围与注意事项
预设更新影响所有选中同一 Team 的会话:队长在后续模型步骤读到新预设,之后创建的成员使用新配置。已经创建的 teammate 保留创建时的提示词;修改其职责需要重新召唤,或发送新的要求。团队仍在执行时,应等待本轮结束,或由用户要求中断相关成员后再修改;修订号冲突时先重新读取。
English
This release lets the captain refine a Team preset from user feedback, with execution-state checks, revision fencing, and prompt validation protecting shared preset writes.
Changes
- Read with
get_team_preset: retrieve all editable fields and the settings revision for the Session's selected Team or a specified Team, including the executing-member count. When no Team is selected, list configured Teams instead of guessing which one to edit. - Write with
update_team_preset: update the Team's purpose description, the captain's role description and standing prompt, and each member's role description and standing prompt. Writes are fenced by the revision returned by the read. Names, model routes, and tool permissions remain managed in Settings. - No writes during execution: if any Session selecting the Team has running or provisioning members, the write returns
team-busy, persists nothing, and does not automatically interrupt the Team. - User-started turns only: the tools are available only to the Session-root Agent (captain). Automatic continuations and turns triggered by teammate reports cannot rewrite a shared preset.
- Validate prompts before saving: a submitted standing prompt containing a
{{variable}}that the current Session cannot resolve is rejected before persistence, preventing a subsequent model request from failing.
Scope and caveats
Updates affect every Session selecting the same Team: captains read the new preset on subsequent model steps, and members created afterwards use the new configuration. Already-created teammates retain their creation-time prompts; changing their role requires spawning again or sending a new requirement. If the Team is still executing, wait for the run to finish or interrupt the relevant members at the user's request before editing. Re-read the preset after a revision conflict.
安装与升级 / Installation and upgrade
dsh plugin add github:bloodarea/dsh-agent-team-presets#v0.1.2已安装旧版时,先移除旧插件,再按上面的固定版本命令安装;Harness 不会自动更新已安装的插件。需要兼容的 DeepSeek Harness 0.2.0-rc 系列及 Agent Teams profile;随包提供预构建产物。
To upgrade an existing installation, remove the old plugin first, then install the pinned version above. Harness does not automatically update installed plugins. Requires a compatible DeepSeek Harness on the 0.2.0-rc line and an Agent Teams profile; prebuilt artifacts are included.
完整变更 / Full changelog: v0.1.1...v0.1.2
v0.1.1 — 团队预设导入与导出 / Team preset import & export
中文
本版本新增单个团队预设的导出与导入,方便跨部署分享和复用团队角色配置。
更新内容
- 导出团队:团队行上的「导出」将当前团队保存为固定格式的 JSON 文档,包括团队名称与用途,以及队长和成员的名称、描述、系统提示词与颜色。
- 导入预设:「导入预设」读取共享文档;团队名、队长名或队员名冲突时,逐个询问是替换还是改名后新增。
- 保留本地配置:模型路由、推理强度和工具权限不随共享文档导出;替换只更新共享字段,保留目标团队已有的本地配置和文档未提及的成员。
- 草稿与校验:导入先进入草稿,点击 Save 后才持久化;导出包含当前页面尚未保存的草稿。格式不合法、版本不支持或携带非共享字段的文档会被拒绝,而不是静默裁剪。
使用提示
跨部署分享后,请在目标部署中检查并配置成员模型和工具权限。此版本不改变队长沿用当前会话模型的行为。
English
This release adds export and import for a single Team preset, making role configurations easier to share and reuse across deployments.
Changes
- Export a Team: the Export action on a Team row writes a fixed-format JSON document containing the Team's name and purpose, plus the captain's and members' names, descriptions, system prompts, and colors.
- Import a preset: Import preset reads the shared document. Conflicts in Team, captain, or member names are resolved individually by replacing the existing entry or adding the imported entry under a new name.
- Keep deployment settings local: model routes, reasoning effort, and tool permissions are not exported. Replacement updates only shared fields, retaining the target Team's local settings and members not mentioned in the document.
- Draft-first workflow and validation: imports remain in the draft until Save; exports include the current unsaved draft. Malformed documents, unsupported format versions, and non-shareable fields are rejected instead of being silently trimmed.
Usage notes
After sharing across deployments, review and configure member models and tool permissions on the destination. The captain continues to use the current Session model.
安装与升级 / Installation and upgrade
dsh plugin add github:bloodarea/dsh-agent-team-presets#v0.1.1已安装旧版时,先移除旧插件,再按上面的固定版本命令安装;Harness 不会自动更新已安装的插件。需要兼容的 DeepSeek Harness 0.2.0-rc 系列及 Agent Teams profile;随包提供预构建产物。
To upgrade an existing installation, remove the old plugin first, then install the pinned version above. Harness does not automatically update installed plugins. Requires a compatible DeepSeek Harness on the 0.2.0-rc line and an Agent Teams profile; prebuilt artifacts are included.
完整变更 / Full changelog: v0.1.0...v0.1.1
v0.1.0 — 首个公开版本 / First public release
中文
首个公开版本:为 DeepSeek Harness 提供可配置、可复用的 Agent Team 预设,将团队角色配置与原生多智能体协作运行分离。
主要功能
- 可视化团队管理:在 Settings → Agent team presets 中创建、复制、编辑和删除具名团队,配置团队用途、队长与成员。
- 会话快速选择团队:通过输入区的 Team 控件为当前会话应用预设,安装队长提示词与工具策略,并提供团队职责 briefing。
- 成员独立配置:为每个成员设置角色描述、系统提示词、提供商 / 模型、推理强度与全局工具白名单;队长继续使用当前会话模型。
- 按预设召唤成员:
spawn_team_member使用已保存的成员配置创建 teammate,保留原生 Agent Teams 的 roster、mailbox 与共享任务板协作能力。 - 安装即用:随包提供预构建产物,安装时无需本地构建。
注意事项
团队定义在同一 profile 内共享,团队选择按会话保存。工具白名单限制全局工具,不会移除作用域内的团队协调工具。源码修改需要 DeepSeek Harness 源码检出目录。
English
First public release: configurable, reusable Agent Team presets for DeepSeek Harness, separating team-role configuration from native multi-agent collaboration at runtime.
Highlights
- Visual team management: create, duplicate, edit, and delete named Teams in Settings → Agent team presets; configure the Team's purpose, captain, and members.
- Per-Session Team selection: apply a preset from the composer Team control, installing the captain's prompt and tool policy together with a role briefing.
- Independent member configuration: set each member's role description, system prompt, provider / model, reasoning effort, and global tool allow-list. The captain keeps using the current Session model.
- Spawn from a preset:
spawn_team_membercreates a teammate with its saved configuration while retaining the native Agent Teams roster, mailbox, and shared task board. - Ready-to-install artifacts: prebuilt artifacts ship with the package; installation requires no local build.
Notes
Team definitions are shared within a profile; Team selection is stored per Session. Tool allow-lists restrict global tools without removing scoped Team coordination tools. Source changes require a DeepSeek Harness source checkout.
安装 / Installation
dsh plugin add github:bloodarea/dsh-agent-team-presets#v0.1.0需要兼容的 DeepSeek Harness 0.2.0-rc 系列及 Agent Teams profile;插件管理器会校验声明的 peer 依赖。
Requires a compatible DeepSeek Harness on the 0.2.0-rc line and an Agent Teams profile; the plugin manager validates the declared peer dependencies.