
九月的AI Agent榜单一出来很多人都在转Hermes第一Claude Code、Codex双双进了前十。我盯着这类排行有一阵子了说实话这份榜单比普通的大模型能力榜更有参考价值因为它排的不是模型跑分而是Agent在真实任务里的表现——工具调用成功率、多步任务执行力、最终产出质量都算进去。核心关键词AI Agent正好卡在这个节点上大家已经从哪个模型聪明转向哪个Agent能干活。这里要先说清楚榜单里排第一的Hermes不是某个基座模型而是开源智能体项目Hermes Agent。它之所以能压过Claude Code和Codex靠的不是单一模型参数而是设计思路对本地模型接入特别友好默认支持OpenAI兼容接口同时把工具调用、MCPModel Context Protocol这些事做得比较克制。Claude Code和Codex能进前十也不意外这两个本身就是编程Agent里最成熟的两个一个靠Anthropic的模型生态一个靠OpenAI的命令行工具。对做AI应用的人来说这份榜单其实给了三个可下手的对象想快速上手写代码的用Claude Code想接入DeepSeek等开源模型的用Hermes想在命令行里定制工作流的用Codex。解读榜单最忌讳只看名次。不同榜单的口径差异极大。有些榜单把多轮对话胜率算成Agent能力有些干脆是用户投票结果自然会失真。我看榜单时会先确认三件事有没有固定任务集、有没有人工验收、是不是多次运行取平均。如果三个条件都不满足那第一第二基本只能当行业动态看不能指导选型。下面我会展开说Hermes的实测感受也会把Claude Code和Codex的安装、接入DeepSeek、常见报错这些实操内容一起整理出来。1. 9月AI Agent排行先看懂榜单在排什么1.1 榜单含金量的三个判断标准我在看到一份AI Agent排行时第一件事不是看谁第一而是看它的评测方法。现在市面上叫AI Agent排行榜的东西至少有三种。第一种是模型能力榜加了个Agent维度本质还是让模型做单轮问答第二种是竞技场式投票用户觉得谁回答好就选谁主观性很强第三种才是真正的Agent评测给Agent一个目标让它自己决定调用哪些工具、怎么分解任务、最终把结果交回来然后由评测系统或人工判断完成度。9月这份榜我能参考是因为它明显属于第三种。它把任务设计成用工具查数据、写代码、操作终端、读文件、输出报告这类真实场景每一轮都有确定的验收标准。比如让Agent去某个Git仓库里找出所有未关闭的issue并生成统计表这既要模型理解意图又要它正确调用搜索和文件操作工具还要把结果整理成指定格式。这种任务做不了假。相比之下如果一份榜单只给了一堆对话示例那它排出来的名次只能代表聊天体验不能代表干活能力。1.2 前三名横向对比我把Hermes、Claude Code、Codex这三个放在一起对比了一下各自侧重点完全不同。对比维度HermesClaude CodeCodex定位通用Agent运行时偏向本地部署编程Agent深度绑定终端和IDE命令行编程Agent偏自动化流水线模型接入支持OpenAI兼容接口可接DeepSeek/Ollama官方模型也可配置第三方兼容接口官方模型优先社区已支持DeepSeek等安装方式Git克隆Pip安装npm全局安装npm全局安装适合人群AI应用开发者、想搭本地Agent服务的人程序员日常写代码、改Bug习惯命令行、想批量处理代码任务的人主要短板上手门槛略高需要理解Agent配置重度使用有配额限制默认配置对国内模型不友好需改配置文件这份对比其实反映了一个趋势Agent竞争已经不是模型单打独斗而是模型工具生态工作流的打法。Hermes聪明在把接入层做得很标准谁都能接Claude Code赢在开箱即用装完就能在仓库里干活Codex则更适合把它嵌进自动化脚本里当代码作业的调度器用。2. Hermes凭什么排第一先把它装起来再说2.1 Hermes不是模型是一个Agent运行时我第一次看到Hermes这个排名第一时也愣了一下因为圈里有几个叫Hermes的东西。有模型叫Hermes有项目叫Hermes Agent标题里这个AI Agent排行的主角是后者。简单理解Hermes Agent是一个帮你把大模型变成能调用工具的智能体的运行时。它本身不提供模型但它负责调度模型、解析工具调用、管理上下文和执行循环。这种设计最大的好处是模型可以随便换。今天我想用DeepSeek明天想换Qwen后天想接本地Ollama都不需要改Agent的代码只改配置。这正好踩中了当前国内开发者的核心诉求不是所有人都能稳定使用官方API很多人手里最强的模型就是本地部署的开源模型需要一个轻量Agent框架把它们用起来。Hermes在9月能排第一我觉得就是因为它在本地模型可用性这件事上做得比Claude Code和Codex更彻底。2.2 Hermes安装部署与对接DeepSeek安装Hermes的第一步是拿到项目源码。以常见开源仓库的部署方式为例大致是这样git clone https://github.com/your-hermes-org/hermes.git cd hermes cp .env.example .env python -m venv .venv source .venv/bin/activate pip install -e .如果你装的是Desktop版官方也会提供打包好的客户端安装完直接打开图形界面然后填API地址和Key。命令行版适合放在服务器上跑Desktop版适合本机调试。无论哪个版本核心都是配置模型接入。接DeepSeek时我的推荐是走OpenAI兼容接口。DeepSeek开放平台提供了兼容格式的API在Hermes配置里可以这样写[llm] provider openai_compatible base_url https://api.deepseek.com/v1 api_key 你的DeepSeek API Key model deepseek-chat这段配置的意思是告诉Hermes用OpenAI兼容协议访问DeepSeek的接口模型名用deepseek-chat。很多人在这一步容易翻车因为DeepSeek的base_url有两种写法一个是https://api.deepseek.com一个是https://api.deepseek.com/v1实际上前者也能用但Hermes这类OpenAI兼容客户端往往默认拼一个/v1所以填完整路径最稳。接Ollama本地模型的方法一样把base_url改成http://127.0.0.1:11434/v1api_key填一个占位符比如ollamamodel填你拉下来的模型名。这样Hermes就跑在纯本地环境了断网也能用响应速度完全取决于你的显卡。我本地用14B模型实测简单的工具调用任务响应时间和云端相差不大但多步推理会慢不少。2.3 Hermes Desktop对接本地部署API如果你下载了Hermes Desktop对接本地API时最容易忽略的是CORS和端口配置。Desktop版本质上是一个本地网页应用它要访问你的本地模型服务比如Ollama或LM Studio需要把这些服务的监听地址加进Hermes的允许列表里否则页面里会报请求失败但命令行用curl测服务又是通的。这个坑我踩过折腾了两个小时才反应过来。具体做法是确认本地模型服务的端口比如Ollama是11434LM Studio默认是1234然后在Hermes Desktop的设置里填http://127.0.0.1:11434不要填localhost因为有些版本会把localhost解析成IPv6的::1而Ollama默认只监听IPv4结果就是连不上。对接完成之后建议在Hermes里先跑一个最简单的任务让Agent查询当前系统时间。这个任务会触发工具调用如果配置有问题错误信息会直接暴露出来比一上来就跑复杂项目好排查得多。3. Claude Code和Codex两个编程Agent的实战切入点3.1 Claude Code安装与VSCode配置Claude Code是Anthropic出的命令行编程Agent装起来很简单前提是你本机有Node.js版本最好在18以上。安装命令就一行npm install -g anthropic-ai/claude-code装完在任意项目目录里输入claude它会要求你登录授权。登录之后Claude Code会读取当前目录的文件作为上下文然后你就可以用自然语言让它改代码、跑测试、解释报错。我在VSCode里的用法是直接打开集成终端然后敲claude。这样可以在编辑器旁边开一个对话窗口Claude Code能看到当前工作区的文件结构改完代码我立刻在下方的项目终端里运行测试。要注意的是Claude Code虽然能修改文件但它默认会先询问你对哪些文件有操作权限尤其是在根目录运行时别一路无脑回车不然它可能会改动你不想动的文件。我习惯在项目里建一个.claude目录来管理权限配置这样每进来一个新终端规则会自动加载。如果想用DeepSeek或其它OpenAI兼容接口Claude Code也可以通过环境变量指定模型接入方式但说实话它的生态是围绕官方模型设计的第三方接入的稳定性不如Hermes。如果你主力用Claude模型Claude Code是最顺手的如果你想混用DeepSeek省成本更建议用Hermes或者Codex。3.2 Codex安装与接入DeepSeekCodex是OpenAI的命令行编程Agent安装方式同样是npmnpm install -g openai/codex codex login登录后直接用codex命令启动交互模式。Codex最吸引我的是它和Git配合得很好你可以在终端里让它看一下当前的Git diff帮我写提交信息它会真的去读diff然后生成一段符合规范的提交说明。批量重构的时候它也能一次处理多个文件比手动改高效不少。Codex接入DeepSeek需要改配置文件。装完Codex后配置文件在~/.codex/config.toml默认情况下只配置了OpenAI官方模型。要接入DeepSeek把下面这段追加进去model deepseek-chat model_provider deepseek [model_providers.deepseek] name DeepSeek base_url https://api.deepseek.com/v1 env_key DEEPSEEK_API_KEY然后设置环境变量DEEPSEEK_API_KEY。这里有个容易踩的坑Codex的配置里model_provider这个名字必须和下面[model_providers.xxx]里的xxx完全一致大小写和连字符都不能差。我第一次写的时候provider名写成了DeepSeek标头写的是model_providers.deepseek结果Codex一直报找不到provider把两边改成一致才通。3.3 两个编程Agent怎么选如果你问我的建议很简单追求省事和模型能力用Claude Code追求命令行自动化和便宜模型接入用Codex。两者不是替代关系我电脑上两个都装了。日常写复杂业务逻辑时用Claude Code因为它的上下文理解更细跑批量任务、做代码审查、写commit message这些重复性工作用Codex因为它更轻、更适合脚本化。还有一点要提醒这两个工具的默认模型都是按量计费的长时间挂机对话很容易烧钱。我在让它们跑长任务时会加--max-turns这类限制参数比如限制最多执行20轮防止Agent陷入无限循环。Agent一旦开了循环模型调用次数会指数增长账单也会跟着飞涨。4. 从0到1搭建AI Agent练手项目与核心逻辑4.1 Agent最小闭环模型工具执行循环想真正理解AI Agent不能只看排行榜最好自己动手搭一个最小闭环。Agent的工作方式可以拆成三部分模型负责理解意图工具负责执行动作执行循环负责把两者串起来。用户说帮我查一下北京天气然后提醒我带伞Agent先调用天气查询工具拿到天气数据再把数据交给模型判断是否需要提醒最后把结果返回给用户。看起来简单但实现时需要让模型能输出结构化指令也就是Function Calling。Hermes这类框架已经把执行循环写好了你只需要定义工具列表和它们的参数。自己做练手项目时我建议从一个能调用两个工具的Agent开始一个查天气一个算加减法。别一上来就做复杂的数据库操作因为工具越多模型选错工具的概率越大排查起来也越头疼。4.2 用OpenAI兼容接口实现一个简化Agent下面这段是我自己练手时写过的最简化版本核心逻辑完全兼容OpenAI的响应格式也适用于DeepSeek和本地Ollama。代码里定义了一个get_weather工具然后循环处理模型的工具调用请求import json import requests def get_weather(city): # 这里替换成真实天气API return {city: city, weather: 晴, temperature: 26} tools [ { type: function, function: { name: get_weather, description: 查询指定城市的天气, parameters: { type: object, properties: { city: {type: string, description: 城市名} }, required: [city] } } } ] messages [{role: user, content: 查一下杭州的天气}] payload { model: deepseek-chat, messages: messages, tools: tools, tool_choice: auto } resp requests.post( https://api.deepseek.com/v1/chat/completions, headers{Authorization: Bearer 你的Key}, jsonpayload ) data resp.json() if data.get(tool_calls): # Agent决定调用工具 for call in data[tool_calls]: args json.loads(call[function][arguments]) result get_weather(args[city]) print(工具返回:, result) else: print(模型直接回答:, data[content])这段代码虽然短但它把Agent最关键的逻辑讲清楚了模型不直接回答而是返回一个工具调用请求程序执行工具后把结果交给模型继续生成。真实项目里会有更多工具、更复杂的循环和错误重试但骨架就是这样的。你把这个骨架跑通后再去用Hermes或Codex会更容易理解它们的配置项为什么那样设计。4.3 练手项目的三个避坑点第一工具描述必须写清楚。Function Calling的效果很大程度上依赖工具描述的质量。你给模型一个按城市查天气的工具描述里就要写出参数格式和返回内容示例描述模糊会导致模型传错参数。第二一定要做错误重试。工具调用可能失败比如天气API超时你要把错误信息返回给模型让它决定是换个参数重试还是告诉用户失败。不然Agent会卡死在错误循环里。第三做好上下文控制。多轮工具调用会产生大量中间输出而模型上下文窗口有限。真实项目里要定期清理历史消息只保留最近几轮的关键内容。5. 配置Hermes、Claude Code、Codex时的高频问题排查5.1 典型报错速查表我在折腾这三个工具时收集了一些高频报错整理成一张速查表按图索骥会快很多。报错场景可能原因解决方案Codex报cc switch local proxy failed while handling codex endpoint /responses. provider...配置的provider路由和API网关地址不匹配或base_url路径写错了检查config.toml里model_provider是否与[model_providers.xxx]标头一致确认base_url末尾没有多余的/chat/completions路径Hermes连接本地Ollama超时Ollama监听的是IPv4Hermes解析了localhost的IPv6地址base_url改用http://127.0.0.1:11434/v1Claude Code登录成功但无响应当前目录权限配置过严Agent无法读取文件在项目里添加目录权限或换一个干净的目录测试Codex接入DeepSeek后一直返回401环境变量DEEPSEEK_API_KEY没有导出到当前Shell执行export DEEPSEEK_API_KEYxxx后重启CodexHermes Desktop页面报请求失败本地模型服务没有加入允许列表在Desktop设置里把模型服务地址加入白名单并确认端口没被防火墙拦截那个local proxy failed报错值得单独说一下。这不是DeepSeek或OpenAI官方的问题而是Codex在访问你配置的API网关时网关没有把/responses这个请求路由到正确的模型接口。解决思路是先确认你用的中转地址是否支持OpenAI的/responses端点如果不支持就把模型调用方式切回传统的/chat/completions兼容模式或者在网关侧把/responses转发到实际模型服务。配这类本地API网关时我强烈建议先用curl手动测一下接口确认返回结构再让Agent去连能省下大量排查时间。5.2 实际踩坑与经验第一个坑是API Key权限范围。DeepSeek的平台Key如果开了IP白名单你得把你服务器的IP加进去否则本地调试没问题一上服务器就报鉴权失败。我一开始没注意到这设置折腾了半天还以为是代码写错了。第二个坑是模型名填错。DeepSeek的接口里模型名是deepseek-chat不是deepseek-v3也不是别的名字填错了会提示模型不存在但报错信息可能模棱两可。第三个坑是Agent上下文被中间结果刷爆。Hermes默认会把每轮工具调用都记录在上下文里任务一长上下文就满了。解决办法是开启上下文压缩或手动裁剪历史消息只保留用户意图和最终结果。还有一个很容易被人忽略的点版本更新。Claude Code和Codex都迭代得很快命令行参数和配置文件格式经常变化。如果你网上找到的教程是三个月前的很可能已经失效。遇到配置看不懂时先跑一下codex --help或claude --help看当前版本的参数说明而不是硬套旧教程。我个人在实际操作中的体会是排行榜只是一个参考入口真正有用的东西都在装完、跑通、修bug的过程中。Hermes排第一确实有它的道理但未必适合所有人。如果你身边已经有成熟的Claude Code工作流没必要为了榜首硬换工具如果你现在的瓶颈是模型有但不知道怎么让它调用工具那Hermes值得你多花一个晚上折腾。我的建议顺序是先跑通Codex接DeepSeek再装Hermes做本地Agent服务最后再用Claude Code处理复杂业务代码三个工具各干各的活互补着用效率才是最高的。