
9月这波AI Agent热度最让我意外的不是哪家又发了新模型而是一份“9月AI Agent排行”里排在第一名的是Hermes把Claude Code、Codex这些大厂明星都甩在身后。如果你最近在逛开源社区大概率已经刷到过这张榜单图Hermes第一Claude Code、Codex进前十评论区吵成一团有人觉得“开源项目终于扳回一局”也有人质疑“这榜单到底怎么算的”。我的看法比较朴素排名本身不重要重要的是榜单背后透出的风向——用户对AI Agent的期待已经从“演示很酷”变成了“装得上、跑得起、真能干活”。Hermes能登顶恰恰说明这一轮的竞争焦点变了不再是谁的模型参数大、谁的花活多而是谁能让一个普通开发者用最小的成本把Agent跑起来。这篇就把榜单背后的逻辑、几个主角的真实情况以及我自己从0到1搭Agent踩过的坑一次说清楚干货偏实操适合想真正上手AI Agent的朋友。1. 榜单背后的三个信号为什么第一会是一只“开源黑马”1.1 先看这份榜到底在“榜”什么网上流传的这份9月AI Agent排行不同版本统计口径不太一样有的是按话题热度、有的是按开源项目的Star增长和下载量、有的是按教程和模板的产出量综合下来给了一个加权排名。所以严格来说它不是一个官方标准但“Hermes第一、Claude Code和Codex进前十”这个结果和我们过去一个月在社区里感受到的趋势是完全一致的。我看这份榜单的时候第一反应是这哪里是模型排行榜分明是“用户真实需求排行榜”。排在前面的项目都有一个共同特征——上手门槛低到离谱而且能直接对接现有工作流。这个信号比“谁家模型又刷新了benchmark”更有参考价值。1.2 信号一本地优先路线开始反超Hermes能拿第一最核心的原因就是“本地优先”这四个字。现在很多团队对数据的敏感程度已经不允许把代码、文档、业务数据随便往云端模型里塞更别提那些要接入客户环境做私有化部署的场景。Hermes这类项目主打的就是你能在自己电脑上部署、自己掌控数据同时它还保留了对云端模型比如DeepSeek的调用能力等于“本地控制大脑、远程调用算力”两不误。这种路线在一年前还是小圈子里的极客玩法但在今年9月冲到第一名说明“数据不出本地”已经从加分项变成了刚需。尤其对于国内开发者用开源模型当底座、用本地或中立API做推理是合规和成本双重压力下最自然的选择。1.3 信号二编程Agent从“玩具”变成“效率工具”Claude Code和Codex进前十很多人觉得不稀奇毕竟是顶级AI公司的产品。但我要说的是它们俩能同时进前十标志着一个更重要的变化编程类Agent已经不再是程序员之间互相炫耀的“玩具”而是真的融进了日常开发流程。我自己过去一个月里Claude Code帮我处理了大量重构和测试代码的活Codex则是写脚本、做小工具时的第一选择。这种“终端/IDE里的结对程序员”体验和聊天机器人完全不同——它直接作用在代码库上能干完活给你看diff这种效率提升是肉眼可见的。榜单前十里有三个位置被这类编程Agent占据说明开发者正在用脚投票。1.4 信号三用户开始关心“装得上、跑得起”另一个被忽略的信号藏在热搜词里。你去翻9月的搜索记录“hermes安装”“claude code安装”“codex使用教程”“deepseek hermes桌面版”“vscode配置claude code”这些词的搜索量高得吓人。这说明什么说明大批人不是来看热闹的是想立刻上手干活的。和一年前大家追着问“AI Agent是什么”完全不一样现在的问题变成了“我到底怎么把它装到我电脑上”“怎么接DeepSeek”“怎么在VSCode里配置”。整个市场已经从“有没有”进入“怎么用”的阶段排名靠前的项目恰恰是这些疑问的答案。2. 先把概念捋清楚Agent、LLM和AI模型不是一回事2.1 三个词的关系一句话版本关于AI Agent我几乎每天都能在评论区看到同款问题“Agent和LLM有什么区别”“DeepSeek属于Agent吗”“Hermes是不是又一个模型”这里先用最简单的方式捋一遍AI模型是最大的集合。包括图像识别模型、语音合成模型、多模态模型、推荐模型等等大语言模型LLM只是其中一类。LLM是专攻自然语言理解和生成的那一类模型。拿DeepSeek来说它本质上是一个LLM提供商——既开源权重也对外提供API服务。你说“DeepSeek属于哪个”答案就是它属于LLM这个子类它本身不是一个Agent框架而是可以给Agent当“大脑”用的引擎。Agent是建立在LLM之上的完整系统。它不只会聊天还会自己规划、调用工具、观察结果、修正动作。类比成人LLM是大脑Agent是整个人手和脚就是工具调用记忆和思考循环就是它的工作方式。这份榜单里排第一的Hermes“Hermes”本身是一个Agent运行时/框架它可以用Hermes系列模型也可以接DeepSeek、Qwen这些外部LLM。所以别再把Agent和模型画等号了。2.2 Agent凭什么比单纯调用模型更“聪明”很多人第一次接触AI Agent时的困惑是我之前直接用ChatGPT、直接用DeepSeek聊天不也挺聪明的吗为什么要多一个Agent层关键在于“使用工具”。单纯的模型调用是你问我答输出文字就结束了。Agent则多了一个闭环你给它一个目标它分解成步骤遇到需要外部信息的情况它主动调用你注册好的工具查数据库、跑脚本、读写文件、请求API拿到结果后再继续思考下一步直到完成整个任务。这个“规划—执行—观察—再规划”的循环是Agent和普通AI助手的本质差异。开发里管这个叫Agent Loop能力强的Agent还能把上次任务的结论存下来形成长期记忆。市面上那些“AI自动写周报”“AI自动运维排障”的产品底层都是这个逻辑不是一次生成而是一遍遍生成、执行、纠错。3. Hermes凭什么排第一开源Agent的完整度终于到了能“直接下手”的阶段3.1 Hermes是什么、第一名的能力拆解关注开源社区的朋友应该对Hermes这套体系不陌生。它的定位是“开箱即用的本地优先Agent运行时”不是又一个套壳聊天软件而是把这个几个部分拼得很完整Desktop端提供图形界面普通用户不用敲一行命令就能配置模型和技能这是它能登顶的关键。过去开源Agent最难的就是安装配置劝退Hermes把这一步做成了可视化界面。Skill机制Agent可以加载不同的“技能包”比如代码执行、文档处理、网页抓取每个技能就是一组指令加工具脚本相当于给Agent装外挂。今年社区里已经有大量“skill开发指导”的教程上手成本已经压得很低。模型无关Hermes不强绑某个模型你在配置里填哪个模型的API它就变身成哪个模型驱动的Agent。这让DeepSeek等国产模型生态直接受益也是它搜索热度里高频出现“deepseek hermes”的原因。我实际用下来的感受是Hermes把以前需要自己写框架、自己调Tool Calling、自己做记忆管理的一堆脏活累活打包成了一个“装完就能跑”的成品。它拿第一不是偶然是“完整度”的胜利。3.2 最被低估的操作让Hermes跑在DeepSeek上在所有Hermes相关热搜里最有含金量的一条是“deepseek hermes”。为什么大家这么执着于把Hermes和DeepSeek配对三个原因DeepSeek的中文能力好、API便宜、模型权重开放适合本地二次开发。实际操作非常简单我按自己的环境给你走一遍第一步去DeepSeek开放平台申请一个API Key这个没什么门槛。第二步打开Hermes Desktop进入模型配置页。新增一个模型供应商Base URL填https://api.deepseek.com/v1有些版本要填/chat/completions结尾的地址看你用的SDK版本拿不准就填带/v1的那个模型名填deepseek-chatAPI Key填你刚申请的Key。第三步把Hermes的默认模型切到“deepseek-chat”保存后重启应用。第四步测试一句话“帮我写一个Python脚本读取当前文件夹下所有CSV文件并合并。”如果它能调用代码执行技能说明Agent链路已经通了。本质上是把“模型供应商”解耦了Hermes是Agent壳子DeepSeek是推理大脑。这个组合跑起来之后成本极低、中文表现好、数据流向可控我认为它才是“Hermes第一”真正的基本盘。如果你也想复现第一名的体验从这里入手是最快的。4. Claude Code与Codex终端派Agent为什么能挤进前十4.1 Claude Code终端里的结对程序员Claude Code可以说是“终端派Agent”的教科书。它不需要图形界面直接运行在命令行里然后以你的代码库为上下文完成读代码、改代码、跑测试、提交PR这一整条链路。安装很直接Node环境准备好之后一句命令npm install -g anthropic-ai/claude-code然后在项目目录里执行claude它会读当前仓库的代码结构。首次运行会要求配置API Key你可以用Anthropic官方Key也可以接兼容OpenAI接口的第三方中转。这里有个重要提醒国内开发者如果直接用官方Key网络和计费都是实际问题很多人选择在配置里指向DeepSeek或其他兼容API。改法是在启动前设置环境变量或者用工具切换供应商配置。在VSCode里用Claude Code我建议直接装官方扩展装完之后侧边栏多出一个面板选中代码就能让Agent修改每步改动都会有diff预览确认后才写进文件。这个“人审AI改”的模式是我认为编码Agent最靠谱的落地形态——不是全自动而是人机协作。4.2 Codex从一个命令到一个AgentCodex是OpenAI产品线里面向编码任务的新一代Agent。它的CLI版本可以和Claude Code做类似的事情读取仓库、生成方案、改代码、跑命令。但Codex更强调“自主执行”你给它一个任务它能自己开终端跑测试、看结果、修bug循环往复直到测试通过。安装方式同样是npmnpm install -g openai/codex配置方面Codex默认用OpenAI的模型但如果你在配置里把模型供应商指向DeepSeek——比如把base_url设为https://api.deepseek.com/v1模型填deepseek-chatKey换成DeepSeek的Key——它也能跑起来。很多朋友关心的“codex接入deepseek”核心就是改OPENAI_API_KEY和base_url这两项本质还是“Agent框架不变换大脑”。这里想多说一句Codex的自主执行模式很强大但也意味着风险更高。比如它可能会自作主张跑一些破坏性命令所以第一次用一定要在小仓库、有版本控制的环境里试验别一上来就扔进生产仓库。4.3 这两个工具怎么选我的取舍标准对比维度Claude CodeCodex核心场景仓库级代码重构、代码解释、提交审查自主任务闭环、自动调试、修bug安装方式npm全局安装npm全局安装运行形态命令行 VSCode扩展面板命令行 云端任务执行风格偏保守改完给你看diff偏自主自己跑命令验证接DeepSeek改环境变量兼容接口改base_url和模型名适合谁喜欢把控每一行改动的开发者愿意放手让AI自己折腾的场景我的习惯是写新功能、做重构用Claude Code因为它每次改动都经过我确认处理“脚本死活跑不通、帮我找出哪里错了”这类闭环问题时用Codex因为它自己能跑测试自己修省心很多。两者都进了前十本质上是因为它们占据了“终端/IDE里干活”这条最有粘性的赛道。5. 从0到1搭建一个能跑的最小Agent我的练手路线5.1 两条路线怎么选现成框架 vs 手写闭环很多人问“AI Agent怎么搭建”这个问题其实可以先拆成两条路路线A用Hermes这类现成Agent框架填好模型配置再加几个官方技能包你已经拥有一个能对话、能调用工具、能处理文档的Agent。优点是快缺点是内部逻辑得黑盒使用。路线B自己用代码写一个“最小Agent闭环”模型用DeepSeek的API工具就注册一个计算器和当前时间函数总共几十行代码。优点是原理全透明后面想加什么功能都能自己改。我的建议是两条都走先用路线B把Agent的工作原理吃透再回到路线A去玩Hermes的高级能力。别一上来就啃复杂框架你会被“配置地狱”劝退的。5.2 手写最小Agent实战几十行代码跑通Agent Loop我们直接写一个最小的Agent核心循环代码主要做三件事接收用户任务、让模型决定调哪个工具、执行工具并把结果回喂给模型。import json from openai import OpenAI client OpenAI( api_key你的DeepSeek_API_Key, base_urlhttps://api.deepseek.com/v1 ) # 1. 准备两个最简单的工具 def add(a: float, b: float) - float: 加法运算 return a b def get_current_time() - str: 返回当前时间字符串 from datetime import datetime return datetime.now().strftime(%Y-%m-%d %H:%M:%S) tools [ { type: function, function: { name: add, description: 计算两个数字相加的结果, parameters: { type: object, properties: { a: {type: number}, b: {type: number} }, required: [a, b] } } }, { type: function, function: { name: get_current_time, description: 获取当前日期和时间, parameters: {type: object, properties: {}} } } ] # 2. 工具分发表 tool_map { add: add, get_current_time: get_current_time } # 3. 核心循环让模型决定调用工具执行后回填结果 messages [{role: user, content: 现在几点了顺便帮我算一下 23.5 加 76 等于多少}] for _ in range(5): # 最多循环5轮防止死循环 resp client.chat.completions.create( modeldeepseek-chat, messagesmessages, toolstools, tool_choiceauto ) msg resp.choices[0].message if msg.tool_calls: messages.append(msg) for tc in msg.tool_calls: args json.loads(tc.function.arguments) result tool_map[tc.function.name](**args) messages.append({ role: tool, tool_call_id: tc.id, content: json.dumps(result, ensure_asciiFalse) }) continue # 模型不再调用工具直接输出最终回答 print(msg.content) break这个代码跑出来DeepSeek会先决定调用get_current_time和add两个工具得到结果后再组织语言回答用户。整个链路就是你搭Agent的最小骨架模型负责“思考和决策”你负责“提供工具和执行动作”。5.3 跑通之后可以再升级什么这个最小闭环跑通之后后面就都是增量工作加更多工具把文件读写、HTTP请求、数据库查询、PLC寄存器读写做工业控制端的Agent很吃这个都注册进来每个工具就是一段函数和一份JSON描述。加长期记忆用一个SQLite或JSON文件把重要的对话结论存下来下次任务开始时加载进上下文。加技能封装把一组相关工具和提示词打包成“技能包”这就是Hermes里Skill机制的思路。加人审环节在执行高风险工具如删除文件、执行Shell命令前加一个二次确认这也是生产环境Agent必须具备的安全阀。6. 跑起来之后避不开的坑我的排查记录6.1 “cc switch local proxy failed while handling codex endpoint /responses”怎么解这个报错是我在折腾Codex接入DeepSeek时遇到的搜索热度很高说明很多人都卡在这一步。英文报错翻译过来就是“在尝试处理codex endpoint的/responses请求时本地转发配置切换失败”。遇到它不用慌按照下面这个顺序排查绝大多数情况能解决。先理解它为什么会发生。Codex会把请求发到某个端点的/responses路径如果这个端点指向本地服务比如你配置了http://localhost:xxxx而本地这个端口根本没有正常监听或者请求被本机其他网络转发软件截走了就会出现这个报错。我的排查流程第一步用curl直接测试目标地址能不能通。假设你配置的Base URL是http://127.0.0.1:8080那就执行curl http://127.0.0.1:8080/v1/models如果这个命令超时或返回拒绝连接问题就出在本地服务本身。第二步查环境变量。HTTP_PROXY、HTTPS_PROXY这类变量如果配置了会直接影响请求转发路径。执行env | grep -i proxy看有没有多余设置有的话先清掉再试。第三步检查Codex的配置文件。确认base_url有没有多余的空格、模型名是否正确。这里最常见的问题是把Base URL填成了.../v1/chat/completions这样一个完整路径而Codex需要的是域名级的.../v1多写一段就会导致端点和请求路径拼接出错。第四步把本机无关的HTTP转发软件关掉。这个坑最隐蔽我折腾了一晚上最后发现是本机一个工具把localhost请求转发走了导致Codex实际连到的根本不是我自己起的服务。关掉之后问题直接消失。如果你的报错场景是“Codex跑着跑着突然报local proxy failed”多半是网络环境切换比如换了Wi-Fi、开了热点导致的本地连接中断重启Codex进程一般就能恢复。这个问题完整的排查对照表现象可能原因解决办法curl本地地址拒绝连接本地服务没启动/端口被占重启本地服务换个端口curl通但Codex报错Base URL路径多写了一段改成https://api.deepseek.com/v1报错带proxy字样本机有HTTP转发软件干扰排查并关闭无关的网络转发换网络后突然报错网络环境变化导致连接断开重启Codex进程重新握手偶尔通偶尔不通环境变量配置冲突清掉HTTP_PROXY/HTTPS_PROXY6.2 另外三个高频坑我替你们先踩了除了上面这个local proxy报错还有三个坑几乎每天都有朋友来问这里一起说掉。坑一模型根本不调用工具。症状是Agent像个普通聊天机器人你说“帮我算个加法”它直接口算出结果根本不走Tool Calling。排查方向有两个一是工具描述写得不够明确模型不知道什么时候该调它二是模型本身的Function Calling能力弱或者配置里没启用tools参数。解决办法是把每个工具的描述写清楚“只有在用户需要计算时才调用”基本能治一半的问题。坑二上下文被工具返回结果撑爆。Agent写文件、抓网页时工具返回内容动不动上千行多轮循环下来上下文直接溢满。我的做法是给所有工具的输出统一加一个截断包装超过2000字符的内容只保留开头和末尾中间提示“已省略”。坑三环境变量不生效。在Shell里设置了export OPENAI_API_KEYxxx但程序跑起来还是报401。这个坑通常是终端会话缓存导致的——在VSCode里改了终端配置必须完全重启终端不是清空命令行并且不要在.zshrc里写死多个同名变量。设置完先跑一句echo $OPENAI_API_KEY确认确实生效再启动Agent。最后一个经验分享这段时间密集折腾下来我最大的体会是AI Agent的排名也好、新框架也好都不如自己亲手跑通一个闭环学到的多。工具会一直迭代今天的第一名下个月可能就被替代但Agent的核心——模型决策加工具执行这个循环——不会变。如果你现在还没动手建议直接照我第五节的代码跑一遍最小Agent再用十分钟把Hermes装起来接上DeepSeek你的体感会比任何榜单分析都真实。等你自己亲手搭出一个能调工具的Agent再回头看这份9月排行思路会完全不一样。