一、Python SDK 简介
DeepSeek Harness 除 Web UI、命令行 CLI 之外,还提供 Python SDK,允许开发者在 Python 代码中直接创建、运行 Agent 任务,将 Harness 的智能体能力嵌入到自己的自动化脚本、数据分析工具、后端服务中。
Python SDK 本质是对 Harness 内核的远程调用封装,不是独立运行的大模型库。它需要一个正在运行的 Harness 服务实例(可以是本地 dsh web、桌面版启动的后台服务),SDK 通过 HTTP 接口和 Harness 服务通信,复用 Harness 原有的插件、沙箱、工作区、轨迹日志、Profile 运行模式等全部能力。
核心要点:
- Python SDK 只负责发起任务、读取执行结果、获取轨迹;Agent 的工具调度、沙箱执行、模型调用依然由 Harness 服务完成。
- 支持四种 Profile(标准、PTC、极简、创造模式),代码内可自由指定。
- 会话、轨迹、工作区隔离规则和 Web UI 完全一致。
二、环境准备
1. 前提条件
- 已经安装并成功启动 DeepSeek Harness 服务(
dsh web或桌面版,默认地址http://127.0.0.1:3080) - Harness 服务已经提前配置好模型 API Key、模型提供商
- Python 环境:推荐 Python 3.10+
2. 安装 SDK 包
pip install @deepseek/harness-sdk
如果包名有变动,以官方文档为准。
三、基础示例:简单任务调用
使用标准模式,指定工作区,提交任务并等待结果。
from harness_sdk import HarnessClient# 连接本地正在运行的 Harness 服务
client = HarnessClient(base_url="http://127.0.0.1:3080") # 创建会话,指定 profile 和工作区目录
session = client.create_session(
profile="standard",
workspace="/path/to/your/workspace"
) # 提交任务指令
task = session.run_task("列出当前目录所有 Markdown 文件,并统计每个文件行数") # 等待任务执行完成
result = task.wait() # 输出最终结果
print("Agent 输出结果:")
print(result.output)# 获取完整轨迹日志(用于调试)
trajectory = session.get_trajectory()
print("完整事件轨迹:", trajectory)
四、切换 Profile(运行模式)
只需要修改 profile 参数,即可切换四种预设模式。
# PTC 模式 session = client.create_session(profile="ptc", workspace="/path/to/workspace")# 极简基准模式
session = client.create_session(profile="minimal", workspace="/path/to/workspace")# 创造模式
session = client.create_session(profile="creative", workspace="/path/to/workspace")
五、流式读取任务输出
长任务适合流式回调,实时获取 Agent 输出和工具调用事件:
from harness_sdk import HarnessClientclient = HarnessClient(base_url="http://127.0.0.1:3080")
session = client.create_session(profile="standard", workspace="/path/to/workspace") def on_event(event):
print(f"事件类型: {event.type}, 内容: {event.payload}")task = session.run_task(
"读取项目 README.md,总结项目架构",
stream_callback=on_event
)
task.wait()
六、会话 Fork(分叉调试)
和 Web UI 的 Fork 功能一致,可以基于历史会话的某个节点新建分支任务,做A/B测试:
# 在已有会话的指定事件节点分叉
fork_session = client.fork_session(
session_id=session.id,
event_index=10
)
new_task = fork_session.run_task("换一种思路重新完成任务")
七、获取轨迹数据用于实验/评测
Python SDK 可以批量导出完整轨迹,非常适合 Agent 学术实验、自动化评测:
trajectory = session.get_trajectory()# 导出为 json,用于后续分析
import json
with open("trajectory_result.json", "w", encoding="utf-8") as f:
json.dump(trajectory, f, ensure_ascii=False, indent=2)
八、远程服务器使用
Harness 服务部署在远程服务器时,修改 base_url,注意防火墙开放端口:
client = HarnessClient(base_url="http://your-server-ip:3080")
⚠️ 安全提醒:公网暴露 Harness 端口存在风险,建议增加鉴权、VPN 或者内网访问。
九、常见参数说明
base_url:Harness 服务地址profile:指定运行模式workspace:工作目录,Agent 文件操作被限制在此目录timeout:任务超时时间stream_callback:流式事件回调函数
十、常见问题
- 连接失败,无法连接到 127.0.0.1:3080
Harness 服务没有启动;端口被占用;确认 Web UI 浏览器可以正常打开。 - 模型调用报错
SDK 不负责管理 API Key,模型配置需要在 Harness WebUI/配置文件提前配置好,SDK 直接复用 Harness 的模型配置。 - 文件操作无权限
检查传入的 workspace 路径是否存在,Harness 沙箱会拦截工作目录以外的文件访问。 - 长时间任务中断
调大任务超时参数,或者使用流式回调持续监听事件。
十一、适用场景
- 自动化批量评测 Agent 任务,批量跑基准测试;
- 在Python项目中嵌入智能体能力,如代码批量处理、文档分析;
- 自动采集、导出轨迹数据,用于实验分析;
- 结合CI流水线自动执行项目检查、代码重构任务。
0 条笔记