Agent Harness 会不会也迎来自己的「Debian 时刻」?
最近一段时间,我一直在思考一个问题:
**Agent Harness 会不会也需要自己的“发行版”?**
Linux 内核提供了核心能力,但大多数人真正安装和使用的是 Debian、Ubuntu 这样的发行版。发行版不仅打包内核,还负责默认组件、依赖关系、安装升级、兼容策略,以及一套相对稳定的使用体验。
我觉得 Agent Harness 可能也会经历类似的阶段。
DeepSeek Harness 提供了一个很有意思的基础:agent loop、tools、skills、plugins、MCP,以及“everything is a plugin”的扩展模型。
但从一个可扩展的 harness,到一个可以长期使用、持续演化、随时升级和回滚的工作环境,中间还有一层没有被充分解决。
所以我做了:
**oh-my-dsh**
[https://github.com/amplifthq/oh-my-dsh](https://github.com/amplifthq/oh-my-dsh)
它是一个面向 DeepSeek Harness 的社区发行版,目标不是 fork 上游,而是在上游之上提供一套可组合、可覆盖、可验证的发行层。
一句话定位:
> 如果 DeepSeek Harness 是内核,oh-my-dsh 想试成为类似 Debian 的发行版层。
## Overlay,不是 Fork
oh-my-dsh 不复制或魔改 DeepSeek Harness 的核心代码,而是通过 overlay 方式组合:
- 上游 Harness
- oh-my-dsh 提供的默认能力
- 用户自己的配置、Skills 和 Plugins
上层可以覆盖下层,但用户自己创建的内容始终拥有最高优先级。
这么设计主要是为了避免两个问题:
1. 为了增加功能长期背着一个越来越难维护的 fork;
2. 每次升级都把用户自己积累的配置和能力覆盖掉。
项目的安装、更新和回滚也是围绕这个模型设计的。发行版本可以替换,但用户自己的成长记录应该保留下来。
## 为 self-evolve native 而生
我不希望这里的“自进化”只是让 Agent 自动修改自己的 prompt。
我更关心的是一条完整、可治理的演化链路:
1. 发现当前能力和能力缺口;
2. 把重复出现的方法沉淀成 Skill;
3. 把需要运行时扩展的能力封装成 Plugin;
4. 用固定输入和机器断言做 Eval;
5. 由 Optimizer 根据失败结果生成可检查的改进建议;
6. 经过 review、验证和批准后,再决定是否保留或提升为默认能力。
围绕这条链路,oh-my-dsh 目前包含几个核心部分:
### Capability Discovery
统一发现当前环境里的 Skills、Plugins、MCP、Prompts 和其他可用能力,让 Agent 不需要依赖一份静态、容易过期的能力清单。
### Skill Forge
把一次成功的解决过程,提炼成可以重复执行、带有明确边界的 Skill。
这里的重点不是“自动生成一段提示词”,而是形成可以检查、测试、版本化和移植的能力单元。
### Plugin Forge
当一个能力需要新的命令、Hook、MCP Server 或运行时扩展时,可以进一步把它封装成 Plugin。
Skill 更接近可复用的方法和工作流,Plugin 则扩展运行时边界。两者解决的是不同层次的问题。
### Eval
Eval 使用冻结的输入快照和机器可判定的 assertions,比较修改前后的行为差异。
它支持:
- 对比能力修改前后的结果;
- 发现回归;
- 通过 ablation 比较“启用/关闭某项能力”时的差异;
- 为是否保留一次优化提供证据。
Eval 只负责评估,不会自动挂载 Plugin、应用 proposal 或修改能力目录。
### Optimizer
Optimizer 根据执行轨迹和 Eval 失败生成结构化、可审查的改进建议。
目前它是 **proposer-only**:可以提出修改,但不能绕过评估和批准流程直接改写系统。
这也是我对 self-evolve native 的理解:
> 系统应该原生支持自我改进,但自我改进不等于自我授权。
Agent 可以发现缺口、提出修改、生成候选能力并运行评估;但权限提升、能力挂载和默认行为变更,仍然应该经过明确的治理边界。
## 另外做了一些日常能力
除了自进化链路,目前还包括:
- MCP 按需激活,减少所有工具常驻带来的上下文和运行成本;
- Skill / Plugin 的发现、覆盖和生命周期管理;
- SSRF-resistant Web Fetch;
- 面向代码修改的语义化 rename / refactor proposal;
- 复用现有 Agent 配置;
- 可移植安装;
- 可验证的更新与回滚;
- 用户配置和自建能力在版本切换时保持独立。
## 安装
**Portable 安装:**
```bash
curl -fsSL https://github.com/amplifthq/oh-my-dsh/releases/latest/download/install.sh | sh
omd setup
omd
```
也可以通过 npm:
```bash
npm install --global oh-my-dsh
omd setup
omd
```
## 当前边界
先主动说一些目前的限制:
- 这是一个社区项目,不是 DeepSeek 官方项目;
- 项目由我独立开发和维护,与 DeepSeek 没有从属关系,也没有得到官方背书;
- 它是发行层,不是 DeepSeek Harness 的 fork;
- Plugin Forge 生成的是具有宿主权限的代码,不应该被误解成安全沙箱;
- 自进化过程仍然强调 proposal、review、Eval 和显式批准,不追求无人监管的自动改写;
- 目前仍处于比较早期的阶段,接口、默认策略和能力组合都可能继续调整。
- 我现在想验证的不是“能不能再给 Agent 多装一些工具”,而是:
- Agent 的能力能不能像软件包一样被发现、生成、评估、组合、升级和回滚?
- 如果答案是肯定的,那么 Agent Harness 上面可能确实还需要一个发行版层。
项目地址:
[https://github.com/amplifthq/oh-my-dsh](https://github.com/amplifthq/oh-my-dsh)
在 DeepSeek Harness 社区的介绍:
[https://github.com/deepseek-ai/deepseek-harness/discussions/3113](https://github.com/deepseek-ai/deepseek-harness/discussions/3113)
欢迎拍砖,尤其想听听大家对下面几个问题的看法:
1. Agent Harness 是否真的需要“发行版”这一层?
2. Skill 和 Plugin 的边界应该怎么划分?
3. 自进化系统里,哪些动作可以自动执行,哪些必须保留人工批准?
4. Eval 怎样设计,才能避免最后退化成“模型自己评价自己”?
---
原文链接:[点击查看](https://www.v2ex.com/t/1235404)
**Agent Harness 会不会也需要自己的“发行版”?**
Linux 内核提供了核心能力,但大多数人真正安装和使用的是 Debian、Ubuntu 这样的发行版。发行版不仅打包内核,还负责默认组件、依赖关系、安装升级、兼容策略,以及一套相对稳定的使用体验。
我觉得 Agent Harness 可能也会经历类似的阶段。
DeepSeek Harness 提供了一个很有意思的基础:agent loop、tools、skills、plugins、MCP,以及“everything is a plugin”的扩展模型。
但从一个可扩展的 harness,到一个可以长期使用、持续演化、随时升级和回滚的工作环境,中间还有一层没有被充分解决。
所以我做了:
**oh-my-dsh**
[https://github.com/amplifthq/oh-my-dsh](https://github.com/amplifthq/oh-my-dsh)
它是一个面向 DeepSeek Harness 的社区发行版,目标不是 fork 上游,而是在上游之上提供一套可组合、可覆盖、可验证的发行层。
一句话定位:
> 如果 DeepSeek Harness 是内核,oh-my-dsh 想试成为类似 Debian 的发行版层。
## Overlay,不是 Fork
oh-my-dsh 不复制或魔改 DeepSeek Harness 的核心代码,而是通过 overlay 方式组合:
- 上游 Harness
- oh-my-dsh 提供的默认能力
- 用户自己的配置、Skills 和 Plugins
上层可以覆盖下层,但用户自己创建的内容始终拥有最高优先级。
这么设计主要是为了避免两个问题:
1. 为了增加功能长期背着一个越来越难维护的 fork;
2. 每次升级都把用户自己积累的配置和能力覆盖掉。
项目的安装、更新和回滚也是围绕这个模型设计的。发行版本可以替换,但用户自己的成长记录应该保留下来。
## 为 self-evolve native 而生
我不希望这里的“自进化”只是让 Agent 自动修改自己的 prompt。
我更关心的是一条完整、可治理的演化链路:
1. 发现当前能力和能力缺口;
2. 把重复出现的方法沉淀成 Skill;
3. 把需要运行时扩展的能力封装成 Plugin;
4. 用固定输入和机器断言做 Eval;
5. 由 Optimizer 根据失败结果生成可检查的改进建议;
6. 经过 review、验证和批准后,再决定是否保留或提升为默认能力。
围绕这条链路,oh-my-dsh 目前包含几个核心部分:
### Capability Discovery
统一发现当前环境里的 Skills、Plugins、MCP、Prompts 和其他可用能力,让 Agent 不需要依赖一份静态、容易过期的能力清单。
### Skill Forge
把一次成功的解决过程,提炼成可以重复执行、带有明确边界的 Skill。
这里的重点不是“自动生成一段提示词”,而是形成可以检查、测试、版本化和移植的能力单元。
### Plugin Forge
当一个能力需要新的命令、Hook、MCP Server 或运行时扩展时,可以进一步把它封装成 Plugin。
Skill 更接近可复用的方法和工作流,Plugin 则扩展运行时边界。两者解决的是不同层次的问题。
### Eval
Eval 使用冻结的输入快照和机器可判定的 assertions,比较修改前后的行为差异。
它支持:
- 对比能力修改前后的结果;
- 发现回归;
- 通过 ablation 比较“启用/关闭某项能力”时的差异;
- 为是否保留一次优化提供证据。
Eval 只负责评估,不会自动挂载 Plugin、应用 proposal 或修改能力目录。
### Optimizer
Optimizer 根据执行轨迹和 Eval 失败生成结构化、可审查的改进建议。
目前它是 **proposer-only**:可以提出修改,但不能绕过评估和批准流程直接改写系统。
这也是我对 self-evolve native 的理解:
> 系统应该原生支持自我改进,但自我改进不等于自我授权。
Agent 可以发现缺口、提出修改、生成候选能力并运行评估;但权限提升、能力挂载和默认行为变更,仍然应该经过明确的治理边界。
## 另外做了一些日常能力
除了自进化链路,目前还包括:
- MCP 按需激活,减少所有工具常驻带来的上下文和运行成本;
- Skill / Plugin 的发现、覆盖和生命周期管理;
- SSRF-resistant Web Fetch;
- 面向代码修改的语义化 rename / refactor proposal;
- 复用现有 Agent 配置;
- 可移植安装;
- 可验证的更新与回滚;
- 用户配置和自建能力在版本切换时保持独立。
## 安装
**Portable 安装:**
```bash
curl -fsSL https://github.com/amplifthq/oh-my-dsh/releases/latest/download/install.sh | sh
omd setup
omd
```
也可以通过 npm:
```bash
npm install --global oh-my-dsh
omd setup
omd
```
## 当前边界
先主动说一些目前的限制:
- 这是一个社区项目,不是 DeepSeek 官方项目;
- 项目由我独立开发和维护,与 DeepSeek 没有从属关系,也没有得到官方背书;
- 它是发行层,不是 DeepSeek Harness 的 fork;
- Plugin Forge 生成的是具有宿主权限的代码,不应该被误解成安全沙箱;
- 自进化过程仍然强调 proposal、review、Eval 和显式批准,不追求无人监管的自动改写;
- 目前仍处于比较早期的阶段,接口、默认策略和能力组合都可能继续调整。
- 我现在想验证的不是“能不能再给 Agent 多装一些工具”,而是:
- Agent 的能力能不能像软件包一样被发现、生成、评估、组合、升级和回滚?
- 如果答案是肯定的,那么 Agent Harness 上面可能确实还需要一个发行版层。
项目地址:
[https://github.com/amplifthq/oh-my-dsh](https://github.com/amplifthq/oh-my-dsh)
在 DeepSeek Harness 社区的介绍:
[https://github.com/deepseek-ai/deepseek-harness/discussions/3113](https://github.com/deepseek-ai/deepseek-harness/discussions/3113)
欢迎拍砖,尤其想听听大家对下面几个问题的看法:
1. Agent Harness 是否真的需要“发行版”这一层?
2. Skill 和 Plugin 的边界应该怎么划分?
3. 自进化系统里,哪些动作可以自动执行,哪些必须保留人工批准?
4. Eval 怎样设计,才能避免最后退化成“模型自己评价自己”?
---
原文链接:[点击查看](https://www.v2ex.com/t/1235404)
评论
暂无评论。