Java基础、中级、高级、架构面试资料

Agent 到底是什么?看看 DSH、Pi、OpenCode 的解答

业余杂谈 herman 9浏览
公告:“业余草”微信公众号 AI 中转站提供免费体验,点击链接 https://unity2.ai/register?ref=3XTnndN2 进行访问,支持 Claude、ChatGPT、Gemini 等最新模型!关注业余草微信公众号,添加作者微信:xttblog2!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

2026 年的余额已经不足,剩余 3 月不到了,不知道年初立下 flag 的你,完成的如何了。

我们说时间催我们老,现在是 AI 也在催我们学习与进步或淘汰我们,毕竟它变化的太快了。AI 编程包括 Agent 已经走过了“对话补全”阶段,进入到了“自主执行”阶段。它不再只是给我们一段代码,而是能读取项目、编辑文件、运行命令、执行多步任务。

但是,Agent 到底是什么?开源阵营给出了三种不同答案,OpenCode、Pi、DSH 等等,不同的产品它们有不同的实现,线路与目标也可能不一致;所以,Agent 到底是什么?它们也在探索并试图找到答案。而它们之间的区别与不同也在于它们对“Agent 到底是什么”的回答。

Agent 到底是什么?

在 AI 时代,Agent(智能体) 是指能够自主感知环境、做出决策并采取行动以完成特定目标的 AI 系统。

所以,简单来说,Agent 就是一个 AI 系统。

但这个 AI 系统是不是又太笼统了?所以,我建议可以把它理解为“Agent 是一个能自己干活的 AI”,而不只是你问一句它答一句的聊天机器人。

Agent 的核心特征

因此,综合来看,一个典型的 Agent 通常具备以下这几个能力。

  1. 自主性:给定目标后,能自己规划步骤,不需要人一步步指挥。
  2. 感知与记忆:能读取环境信息(如网页、文件、数据库),并记住上下文和历史。
  3. 工具使用:能调用外部工具,比如搜索引擎、代码执行器、API、邮件系统等。
  4. 决策与规划:能把大目标拆成小任务,并根据结果调整下一步。
  5. 行动与反馈:执行动作后观察结果,再决定继续、重试还是换方案。

和普通聊天 AI 的区别

普通聊天 AIAgent
交互方式你问一句,它答一句你给目标,它自己跑流程
能力范围主要生成文本能调用工具、操作软件、执行任务
例子“帮我写封邮件”“帮我查完这周所有客户邮件,分类并自动回复紧急的”

下面列举几个常见的例子,供大家参考。

  • 编程 Agent:如 GitHub Copilot Workspace、Devin,能自己读代码、改 bug、跑测试。
  • 研究 Agent:给定一个问题,自动搜索、阅读、总结并生成报告。
  • 办公 Agent:自动整理日程、回复邮件、填写表格。
  • 多 Agent 系统:多个 Agent 分工协作,比如一个负责搜索、一个负责写代码、一个负责审核。

大语言模型(LLM)让 Agent 有了“大脑”,能理解自然语言、推理和生成计划。再加上工具调用(function calling)、长期记忆、浏览器/代码执行等能力,Agent 从概念变成了能实际干活的产品。

文章多张配图参见我的公众号:https://mp.weixin.qq.com/s/LydqCq5G_mANyVmoOaO3RQ。

说到能干活产品,那可就多了,WorkBuddy、Trae、Qoder 等等它们都能“干活”,只是形态不同。但万变不离其宗,总结来说:Agent = 大模型 + 记忆 + 工具 + 自主规划与执行,目标是把 AI 从“会聊天”变成“能办事”。

Agent 的差异在哪里?

市面上的 Agent 产品也太多了,很多人都搞不懂它们之间的差异在哪里。

其实,不同的产品对“Agent 是什么”都有不同的回答,但它们指向了同一个核心命题的不同解法,当模型能力趋同后,Agent 的差异到底在哪里?

它们给出的答案惊人地一致,差异不在模型,而在模型外面那层“壳”,也就是 Harness(运行外壳)。但具体怎么造这个壳,每家走的是完全不同的路。

下面分别以 OpenCode、Pi、DSH 为例,简单说一说。

OpenCode

OpenCode 对 Agent 的答案是,Agent 是一个“开箱即用的完整产品”。

它的回答偏向实用主义。OpenCode 的目标是做一个 Claude Code 的开源替代品,把开发者需要的能力,LSP、MCP、子代理、权限管理——全部内置好。它默认集成了 12+ 工具,你装上就能用,不需要自己搭任何东西。它的设计哲学是“全部包含”,把 Agent 当作一个面向终端用户的成熟工具来交付。

