技术

DeepSeek Harness 与 AgentScope Java:同为 Agent 框架,为什么选型答案不同?

从抽象层次、插件机制、生产工程能力和团队约束出发,比较 DeepSeek Harness 与 AgentScope Java 的优缺点和适用边界。

把 DeepSeek Harness(dsh)和 AgentScope Java 放在一起比较,不能只数功能。两者都处理模型、工具、会话和多智能体,但设计重心不同:前者更像可拆开重组的 Agent 运行时;后者更像面向长任务和分布式部署的企业框架。选型前要判断,自己是在改造运行时,还是在交付稳定服务。

先把比较对象放到同一层

DeepSeek 官方仓库把 dsh 定义为开源 agent harness,核心架构是 Cordis:模型适配器、工具注册、会话日志、Agent 循环和沙箱等能力由插件与 bundle 组装,Web UI 由独立 bundle 加入。启动时,profile、bundle 和 patch 按层组合配置;插件卸载时,已注册的效果可以回滚。它目前仍是 developer preview,官方明确提醒会有兼容性破坏变更。

AgentScope Java 2.0 则把自己定位为面向生产环境的 Java Agent 框架:既有较轻的 ReActAgent,也有叠加工作区、记忆、技能、子 Agent 和上下文压缩的 HarnessAgent。公平的比较应当是“DeepSeek Harness 运行时”对“AgentScope Java 的 Harness 层及其生产部署能力”。

核心差异:谁拥有运行循环

DeepSeek Harness 的优势在于“可替换的范围很大”。官方架构文档把 Agent loop、模型、工具、session log 和 sandbox 都列为 Cordis 插件,并通过事件和可回滚的注册效果连接起来。实验新的调度策略、模型适配器、会话存储或 UI 时,可以在配置层插入插件;dsh --dump-config 还能查看实际启动的插件树。

代价是,团队必须理解 Cordis 的上下文、事件域、插件生命周期和配置叠加规则。组合错误可能到运行时才暴露,升级还要面对预览版的破坏性变更。它适合愿意维护运行时的人。

AgentScope Java 的扩展点更规整。HarnessAgent 在 ReActAgent 之上通过 Middleware、Toolkit 和事件流增加能力;官方文档列出的 Agent、Reasoning、Acting、Model Call、System Prompt 等拦截阶段,适合加入审计、限流、模型 fallback 或审批策略。它牺牲一部分运行时自由度,换来 Java 类型系统、Maven 依赖管理和更容易纳入既有服务治理体系的边界。

维度 DeepSeek Harness AgentScope Java
主要抽象 可组合的 Agent 运行时 / harness Java Agent 框架 + HarnessAgent
技术栈 TypeScript / Node.js,npm 启动 JDK 17+,Maven 依赖
扩展重心 插件可覆盖模型、工具、循环、会话、沙箱、UI Middleware、Toolkit、事件、扩展模块
会话与事件 追加式 session event log,支持派生、回放等运行时能力 28 类类型化事件用于流式 UI/HITL;状态后端负责跨副本恢复
安全与部署 提供沙箱、审批等插件,但生产组合需自行验证 官方内置权限、HITL、Docker/Kubernetes 等沙箱,以及多种状态后端
开源与成熟度 MIT;官方标注 developer preview Apache-2.0;2.0 官方定位为 production-ready

DeepSeek Harness 的长处与短板

它最突出的长处是把实验变量暴露出来。追加式会话日志让模型可见内容、工具调用和 Agent 事件有统一记录,适合失败复盘、分叉实验和 harness 对照测试。模型适配器也是插件,适合自托管模型、内部网关或多模型比较。

另一个长处是启动路径短:官方提供 npx @deepseek-ai/dsh web,并有 Web UI 与 headless 运行方式,适合快速验证新循环。

短板同样来自这份自由度。预览版意味着 API、插件接口和默认 profile 可能变化;企业还要自己补齐版本锁定、回滚、监控、租户隔离和故障演练。若只是让模型调用几个业务工具,使用 dsh 可能引入不必要的运行时复杂度。

AgentScope Java 的长处与短板

AgentScope Java 的强项是把长期运行 Agent 的工程问题前置。官方 2.0 文档提供三态权限决策(允许、审批、拒绝)、实时事件流、隔离工作区、Docker/Kubernetes 或云沙箱、子 Agent 事件转发,以及 Redis、MySQL、PostgreSQL 等状态持久化和跨副本恢复。这些能力提供了可审计、可测试的标准接缝,减少从零拼装的工作量。

它还更贴近已有 Java 企业栈:JDK 17、Maven、类型化接口和响应式事件流可以接入现有服务、鉴权和发布体系。模型提供商通过独立扩展模块接入,官方示例展示了 OpenAI、Anthropic、DeepSeek、DashScope 和 Ollama 等选项。

代价是部署和学习成本更高。JVM、依赖树、状态后端和沙箱集群都需要运维;如果应用不需要多租户、审批或跨副本恢复,很多能力会变成额外负担。相比 dsh 的运行时级替换,AgentScope Java 更适合在既定抽象内扩展;彻底改写主循环或 UI 往往需要深入源码和扩展模块。

怎么选:看约束,不看功能数量

可以用下面的判断顺序缩小范围:

  1. 要研究或改造 harness 本身:优先 DeepSeek Harness。你可以替换 Agent loop、模型适配器或会话层,并利用统一日志做对照实验;但要接受预览版和自行维护的风险。
  2. 要交付 Java 企业服务:优先 AgentScope Java。尤其是长任务、人工审批、敏感工具、跨实例恢复和多租户隔离,这些需求会放大其内置工程能力的价值。
  3. 只有一个轻量原型:两者都可以。Node.js 团队通常从 dsh 开始更快;Java 团队若已经有服务骨架,直接用 agentscope-core 或 HarnessAgent 反而更省迁移成本。
  4. 最看重模型中立:两者都能接多家模型,但验证重点不同。DeepSeek Harness 的中立性来自运行时插件;AgentScope Java 的中立性来自模型扩展模块。应以目标模型的工具调用、流式输出和结构化输出实测为准,不要只看提供商列表。
  5. 需要可回放的研究记录:DeepSeek Harness 的追加式日志更贴合实验;需要业务级审计和审批闭环时,AgentScope Java 的权限与事件模型更直接。

因此,二者不是简单的替代关系。DeepSeek Harness 的价值在可组合性,AgentScope Java 的价值在可运营性。最终决策应由团队语言栈、上线责任、数据隔离要求和是否需要改写运行循环共同决定,而不是由功能数量决定。

来源与核验范围

文中易变能力均以 2026 年 8 月 26 日可访问的官方仓库或文档为准;未把社区 benchmark 或未经官方确认的兼容性结论写成确定事实。