最近在组内做了一个关于deepseek harness(dsh)的技术分享,虽然准备了很久,但是实际分享的时候还是会有点卡壳,感觉还是对这块的技术原理不是很熟悉,所以希望可以再对这部分好好学习一下,以此加深对AI Agent的一些思考吧。
首先,梳理一下Agent的发展历程。2022年底,GPT模型系列发布,但是当时大家还只是把它当作一个稍微智能的chatbot,当时也确实由于模型的上下文窗口比较少,模型能理解的上下文也偏小,导致模型的幻觉率居高不下,能实际解决的问题也自然很少。随着模型的不断迭代,上下文窗口也逐渐增加,Agent从传统的Prompt Engineer,到Context Engineer,再到目前的Harness Engineer,能做的事情越来越多,处理的任务也开始复杂化。如果只是把Agent 当作一个对话机器人,那么人们对它的幻觉容忍度还比较高,但是如果要把Agent投入到真实世界,服务于现实人类,比如用于医疗问诊,客服答疑等场景,那么对幻觉率的标准就相当严格。整个Agent的发展重心也从一开始的专注于模型能力迭代,逐渐发展成如今模型+工程能力双轨并行。模型能力提升固然重要,但是如何使用模型可以稳定,安全,高效地完成复杂任务,也是未来Agent的发展中一个重要的议题。Harness,就是这个议题下的一个很前沿的发展方向。

Harness,翻译成中文是“鞍具”的意思,通过harness,可以在Agent处理任务的时候,更好地发现当前出现的问题,从而纠正问题处理的方向,不至于出现偏离。DeepSeek Harness给Agent的定义是:Model+Harness,从这里可以发现,至少是在DeepSeek看来,模型和Harness是在同等地位的。dsh的精华核心有三大块:
- 一切皆插件:在dsh的设计中,Agent的一切都可以插件化,比如Model,Tool,Memory,Session等,这些都是可拔插的能力,可以通过dsh框架对这些能力自由替换组装。其核心用了cordis这个原理,cordis核心原理分为:Plugin,Context,Service,Event,可逆LifeCycle/Effect
- 事件流(Event Stream):dsh设计了一个事件流的能力,Agent处理的所有中间结果都会落到这个流里面,包括Tool Call,Message等信息,模型可见的就是这个时间流,在任务处理过程中需要的任何东西,都是基于这个时间流推导出来的。这样做的有个好处是可以对模型的处理过程可追溯,可重放。其他一些Agent产品,Agent的运行黑盒化,用户/模型都无法追溯历史的事件结果。而dsh的这种设计,则可以帮助模型更好地追溯运行上下文历史,相当于模型有了一双发现问题的眼睛。
- Seam(能力缝):通过能力缝,我们可以理解为什么可以替换整个底层实现。seam不是定义一个单独的接口,也不是能力的提供者,而是由Service Definition+Service Provider+Consumer三个部分共同组成的一项可替换的能力。这个有点类似于电脑的USB接口,Agent不需要感知它里面的实现,只要遵循这个协议,那么就可以使用它。
同时,dsh也提供了基于对应框架下的一套产品能力,按照官网的安装方式,可以在本地跑一个web端产品能力体现。分为四种使用模式:
- 标准模式:最常用的模式,类似于我们使用CC/Codex这种产品,Agent可以自由调用工具,联网检索,shell等能力完成任务。
- PTC模式:程序化调用模式,标准模式进行工具调用的时候,是LLM-Tool-Result-Tool-Result…这种的,但是这种在有一些场景是可以简化的,这种模式就是通过将一批工具调用转化为Code模式调用,减少和模型的交互。
- 极简模式:这种模式下,Agent的任务只能用模型自身的能力,无法调用外部工具处理任务。这种模式为模型评测提供了一个干净的环境,可以很好地对比不同模型自身的基础能力差异。
- 创造模式:用户可以自定义Agent的运行模式,可以理解是基于dsh开发一个子Agent,比如日常工作日常的CR助手,问题排查等,他们的流程都是固定的,可以抽成一个子Agent的能力。然后我们可以在这个子Agent的基础上和dsh进行对话,让他按照我们定义好的Agent流程进行处理。
另外一个比较有意思的就是这个轨迹的产品设计,这个可以让我们很直观看到Agent运行时中的细节,比如做了哪些工具调用,耗时多少,中间使用的Prompt是怎么样的。通过轨迹,我们可以白盒化看到Agent内部,在Agent开发这个场景非常适合调试,确保Agent按照符合预期的方向运行。

总体来看,dsh不像是一个新的Agent产品,更像是定义了一套Agent未来的发展范式,它做的更像是一个平台,目前AI Agent的发展,各家厂商都是各自为战,都有自己的一套Agent设计框架,用户更像是一个消费者,而不是一个共建者。我认为,真正好的Agent,应该是集广大群众智慧参与创造出来的。另外,Agent未来的发展也必定是走向自我进化的方向,dsh的这套范式,似乎是更符合自我迭代这条路,基于这种一切皆插件的思想,Agent可以做到不需要人工控制,就可以自行创造,自行撤销。
不过,目前社区生态还不是很完善,很多功能还处于早期阶段,未来发展走向值得进一步关注。