
9 月的 AI Agent 排行出来了Hermes 拿下第一Claude Code 和 Codex 也挤进前十。这份榜单不是模型跑分榜而是社区热度、安装量、项目增速和使用口碑的综合排行。我翻完榜单最大的感受是Agent 这个赛道已经从年初的“概念期”进入到“工具落地期”了。大家不再纠结什么叫 Agent而是在比较哪个 Agent 好装、好用、好接入自己的模型。这篇就从这份榜单出发聊聊背后的几件事Hermes 凭什么登顶、Agent 和 LLM 到底有什么区别、怎么从零搭一个能跑的 Agent以及 Claude Code、Codex、Hermes 安装使用时的那些坑。不管你是刚接触 Agent 的新手还是已经在配置工具的老手应该都能找到能直接上手的部分。1. 榜单背后Agent 热度在往哪边走1.1 这类榜单到底在统计什么很多人看到“AI Agent 排行”第一反应是“哪个模型最聪明”其实完全不是一回事。这类榜单统计的通常是 GitHub 上的 star 增速、工具的下载安装量、社区讨论的密度、教程和第三方集成数量以及真实用户的使用反馈。换句话说比的不是“谁更智能”而是“谁被更多人真正装起来用上了”。这也解释了为什么榜单结果常常和“模型评测排行榜”差异很大。一个模型可能跑分很漂亮但如果它的 Agent 框架不好装、工具调用不稳定、文档稀烂那它在 Agent 榜单上就很难出头。反过来一个框架如果开箱即用、能自由切换模型、社区样例多哪怕模型本身不是顶尖它的 Agent 项目也会涨得飞快。9 月这份榜单一出来基本就是在宣告大家现在只关心能不能落地。1.2 登顶的 Hermes赢在哪Hermes 这个名字在 AI 圈其实出现过多次容易混淆一个是很出名的开源模型系列另一个是智能体框架项目。9 月登顶的这份榜单里排第一的 Hermes是作为一个 Agent 项目被统计的。它的核心打法很明确做一个模型无关的 Agent 运行时把“模型调用、工具注册、上下文管理”全部抽象好你只需要往里填一个模型接口、声明几个工具剩下的规划循环和结果解析它来兜底。这个定位踩中了当下很大的痛点。很多人手里有 DeepSeek 这类开源模型的 API key但不想被某个厂商的 Agent 工具绑死也不想从零写工具调用逻辑。Hermes 的解法是让 Agent 框架本身和模型解耦你今天可以接 DeepSeek明天可以换别的 OpenAI 兼容接口配置改一行就行。这也是为什么热词里“deepseek hermes”搜索量那么大——大家想找的其实是一套“用开源模型跑 Agent”的现成方案而 Hermes 正好把这个门槛压到了最低。再加上 Hermes Desktop 这类桌面版把配置过程图形化之后连命令行不熟的人也能在自己电脑上把 Agent 跑起来。安装量一上来社区样例和教程跟着变多榜单冲第一也就不奇怪了。它赢在“省心”不是赢在“炫技”。1.3 Claude Code、Codex 进前十意味着什么Claude Code 和 Codex 进前十我认为是另一个非常重要的信号。它们都是官方出品的终端编程 Agent走的是“深度绑定自家模型 极致代码库理解”的路线。这两者能挤进前十说明 AI 编程这件事已经从“网页里聊天生成代码”进化到“在终端里让 Agent 直接读写你的代码库”了。过去大家用 AI 写代码是把代码片段复制到对话框里问。现在 Claude Code 和 Codex 这类工具能自己看整个项目结构、自己定位相关文件、自己改代码再跑测试整个过程你只需要在旁边下指令。这种体验一旦用上基本回不去。进前十本质上是市场在用脚投票终端 Agent 已经成了程序员日常工具箱里的常驻成员。2. 先分清概念Agent、LLM 和 AI 模型别再混着聊2.1 一句话区分模型是大脑Agent 是会干活的人我经常被问到“Agent、LLM、AI 模型到底有什么区别”这个问题不搞清楚后面的安装配置全是糊的。最简单的类比是这样大模型是一个特别聪明、但只会坐在那里说话的人你问它什么它都能答但它没有手不能帮你查文件、不能执行命令、不能改代码。Agent 是给这个聪明人配上手、眼睛和记事本之后真正能去办公室替你干活的那个完整角色。如果用表格来看会更直接概念本质例子能做什么LLM / 大模型参数化的文本生成模型DeepSeek、GPT、Claude理解问题、生成回答、推理、总结AI Agent围绕模型构建的自主执行系统Hermes、Claude Code、Codex拆解目标、调用工具、操作文件、运行命令、反复试错AI 模型广义所有用于感知和决策的模型图像分类模型、语音识别模型、多模态模型处理单一类型的输入输出任务严格来说大模型是 Agent 内部的“大脑组件”Agent 是大脑加上工具、记忆、规划调度这些外围结构组成的完整系统。没有模型Agent 没有智力没有工具和规划模型永远只能“动嘴”不能“动手”。2.2 DeepSeek 属于哪一类很多人搜“deepseek 是 agent 还是模型”答案是明确的DeepSeek 是一类大语言模型也就是“大脑”不是 Agent。你可以直接和 DeepSeek 对话它写得一手好代码、答得了一堆问题但它不会主动去遍历你的文件目录也不会自动执行命令行。但注意模型不是 Agent不代表模型不能变成 Agent。社区里常说的“deepseek hermes”热词准确理解应该是把 DeepSeek 模型作为推理引擎接入 Hermes 这个 Agent 框架里组成一套完整可用的智能体。模型负责思考Hermes 负责执行动作两边一拼才算是“会干活的 Agent”。这也是现在很主流的玩法模型可以选开源的、便宜的框架用通用的、不绑厂商的。2.3 Agent 的“思考-行动-观察”循环Agent 能干活靠的是一套循环机制学术上常叫 ReActReason Act翻译成大白话就是“思考一下、动一下手、看一眼结果、再思考”。整个循环长这样第一步Agent 拿到你的目标比如“帮我统计这个项目里所有测试文件的数量”。第二步模型生成一个计划决定先看目录结构。第三步框架调用目录遍历工具拿到文件列表。第四步把列表结果塞回对话里让模型继续判断哪些是测试文件需要什么过滤条件。第五步模型再次输出操作指令框架继续执行。最后模型认为信息足够了直接给你最终答案。这个循环能不能跑通关键在“模型能不能生成结构化工具调用指令”和“框架能不能解析执行这些指令”。现在主流实现方式是 function calling也就是模型在需要工具时不是输出普通文本而是输出一个带函数名和参数的 JSON 结构框架收到这个结构后去调用对应函数再把返回值交给模型。理解了这条链路后面看 Hermes、Claude Code、Codex 的工作方式就会非常顺。3. 从 0 到 1 搭建 AI Agent一个最小练手项目3.1 选型先跑通成品再谈自己搭新手最容易犯的错就是一上来就想着自己写 Agent 框架。我的建议非常直接先把别人做好的成品跑通再拆开看内部结构最后才考虑自己搭。选型上给你一个参照方案适合谁特点Hermes想自由切换模型、喜欢折腾开源的人模型无关配置灵活社区样例多Claude Code深度使用 Claude 模型、注重代码库理解的人官方维护上下文感知强适合跨文件重构CodexOpenAI 生态用户、想要经典 CLI 交互的人官方 CLI登录流程成熟也能换第三方模型自己手写循环学习目的、想彻底搞懂原理的人代码量不大但工程化成本高只建议练手用如果是第一次接触我比较推荐直接选 Hermes 先跑通一个任务因为它的自由度最高你后面接 DeepSeek 还是接别的模型都方便。跑通之后再去试 Claude Code 和 Codex对比一下不同工具在“读代码”“写代码”“跑测试”上的手感差异这样你对 Agent 的能力边界会有立体认识。3.2 手写一个最小 Agent 核心循环如果你确实想把原理吃透我建议自己手写一次最小循环代码量控制在几十行左右。下面这个示例就是 Agent 最核心的骨架模型决策、工具执行、结果反馈。import json # 1. 先定义两个极简工具 def add(a, b): return a b def get_weather(city): return f{city} 今天晴转多云气温24℃ TOOLS { add: add, get_weather: get_weather, } # 2. 这个函数代表“调用大模型”你自己接实际 API def llm_call(messages): # 正常情况下这里是请求 DeepSeek/GPT/Claude 的代码 # 返回结构里带 tool_calls 字段表示模型想调用工具 raise NotImplementedError(请替换为真实模型调用) # 3. Agent 主循环 def run_agent(user_goal, max_steps5): messages [ {role: system, content: 你是一个 Agent工具只能使用定义的函数。}, {role: user, content: user_goal}, ] for step in range(max_steps): resp llm_call(messages) msg resp[message] messages.append(msg) # 如果模型要调工具 if msg.get(tool_calls): for tc in msg[tool_calls]: fn_name tc[function][name] args json.loads(tc[function][arguments]) result TOOLS[fn_name](**args) messages.append({ role: tool, tool_call_id: tc[id], content: str(result), }) else: # 模型没要调工具说明它准备给出最终答案 return msg[content] return 超过最大步数任务未完成 print(run_agent(帮我计算 12 加 27))这段代码麻雀虽小五脏俱全。你仔细看它已经具备 Agent 的全部关键概念系统提示词定义了行为边界模型输出被解析成工具调用指令工具执行结果被当作新的消息喂回模型然后循环往复直到模型认为任务结束。后面所有工程化的东西比如多工具管理、权限控制、上下文压缩、并发调度都是在这个循环外面加壳核心逻辑没有变化。实际替换 llm_call 时只要用 OpenAI 兼容的 SDK 就能快速接上很多国产模型也都支持这个协议。3.3 把 DeepSeek 这类开源模型接进你的 Agent接模型是玩 Agent 时绕不开的一步也是搜索量最高的关键词之一。现在多数开源模型都提供 OpenAI 兼容接口这意味着你用同一个 SDK 就能在不同模型之间横跳。以 DeepSeek 为例接法非常简单from openai import OpenAI client OpenAI( api_keysk-填入你的key, base_urlhttps://api.deepseek.com, ) def llm_call(messages): resp client.chat.completions.create( modeldeepseek-chat, messagesmessages, # 关键允许模型返回工具调用指令 tools[{ type: function, function: { name: add, description: 计算两个数字的和, parameters: { type: object, properties: { a: {type: number}, b: {type: number}, } } } }], tool_choiceauto, ) return {message: resp.choices[0].message.model_dump()}把这段代码替换到前面骨架的 llm_call 里一个能调用工具的 Agent 就跑起来了。整个接入过程没有黑魔法核心就是三点基础地址切到模型厂商的 OpenAI 兼容端点模型名改成对方支持的型号tools 参数里声明好可用函数。我实测下来模型切换最常出问题的不是 key而是模型名写错和 tools 格式不规范这两个点你注意一下能省很多时间。4. 三个主力工具逐个上手Hermes、Claude Code、Codex4.1 Hermes 安装部署与桌面版Hermes 这类开源框架的安装流程比较统一克隆项目、装依赖、初始化配置、填模型接口、启动。以 Node 版本为例典型流程是这样# 从官方仓库拉取项目 git clone hermes仓库地址 cd hermes # 安装依赖 npm install # 初始化配置文件 npm run setup初始化过程会问你几个问题用哪个模型供应商、API key 填什么、要不要启用本地工具。答完就会生成一个配置文件核心内容大概长这样{ provider: deepseek, model: deepseek-chat, api_key_env: DEEPSEEK_API_KEY, tools: [file_read, file_write, shell] }注意这里的api_key_env它不会把密钥直接写进配置而是让框架从环境变量里读取这个习惯很好能避免密钥泄露。如果你用的是 Hermes Desktop图形界面里基本就是把这些字段做成表单填完点保存就能用。设置完成后在终端里启动hermes run 帮我统计这个仓库里所有 TODO 标记跑完你会看到它先输出工具调用日志再给出最终结论。第一次完整跑通一个任务后你对 Agent 的工作方式就会有体感了。4.2 Claude Code安装、VSCode 集成、Ubuntu 注意事项Claude Code 是 Anthropic 官方的终端 Agent安装门槛很低一条命令就能完成npm install -g anthropic-ai/claude-code安装完在项目目录里执行claude它会自动读取当前代码库的上下文。你可以直接说“给这个函数补上异常处理再把相关测试改了”它会自己定位到对应文件、修改代码、运行测试。我个人的使用经验是它的强项在跨文件重构和解释老代码特别是面对陌生项目时直接让它输出整个模块的架构说明效率比人肉翻代码高很多。在 VSCode 里用 Claude Code最简单的方式是直接在集成终端里启动。终端面板就是项目根目录执行claude后编辑器上方的代码会实时高亮跳转你能看到它正在修改哪个文件。如果你更习惯图形界面还可以装官方扩展把对话面板嵌到侧边栏体验和纯终端不太一样但核心能力一样。Ubuntu 上安装时最容易踩的坑是 Node 版本太旧。建议先执行node -v确认版本尽量用 LTS 或更新的版本。如果装完提示找不到命令多半是 npm 的全局 bin 目录没加进 PATH执行export PATH$(npm prefix -g)/bin:$PATH就能临时解决再把它写进~/.bashrc一劳永逸。4.3 CodexCLI 安装、登录以及接入 DeepSeek 的玩法Codex 是 OpenAI 官方推出的编程 Agent安装也走 npmnpm install -g openai/codex # 验证安装 codex --version登录方式比较灵活。你可以执行codex login走浏览器授权流程也可以直接设置环境变量OPENAI_API_KEY然后让 CLI 直接读取。日常使用最常用的命令是codex exec 给这个项目加上 README 文档它会进入任务处理模式边看代码边输出计划边执行。Codex 接入 DeepSeek 的玩法社区里很火。原理不复杂Codex 本身支持配置模型供应商你只要把 base URL 指向 DeepSeek 的 OpenAI 兼容接口再把模型名改成deepseek-chat就行。配置片段长这样{ model: deepseek-chat, model_provider: { name: deepseek, base_url: https://api.deepseek.com, env_key: DEEPSEEK_API_KEY } }改完配置后重启 Codex你会发现同样的终端 Agent 体验底层模型换成了性价比更高的开源模型。这种“官方 CLI 套开源模型”的组合好处是你吃到了成熟的终端交互体验成本又比官方模型低。实际切换时注意一件事如果之前有挂着的旧会话建议直接新开一个避免模型信息混乱。4.4 给 Agent 加一个自定义 Skill不管是 Hermes 还是其他框架Agent 的能力扩展都靠 skill也就是你自定义的工具包。很多搜索“agent skill 开发指导”的朋友其实就是想把内部脚本变成 Agent 可调用的能力。一个 skill 通常用 YAML 声明里面描述清楚工具名称、用途、参数格式和执行入口。看个例子name: release_note_generator description: 根据 git log 生成发布说明 inputs: from_tag: type: string description: 起始版本标签 to_tag: type: string description: 结束版本标签 handler: scripts/gen_release_note.py把这样的文件放进框架的 skills 目录Agent 在遇到“生成 1.2.0 到 1.3.0 的发布说明”这类请求时就会自动调用这个 skill。开发 skill 最需要注意的是 description 要写清楚工具在什么场景用、各参数是什么意思因为模型不是靠猜来选工具而是靠读这些描述来做判断。描述写得模糊模型就会传错参数这属于经验之谈。5. 报错排查实录新手最容易踩的坑5.1 “cc switch local proxy failed while handling codex endpoint /responses” 怎么破这个报错近期问的人特别多光看关键词让人觉得玄乎实际上是终端 Agent 的老毛病。先说结论报错里的 local proxy 不是你想的那种网络工具而是 Codex 这类 CLI 自带的一个本地转发进程。它在启动时会监听本机的一个端口负责把终端里的指令转发给远端模型接口再把模型返回的流式响应接回来。很多终端工具都这么设计本质是软件内部的通信组件不涉及额外的网络配置。报错后半段codex endpoint /responses指的是远端接口路径处理失败。常见原因有四个本地端口被占用。比如你开了多个 Codex 会话旧进程没退干净。切换模型供应商后旧的本地转发进程还带着旧配置。API key 失效或登录过期远端接口直接拒绝请求转发进程把异常抛回终端。配置文件里的 base_url 或模型名写错请求打到了错误的地址。排查步骤按顺序来多数情况几分钟能解决# 1. 先杀残留进程 pkill -f codex # 2. 看端口是否还被占用 lsof -i :端口号 # 3. 重新登录 codex logout codex login # 4. 检查配置文件 codex config show如果是在切换 DeepSeek 或其他模型之后出现的报错重点检查配置文件里的base_url和model并且强制开一个新会话。这条报错里的provi...多半是 provider 相关信息的截断继续往 provider 名字和接口地址方向查就行。5.2 模型接入常见问题速查表把这段集中整理成表格方便你直接对照排查现象可能原因解决办法401 UnauthorizedAPI key 没填、填错、环境变量没生效检查环境变量名称和值必要时重新 exportModel not found模型名写错或当前供应商不支持该模型去供应商文档确认官方模型名Connection refused本地服务进程没起来或端口被占用杀掉残留进程重启 CLI响应截断上下文长度不够或 max_tokens 太小调大 max_tokens精简上下文工具一直不被调用工具的 description 写得太模糊或 tools 参数没传重写工具描述明确适用场景切换模型后行为异常旧会话仍缓存着旧模型信息新开会话清缓存目录这里面“工具一直不被调用”是我见过最多的问题。模型不是不聪明而是它判断不出现有哪些工具可用、什么时候该用。你把 tools 参数传上去再检查工具 description 是不是够清楚这个坑就去了大半。5.3 Agent 与 PLC 编程垂直场景里的谨慎与机会这一轮 Agent 热的影响范围早就超出了互联网行业连工业自动化领域也在尝试用它辅助 PLC 编程。我接触到的实践是用 Agent 生成结构化文本语言的代码框架、补注释、写测试用例甚至根据设备型号快速搭建项目模板。这对工程师来说确实能省不少重复劳动。但这里必须泼一盆冷水。PLC 程序最终是要下装到生产设备上运行的和网页代码完全不是一回事。Agent 生成的代码如果理解错了传感器点位、设错了定时器参数后果可能直接反应在设备动作上。所以工业场景里用 Agent正确姿势是把它当“提效助手”而不是“自动程序员”。所有 Agent 生成的代码必须过人工审查最好再用仿真环境跑一轮验证确认无误后才能下装。工具越快责任越大这个原则放之四海而皆准。6. 这个月折腾下来的一点实在体会榜单再热闹落到自己电脑上还是那台终端最诚实。我自己的状态是 Hermes 跑日常杂活Claude Code 处理重构类任务Codex 偶尔切到 DeepSeek 模型当省钱方案。三个工具轮着用下来最大的感受有两条。第一Agent 的上限取决于你给它配了多少可靠的工具而不是模型有多聪明。就算模型再强没有文件工具、没有执行工具、没有明确的 skill 描述它也只能干瞪眼。所以与其盯着排行榜换框架不如花时间把你常用的脚本做成 skill 喂给它。第二遇到问题先开日志别急着换框架。80% 的安装和运行问题日志里都会给出明确线索哪怕只是端口被占这种小事日志也会清清楚楚写出来。很多人卡住只是因为没看日志就凭感觉去乱改配置。最后再分享一个我觉得最实用的操作别一上来就跑大项目。先给自己找个十分钟内能完成的小任务比如批量重命名文件、统计项目行数、生成测试用例用任意一个工具把它跑通。把第一个小任务跑通比收藏几十篇教程都管用。Agent 这东西只有真正在命令行里看它一步一步调用工具、输出结果你对它的理解才会从“概念”变成“手感”。