全部插件

DSH / BUNDLE / BUNDLES

dsh-agent-evolution

v0.1.0FriendsHL / dsh-agent-evolution709c1105ca

可安装组合包组合包与其他模块社区 · Topic 自动分析

概览

dsh-agent-evolution

Preset-composed Agent experiments for DeepSeek Harness

README / ZH

插件文档

dsh-agent-evolution

English

dsh-agent-evolution 是一个公开的 DeepSeek Harness bundle,用于受控的 Agent 组合实验。首个运行时插件 agent-experiment-runner 会按指定 DSH preset 组装全新的 Agent,在这些 Agent 中运行同一项独立任务,并返回供后续评估使用的证据。

这个 bundle 提供基础能力,不是完整的自动进化循环。它不会自动评分、选择胜者、修改 preset 或 plugin、提升候选版本,也不会发布变更。

运行时工具

  • agent_experiment_list_presets 列出部署方授权的 preset。
  • agent_experiment_run 用一个 preset 运行一次任务。
  • agent_experiment_compare 用 baseline 和 candidate preset 依次运行同一任务,返回两份记录,但不判断胜负。

每次运行返回 preset id、子 session id、停止原因、耗时、最终 assistant 内容和 persisted。插件先 flush 子 session 日志,再释放 Agent handle。persisted: true 表示 DSH 持久化 listener 已在工具返回前确认完整日志;persisted: false 表示运行已完成,但当前没有持久化 listener,调用方不能把该 session id 当作持久化引用。

实验子 Agent 是带 lineage 的普通 Agent。其 session header 记录 parentSessiondelegationDepthagentPreset,但不记录 origin: subagent,因此不会进入 SubAgent catalog、continuation 或 control API。插件采用这条路径,是因为当前标准 SubAgent request 不能选择 Agent preset。

安装

DSH 仍处于开发预览阶段。从 GitHub 安装时应固定到已评审的 commit:

dsh plugin --profile web add github:FriendsHL/dsh-agent-evolution#<commit>

包中提供以下 profile patch:

- insert:
    - id: agent-experiment-runner
      name: dsh-agent-evolution
      config:
        maxDepth: 3

本地开发安装:

dsh plugin --profile web add link:/absolute/path/to/dsh-agent-evolution

添加或修改 bundle 后,需要重启正在运行的 DSH 进程,让 Loader 重新组装 profile。

配置

字段 默认值 用途
maxDepth 3 实验子 Agent 的绝对委托深度上限。
maxTokens 继承 工具调用未覆盖时采用的可选正整数输出 token 上限。
allowedPresets system-trust roster 可选的非空 preset id 白名单;显式条目可以包含 user-trust preset。
listToolName agent_experiment_list_presets 模型可见的 preset 查询工具名。
runToolName agent_experiment_run 模型可见的单次运行工具名。
compareToolName agent_experiment_compare 模型可见的对比工具名。

未配置 allowedPresets 时,查询和执行仅允许来自 trust: system root 的 preset。配置显式白名单时,插件加载阶段会解析每个 id;未知或损坏的条目会阻止插件启动。每次执行前还会再次解析目标 preset,因此运行期间被删除或损坏的 preset 会在创建 Agent 之前失败。

选择不同 preset 会改变子 Agent 的模型可见工具、skill、prompt、上下文压缩和其他 Agent-plane plugin。子 Agent 默认继承父 Agent 的模型路由;调用方也可以同时提供 providermodel。子 Agent 继承父 session 的显式 sandbox override;当 approval 能力存在时,委托策略固定为 approval: never。Preset 白名单不能替代部署方对各 preset 所加载能力的安全审核。

三个工具名必须非空且互不相同。allowedPresets 不能是空数组,也不能包含空 id 或重复 id。maxDepthmaxTokens 和调用参数 max_tokens 会在配置或请求校验阶段拒绝非法值。

运行与对比语义

两个执行工具都要求非空且可独立理解的 taskprovidermodel 覆盖值必须同时提供。稳定停止原因包括 completedmax-tokensabortedrefusalerror;非 completed 停止原因仍是有效实验记录,并不等同于基础设施异常。

对比工具会在启动任何子 Agent 前解析并授权两个 preset,然后先运行 baseline,再运行 candidate。即使 baseline 以非 completed 原因结束,candidate 仍会运行。创建、执行、持久化或清理异常会终止对比,并阻止下一个子 Agent 启动。运行前或两次运行之间发生取消时也不会启动下一个子 Agent;运行期间的取消会转发给当前子 Agent。

DSH session 日志是完整对话记录的唯一依据。这个 bundle 不会创建第二套 transcript 或评估存储。对于 persisted: true 的结果,可通过返回的 session id 检查完整 prompt、工具调用、工具结果和输出。

进化能力分层

Experiment Runner 是这个 bundle 的第一层。Evaluator、失败归因、候选版本编写以及提升或回滚属于相互独立的后续能力,便于部署方分别授权和验证。

开发与验证

仓库贡献遵循 CONTRIBUTING.md 中的独立设计、开发、评审和 QA 规范。该规范只约束本仓库的开发过程,不属于运行时插件能力。

pnpm run check
# Web 启动用例前需先构建一次 DSH checkout。
DSH_CHECKOUT=/absolute/path/to/deepseek-harness pnpm run test:integration

无 API key 的集成测试会打包真实 npm artifact,通过 dsh plugin 安装,使用确定性 LLM adapter 调用全部三个模型工具,验证 JSONL 日志在工具返回时已可读取、实验 Agent 不进入 SubAgent catalog,并启动构建后的 DSH Web 应用。组件关系和失败语义见 Architecture

License

MIT