DeepSeek Harness Python SDK 快速上手(附完整代码)
本节对应官方文档站「Python SDK 快速上手」页面(guide/python-sdk):介绍 Web UI 之外的程序化使用方式——安装已发布的 Python SDK、运行仓库内置的 agent 组合,并在自己的程序中调用同一套 API。
前置要求(官方原文)
-
Python 3.10 或更高版本
-
Git
-
Linux x64、Linux arm64 或 macOS 14+ 的 arm64
-
DeepSeek 兼容的 API 端点与凭据
-
Agent 可以修改的隔离 workspace

安装 SDK
克隆仓库以使用其中的可运行示例,创建虚拟环境,并安装 SDK 及其同版本内置运行时:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
python -m venv .venv
. .venv/bin/activate
python -m pip install deepseek-harness-sdk
安装后的运行时不需要系统提供 Node.js。
运行仓库内置示例
先设置凭据。如果模型由 OpenAI 兼容代理(而非默认 DeepSeek 端点)提供,还需设置 DEEPSEEK_BASE_URL:
export DEEPSEEK_API_KEY=sk-your-key-here
# export DEEPSEEK_BASE_URL=http://127.0.0.1:8000/v1
# export DSH_MODEL=deepseek-v4-flash
# export DSH_SYSTEM_PROMPT='You are a helpful software engineer assistant.'
针对隔离的 workspace 和会话目录运行一个任务:
python examples/jsonrpc-agent/minimal.py \
--workspace /absolute/path/to/workspace \
--session-root /absolute/path/to/sessions \
--session-id example-001 \
"Inspect the repository and fix the failing tests."
脚本会打印 assistant 的最终回复;会话目录会收到 JSONL 日志,其中包含组装后的模型请求与工具调用。
在自己的程序中使用 SDK
仓库内置示例是以下 SDK 调用的轻量包装:
from pathlib import Path
from deepseek_harness import DeepSeekHarness
config = Path("examples/jsonrpc-agent/minimal.cordis.yml").resolve()
workspace = Path("/absolute/path/to/workspace").resolve()
sessions = Path("/absolute/path/to/sessions").resolve()
with DeepSeekHarness(
provider="deepseek-official",
model="deepseek-v4-flash",
max_tokens=49_152,
cwd=str(workspace),
session_root=str(sessions),
cordis=str(config),
) as harness:
result = harness.run(
"Inspect the repository and fix the failing tests.",
session_id="example-001",
)
print(result.final_response)
关键行为说明(官方原文要点)
-
DeepSeekHarness会延迟启动内置运行时,并在退出上下文管理器前持续复用 -
复用同一个 harness 与 session id 会保留该会话拥有的 Bash 进程(工作目录、已导出的变量与 shell 函数)
-
独立任务应使用新的 session id;只有延续同一段持久化对话时才复用原 id
内置示例组合(minimal.py 的默认配置)
|
属性 |
值 |
|---|---|
|
系统提示词 |
|
|
模型 |
|
|
面向模型的工具 |
仅持久 bash 与 str_replace_editor |
|
上下文压缩 |
已关闭 |
|
文件系统 |
裸本地后端;编辑器使用绝对路径,可访问运行时进程可见的任何路径 |



.jpg)