Pi

Agent 是一个“极简内核加用户意志的延伸”。

Pi 的回答带着一种克制甚至反叛的姿态。

它只给你四个工具:read、write、edit、bash。MCP、子代理、计划模式、权限弹窗,它统统没有,而且是“刻意不做”。它的作者 Mario Zechner 的核心论点是:Agent 的复杂度会变成它自己的负担,所以 Pi 只提供一个最小的、可被完全重塑的内核。你需要什么,就通过扩展系统自己造一个,甚至可以指挥 Pi 去修改 Pi 自己。它把 Agent 看作一个由用户掌控的、可编程的画布。

DSH(DeepSeek Harness)

Agent 是一个“可以被替换到骨头里的运行时平台”。

DSH 的回答最为激进。它提出了一个公式:Agent = Model + Harness。但它的独特之处在于,它把 Harness 里的一切,包括模型适配器、工具注册表、会话日志、甚至 Agent 循环本身,全部做成了可替换的插件。它的核心框架 Cordis 允许你像换插座一样换掉任意一个组件,想把本地文件系统换成远程沙箱?只需要替换文件系统的 Provider,Bash、LSP 等所有依赖它的工具会自动跟着搬过去。它把 Agent 看作一个可组合、可替换的运行时底座,是拿来“改”的,不只是拿来“用”的。

这 3 款产品各自的定位与线路如下所示。

OpenCodePiDSH (DeepSeek Harness)
一句话定位开箱即用的开源编码 Agent极简可扩展的编码 Harness“万物皆插件”的 Agent 运行时
设计哲学全部包含,零配置可用最小内核,用户构建无特权内核,一切可替换
默认能力内置 12+ 工具、LSP、MCP、计划模式、权限系统仅 read/write/edit/bash 四工具提供 Standard/Code/Minimal/Creator 四种模式
扩展方式插件 + MCP + 自定义 AgentTypeScript 扩展,可深度定制 UI 和生命周期钩子Cordis 插件系统,连 Agent Loop 都可替换
目标用户想要立刻上手干活的开发者想要完全掌控 Agent 行为的开发者想要改造 Agent 运行时本身的开发者/研究者
当前状态成熟产品,月活 1600 万开发者稳定,由社区维护开发者预览,API 可能变动,尚未安全审计

通过它们的定位可知,这三家其实在赌不同的未来。

OpenCode 赌的是“集成度”。它认为大多数开发者不想折腾 Agent 的内部机制,只想有一个好用的工具。它的护城河在于打磨体验、降低门槛。但它的内核是固定的,扩展面主要在 hooks 和 MCP 层面,你换不了它的 Agent Loop。

Pi 赌的是“可塑性”。它认为 Agent 的核心价值不在于内置了多少功能,而在于用户能在多大程度上改变它的行为。它的扩展系统暴露了 8+ 个 OpenCode 没有的钩子点,包括输入拦截、Agent 生命周期、工具执行流、会话分支等。你可以用扩展把 Pi 变成一个完全不同的 Agent。但它的代价是,你拿到的只是一个毛坯房。

DSH 赌的是“可替换性”。它走得更远——连 Agent Loop 本身都是可替换的插件。这意味你可以用 DSH 去实现一个和 Pi 或 OpenCode 完全不同的 Agent 架构。它的目标不是成为最好的 Agent,而是成为构建 Agent 的底座。一个生动的证据是:社区已经有人做了 pi2dsh,让 Pi 的扩展生态能在 DSH 上原样运行。DSH 试图把“用哪个 Agent”变成“用哪个插件组合”。

所以,Agent 的未来形态可能不是一种,而是三种并存的生态位,像 OpenCode 这样的成品工具,像 Pi 这样的可编程内核,以及像 DSH 这样的可替换运行时。它们回答“Agent 是什么”的方式不同,服务的场景也不同。

至于我们选择哪一个,取决于我们想在 Agent 的哪一层拥有控制权。

最后

所以,Agent 是什么?

它不应该再是一个虚无缥缈的科幻概念,而是由 Harness 驱动的、由无数行代码和策略规则编织而成的“AI 系统”。

对于普通开发者而言,大模型的能力已经逐渐趋于同质化(或者说变成了像水电一样的基础设施),真正的核心竞争力,正在向“谁能更好地使用 Harness 驾驭 AI”转移。

即使是最聪明的大模型,也需要去挑一把适合你的“缰绳”,才能驾驭属于你的 AI。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » Agent 到底是什么?看看 DSH、Pi、OpenCode 的解答