docs: update README and fix micromark duplicate types
- Document the Python/SOP setup in README.md and README.zh.md
- Pin micromark-util-types to 2.0.3 so tsc does not see two structurally incompatible type copies and build:lib:host passes
- Mark scripts/check-vendor-manifest.sh executable so the pre-commit hook can run it
Co-Authored-By: Claude Code noreply@anthropic.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
DeepSeek Harness
English | 中文
DeepSeek Harness(
dsh)是由 DeepSeek AI 开发的开源 agent harness(智能体框架)。它构建于一切皆插件的架构之上,由 Cordis 驱动,其设计参见论文 A Programming Paradigm for Spatiotemporal Composability。
文档:https://deepseek-harness.github.io/deepseek-harness/
开发者预览
DeepSeek Harness 处于 开发者预览 阶段,正在快速迭代。未来将出现破坏兼容性的变更。
运行本项目前,请阅读安全说明。
运行
通过
npm运行安装
Node.js,然后运行:该命令默认会在
http://127.0.0.1:3080启动 Web UI,本机启动时还会用默认浏览器打开页面。通过 SSH 启动时只打印宿主机 URL,因为本地转发地址由 SSH 客户端或编辑器持有。传入--no-open可仅运行服务器而不打开浏览器。详见 Web UI 指南。从源码运行
如需从仓库源码运行:
(deepseek设置可问一下大模型,可能要更新/home/ubuntu-dxg/.dsh-aiagent/profiles/web/cordis.patch.yml )
pnpm run build会准备仓库产物。pnpm dsh web会直接使用这些已构建产物,不会重新构建。需要 Node.js
^22.19.0 || >=24.0.0,以及仓库声明的 pnpm 版本。本项目:Python / SOP 工作流
上面的三条命令仍是本仓库标准的 TypeScript / Web 安装与启动路径。
pnpm install只安装 Node 依赖;pnpm run build会构建 Host、Client 和 Web 产物(spe-*、python-component-host等实验包也在构建图中);pnpm dsh web启动 Web UI。它们不会安装 Python 依赖,也不会修改 preset 中写死的本机路径。要使用SOP/SOP Dynamic,还需要完成下面几步。1. Python 与 Chromium
默认 preset 使用
/home/ubuntu-dxg/miniconda3/envs/aiagent/bin/python3。改成你的 Conda 或 venv 解释器,并安装 Python 依赖和 Chromium:然后修改 preset 中的两个字段:
python::改成上面的解释器绝对路径;cwd::改成当前仓库的绝对路径(不是py/子目录)。需要改的文件:
packages/bundle/web-app/presets/sop-dynamic.patch.yml(5 个 host)、packages/bundle/web-app/presets/sop.patch.yml(2 个 host);packages/bundle/web-app/presets/test.patch.yml也有 1 个 host,运行测试时会用到。YAML 中必须写绝对路径,不能写$PY。2. 模型配置
在仓库根创建
.env(已被.gitignore忽略):DEEPSEEK_API_KEY供默认 DeepSeek 路由和SOP Dynamic的隐藏 planner 使用;换用其他 provider 时,在 Web UI 的 设置 → 模型 中配置,planner 会继承 agent 路由。CALCULATOR_LLM_*只供计算器的 Python 抽取节点;没有 key 时,计算器退化为裸表达式和规则抽取。.env>$DSH_HOME/.env”加载;不要把真实 key 提交到仓库。3. 数据目录
默认数据目录是
~/.dsh。要隔离本项目的会话、凭据和 SPE 记忆,启动时设置DSH_HOME为任意绝对目录(不要求叫.dsh):切换
DSH_HOME后请新建会话;不同目录的记忆和凭据不要混用。4. Preset 与冒烟测试
新建会话后选择:
SOP:关键词规划,一个 turn 只执行一个 workflow,适合run_workflow/web_check的确定性验证;SOP Dynamic:隐藏 LLM planner,一个 turn 可执行 0~N 个 workflow,支持计算、图片缩放、网络检查、飞书日程(当前实现为 Feishu,不含钉钉)和腾讯会议。先发
计算 1+2*3验证单工具;再准备一张图片,发先计算 1+2*3,再把 /tmp/demo.png 缩放到 100 像素宽验证多工具。真实创建日程/会议前,可先说“先 dry run,不要真的创建”。5. 业务工具登录
飞书日程和腾讯会议首次使用需要人工登录一次(登录态保存在
~/.playwright_auth/,失效后重跑):首次
--login会打开有头浏览器,需要可用的桌面会话;web_check只需要上一步安装的 Chromium,不需要登录。python-component-host运行的是受信任的本地 Python 代码,不是安全沙箱;只挂载你信任的组件。详细用法、参数、排障和扩展方式见 使用文档。只改 Python 组件时不必重新
pnpm run build,重启pnpm dsh web即可;改 preset 或 TS 源码后重新构建。如果启动日志没有python-component-host: ready,先检查python、cwd、Python 依赖和 MANIFEST;PLANNER_FAILED通常是模型路由未配置。社区与支持
dsh-plugin话题,便于被发现。参与贡献
参见 CONTRIBUTING.md。
开发
请先阅读开发指南与架构文档。
pnpm run dev:web会在一个终端里完成构建、启动,并在源码修改时重建 client bundle;make help列出 Web 与 Desktop 对应的 Make target。完整表格见开发指南的「应用命令」一节。面向 agent:请遵循 AGENTS.md。
引用
许可证
MIT
第三方依赖及其许可证见 THIRD_PARTY_NOTICES.md。