deepseek-harness-molt
by houyongsheng
会自己长出工具的编码 agent
The coding agent that grows its own tools
安装
dsh plugin --profile web add github:houyongsheng/deepseek-harness-moltGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
简体中文 · English
MOLT 🦀
会给自己长工具的编码 Agent。
大多数 Agent 干完你的活就忘了自己学到了什么。MOLT 不会忘。 每完成一个任务,它会复盘自己做了什么;一旦发现可复用的模式,它就给自己写一个新工具、跑测试验证,然后把它存进技能库。下次再遇到同样的模式,工具已经在那等着了。
看这个工具库是怎么复利的:
$ molt run "tidy the config files" --learn --mock
── molt run — task ─────────────────────────────────────────────
task: tidy the config files
model: mock
── final answer ────────────────────────────────────────────────
All done — I inspected the workspace and the job is complete.
── learn ───────────────────────────────────────────────────────
✔ grew a new tool: `parse_csv_line` → .molt/skills/parse_csv_line
$ molt skills list
parse_csv_line [project] Parse a CSV line of key=value pairs into a dict.
$ molt run "parse some key=value config" --mock # 下次它已经在工具列表里了
这就是全部想法:你的 AI 不只是写代码,它会"蜕皮"——脱掉旧壳、长出新工具,然后把新工具留下。
为什么用 MOLT
- 它会复利。 每一次任务都可能让下一次更便宜、更可靠。你的 Agent 越来越懂你的代码库,而不只是"总体上更聪明"。
- 它是诚实的自我进化。 一个新工具只有在通过了它自己的测试之后才会进入技能库。Agent 可以给自己长新工具,但先得证明自己真的能用。
- 它可以分享。
molt export打包你的工具库,molt install拉取别人的。Agent 千辛万苦攒下来的技能,可以变成能被 fork、star、分享的库。 - 它属于你。 MIT 协议、零追踪、跑在任意 OpenAI 兼容模型上(默认 DeepSeek)。
快速上手
# 从 PyPI 安装(发布名为 molt-agent):
pip install molt-agent
# …或直接从源码安装:
git clone https://github.com/houyongsheng/deepseek-harness-molt
cd deepseek-harness-molt
pip install -e .
export DEEPSEEK_API_KEY=sk-...
跑一个任务,让它学习:
molt run "add retry logic to the http client" --learn
没有 API key?用内置的假模型跑完全一样的流程:
molt run "tidy the config files" --learn --mock
molt evolve "polish the project" -n 5 --mock # 看着工具库一点点长大
命令
| 命令 | 作用 |
|---|---|
molt run "任务" [--learn] |
跑一个任务。--learn 会把发现的可复用工具留下。 |
molt run --stream --sandbox |
实时流式输出答案;让技能代码在子进程里跑。 |
molt evolve "目标" -n N |
循环"子任务 + 学习" N 次,看工具库累积。 |
molt learn |
对上一次的任务记录重新做一次复盘。 |
molt skills list / show <名> / remove <名> / dedup |
管理并去重技能库。 |
molt eval <名> [--cases FILE] |
用标注用例评测技能的准确率。 |
molt export [--out DIR] |
打包你的技能,方便分享。 |
molt install <路径或 git 地址> |
把别人的技能拉进你的工具库。 |
molt publish [--remote URL] |
把工具库发布到 git 注册中心(社区中心)。 |
原理
任务 ─▶ Agent 循环 ─▶ 答案
│
└──▶ 复盘:"我有没有碰到可复用的模式?"
│ 有
▼
写一个新工具(python + schema + test)
│
先跑测试 ── 不过 ── 丢弃
│ 通过
▼
存入 .molt/skills/(下次自动成为工具)
- 运行 —— Agent 循环,带
shell、read_file、write_file,再加上你长出来的每一个技能。 - 复盘 —— 第二次 LLM 调用问:这里面有可复用的吗?有就返回一个 JSON 形式的技能。
- 测试 —— 技能自带测试,在一个全新的子进程里跑;没有测试就不入库。
- 复用 —— 技能变成可调用的工具,项目级技能优先于个人技能库。
技能放在 .molt/skills/<名字>/(项目)和 ~/.molt/skills/(个人)。每个都是普通文件:skill.json(名称/描述/参数)、skill.py(def run(**kwargs))、test.py。
评测与发布
技能值不值得留,要看它准不准。molt eval 用带标注的用例给技能打分(用例放在技能旁的 cases.json,或用 --cases 指定任意文件):
molt eval parse_kv_records
# accuracy: 5/5 (100%)
满意之后,可以分享单个技能,也可以把整个工具库发布到一个 git 注册中心:
molt export --out ./my-toolbox # 普通复制 + 清单
molt publish --remote git@github.com:you/toolbox.git # 推送,并打印安装命令
# 别人:molt install git@github.com:you/toolbox.git
这就是一个生态的种子:你的 Agent 的技能是一个库,而库是用来被 fork、star、分享的。
信任与安全
- 先测试再入库。 没测试或测试不过的技能永远进不了库。
- 默认技能在进程内运行。 加
--sandbox让技能代码在子进程里跑(进程隔离)。无论哪种方式,都像对待任何你pip install的代码一样谨慎,评估后再信任。 - 普通文件,没有锁定。 你的工具库就是几个目录,删掉、分享、搬走都随意。
路线图
- 技能去重/合并——
molt skills dedup清除被遮蔽的副本、标记相同代码 - 技能评测——
molt eval用cases.json量化准确率 - 注册中心发布——
molt publish把工具库推送到 git 注册中心 - 流式 + 更丰富工具 + 沙箱——
--stream、list_dir/search、--sandbox - 每次提交前自动跑技能评测
- 可搜索的注册中心(
molt search)——找到别人发布的技能
与 Codex / Claude 生态的结合
MOLT 长的工具就是纯 Python——所以它们天然能"出门"。两个方向:
MOLT → Claude Code / Codex。 把工具库导出成对方能直接用的格式:
molt export --format claude --out .claude # → .claude/skills/<名>/SKILL.md
molt export --format codex --out . # → AGENTS.md 可复用流程块
把 .claude/ 放进项目,Claude Code 就能用这些技能;把 AGENTS.md 块追加进
Codex 的 AGENTS.md,Codex 也能照着重实现。现成模板在
examples/integrations/。
Claude Code / Codex → MOLT。 用一个单文件技能把"造工具"的活委托回 MOLT:
examples/integrations/claude/molt-skill.md 告诉 Claude Code——一旦发现可复
用的模式,就跑 molt run "<任务>" --learn;长出来的工具大家都能用。
灵感来源
MOLT 的核心主张——让 Agent 自己写、自己测、自己留下工具——正是
DeepSeek Harness(dsh)的灵魂:
它的自指工具集让模型能检查、挂载自己运行时里的插件。MOLT 是对这个想法的
轻量、独立实现:一个可 pip install 的包、跑在任意 OpenAI 兼容模型上、
不需要学任何框架。想要"一切皆插件"的完整平台?去 dsh。想要一个下午就能
读完的轻量版?留在这里。
License
MIT —— 去吧,造一个会自己长工具的东西。
原始 README: https://github.com/houyongsheng/deepseek-harness-molt/blob/master/README.zh.md ↗
同类插件
查看全部 →
deepseek-harness
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

dsh-plugin
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。

dsh-tongflow
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。

helloagents
AI 编码 CLI 的工作流层:技能、项目知识、交付检查、更安全的配置写入与可恢复执行

dsh-ai-novel-writer
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。

rea
用 agent 逆向任何东西:从应用行为到原生二进制