本地多智能体协作实战:Codex + Hermes + Ollama 部署全流程指南
这次我们来看一套 Agent 智能体搭建的全流程方案Codex Hermes Ollama 多智能体协作。网上类似“保姆级教程”很多但真正能照着跑通的少。这篇不玩概念直接把环境准备、部署启动、功能测试、接口调用、批量任务和排错清单写清楚。不管你是想本地部署一套 Agent 服务还是想把 Codex 接入本地模型测试多智能体协作这篇文章都建议收藏。在动手之前先把结论说清楚这套方案的核心价值是“本地模型 智能体框架 任务调度”的组合。Ollama 负责把开源模型跑在本地提供标准 APICodex 和 Hermes 作为智能体执行层把任务拆解、工具调用和模型推理串起来。优点是数据不出本地、接口标准化、适合批量任务和二次开发代价是需要自己处理模型下载、依赖安装和运行环境硬件门槛取决于你选择的模型尺寸而不是框架本身。本文会带读者完成四件事第一把环境准备好包括 Ollama、Codex、Hermes 的安装和配置第二启动本地模型服务和 Agent 服务第三用文本生成任务和工具调用任务验证多智能体协作是否真的跑通第四测试 API 接口和批量任务最后附上常见问题排查表。如果你只是想先看能不能用重点看第 1 节和第 8 节如果你想直接照着搭第 3 到第 6 节请完整读一遍。适合的读者包括本地模型爱好者、Agent 开发者、想研究多智能体协作的研究者以及需要批量文本或代码生成效率工具的工程师。1. 核心能力速览先给一张规格表方便快速判断这套方案适不适合你。能力项说明项目类型本地 Agent 智能体搭建Codex Hermes Ollama 多智能体协作核心组件Ollama本地模型服务、CodexAgent/Code Agent、HermesAgent 框架或模型组件以你下载的仓库 README 为准主要功能智能体任务拆解、工具调用、多轮对话、本地模型推理、API 服务、批量任务推荐硬件以本地模型为准CPU 可跑小参数模型GPU 可获得更好速度显存占用不确定需按实际模型版本、量化方式和上下文长度实测支持平台Windows / Linux / macOS具体以各组件官方支持列表为准启动方式命令行启动为主部分组件可配置 WebUI 或 API 服务是否支持 APIOllama 原生暴露 /api 接口Agent 服务是否暴露接口需以项目文档为准是否支持批量任务可通过脚本遍历任务列表调用 API 实现批量处理适合场景本地实验、私有化 Agent 开发、多智能体协作研究、代码生成与工具调用测试不适合场景对模型效果要求极高、缺少 GPU 且需要实时大模型推理、需要完整企业级权限管控的场景这里必须强调一句Codex、Hermes、Ollama 在不同资料里指代的内容不完全一样。Ollama 是比较明确的本地推理工具Codex 多数时候指智能体命令行工具Hermes 在搜索结果里可能指某个 Agent 框架也可能指模型系列。所以在这篇教程里我会按“本地模型服务 Agent 执行层 编排框架”的通用架构来写。你实际下载到的项目如果名字相同但结构不同以你拿到的安装包或仓库 README 为准。2. 适用场景与使用边界2.1 这套方案适合谁如果你满足下面任何一条这套组合值得试想在本地搭建一个 Agent 服务不希望把对话数据发送到云端。做 Agent 开发需要一个标准的模型推理接口方便切换模型。研究多智能体协作比如规划 Agent、执行 Agent、反思 Agent 之间的任务流转。需要批量处理文本或代码任务希望用脚本控制任务队列。正在做 Codex 相关功能测试想把 Codex 接到本地模型上跑通链路。Ollama 在这套方案里的作用很直接它把模型统一封装成 HTTP API无论后面接 Codex 还是 Hermes只要改模型名和请求地址就可以。这样一来模型本身变成可替换组件Agent 框架不用改代码这是多智能体协作里很实用的设计。你完全可以先用一个 7B 模型跑通 Agent 逻辑等效果不满意时再换成更大的模型改动成本很低。2.2 不适合什么场景这套方案不建议用于以下场景需要线上高并发服务本地单机无法保证 SLA。需要很复杂的权限控制和审计Agent 框架默认不一定具备。任务涉及人脸、声音、版权素材等敏感数据除非你有明确授权和合规评估。对输出质量要求极高的大规模商用建议先用小批量任务验证效果再决定是否上生产。还有一个容易被忽略的问题本地模型的能力上限决定了 Agent 能完成的任务复杂度。如果模型本身指令遵循能力弱Agent 框架再强也很难稳定完成任务。所以如果你在测试中发现 Codex 或 Hermes 经常“答非所问”先不要怀疑框架大概率是底层模型太小或量化太严重了。2.3 合规与安全边界本地部署不等于没有任何风险。模型文件可能来自第三方仓库使用前要看清楚开源协议输入数据如果是业务敏感信息要注意日志记录和访问控制涉及真实人物、品牌或版权材料时必须有合法授权。在测试阶段建议把所有对话记录和输出结果放在隔离目录不要直接接入生产系统。多智能体协作还有一个特有风险一个 Agent 的输出会成为另一个 Agent 的输入如果某个环节生成恶意指令或错误代码可能被继续放大。所以开发阶段一定要限制工具权限尽量用沙箱环境跑代码生成类任务避免让 Agent 直接操作系统关键目录。3. 环境准备与前置条件这章是“照做就能过”的一章。我不会写死具体版本号因为组件更新太快以你下载时的官方文档为准。下面是通用检查清单。3.1 基础环境操作系统Windows 10/11、Ubuntu 20.04、macOS 均可但不同组件支持程度不同。Python 3.9 或更高版本部分 Agent 框架可能要求 3.10。Node.js 16如果 Codex 或相关 CLI 基于 npm 分发。Git用于克隆仓库。命令行终端Windows 推荐 PowerShell 或 Windows TerminalLinux/macOS 直接用终端。Docker可选如果组件提供容器化部署方式。版本兼容性是最容易出错的地方。比如有些 Agent 框架刚发布时会写明 Python 版本范围如果你用了过新或过旧的 Python依赖安装阶段就会报错。所以建议在正式安装前先检查一下当前环境的 Python 和 Node 版本把版本信息记下来后面排错会方便很多。3.2 显卡与驱动如果只用 CPU 跑小模型不需要独显但速度会慢。如果使用 NVIDIA GPU需要先装好显卡驱动再装 CUDA 和 cuDNN具体版本要与 PyTorch 或推理引擎匹配。不建议先乱装最新版 CUDA更稳妥的方式是装好驱动后直接使用 Ollama 官方安装包它会自动检测可用的 GPU 资源。如何确认 GPU 可用# Windows / Linux 通用 nvidia-smi如果命令正常输出驱动版本和显存信息说明驱动没问题。如果没有输出说明 NVIDIA 驱动未安装或当前机器没有 NVIDIA 独显。这里要提醒一下Ollama 在 CPU 模式下也能跑只是速度会慢很多。如果你不是非要 GPU 不可可以先在 CPU 上把流程跑通再考虑显卡优化这样排障范围会更小。3.3 磁盘空间与模型文件本地模型占用空间差异很大从几 GB 到几十 GB 都有可能。建议规划至少 20GB 剩余磁盘空间如果打算测试不同尺寸的模型预留 50GB 更稳妥。模型文件通常存放在WindowsC:\Users\你的用户名\.ollama\modelsLinux/macOS~/.ollama/models如果磁盘空间紧张可以把模型目录改到其他盘具体方法因系统而异建议查询 Ollama 官方说明。很多新手在拉取模型时卡住一半原因是磁盘不足另一半原因是网络下载缓慢。下载慢的问题可以用国内镜像源解决但镜像源的可用性随时可能变化建议先看官方文档再用镜像作为备选。3.4 端口规划默认情况下Ollama 监听11434端口Codex 或 Hermes 的 Web 服务可能监听3000、8000、8080等端口。启动前可以先检查端口占用# Windows PowerShell netstat -ano | findstr 11434 # Linux/macOS lsof -i :11434如果端口被占用要么关闭占用进程要么在启动命令里指定其他端口。端口冲突最典型的报错是address already in use这时候不要反复重启服务先找到占用端口的进程并确认是否可以关闭。4. 安装部署与启动方式这一章我们按“先模型、后 Agent、再编排”的顺序操作。4.1 安装 Ollama 并拉取模型Ollama 的安装很简单官方提供 Windows、macOS、Linux 安装包。安装完成后打开终端执行# 查看 Ollama 是否可用 ollama --version然后拉取一个适合本机配置的模型。如果你不确定选哪个可以先选一个 7B/8B 规模的量化模型测试显存压力较小。下面命令中的模型名只是示例# 以 qwen2.5:7b 为例实际名称以 Ollama 模型库为准 ollama pull qwen2.5:7b拉取完成后可以手动启动服务ollama serve默认情况下Ollama 会监听http://127.0.0.1:11434。保持这个终端开在当前会话中后面测试要用。如果 Ollama 已经在系统服务里自动启动你可以跳过ollama serve这一步但要注意端口是否已经被占用。4.2 安装 Codex CLICodex 的安装方式取决于其官方分发渠道。常见方式是通过 npm 安装具体包名以你查询到的官方仓库为准。下面给的是通用示例# 示例实际包名请以官方文档为准 npm install -g openai/codex安装后先确认命令可用codex --version如果提示找不到命令需要检查 Node.js 的全局 bin 目录是否在 PATH 中。Windows 下还要检查 npm 全局目录是否被正确添加到了用户环境变量。Codex 这类 CLI 工具通常会要求登录官方账号但在本地 Ollama 模式下你更关心的是它能否把请求转发到本地接口所以先不要纠结登录问题等基础链路通了再考虑具体鉴权方式。4.3 配置 Hermes AgentHermes 的配置方式是这套流程里最容易踩坑的地方。因为“Hermes”在不同项目中可能对应不同组件我建议你先把下载到的项目目录结构看一遍找到README.md或config.example.yaml这类文件照里面要求配置。通用步骤是克隆或解压 Hermes 项目。安装依赖通常是pip install -r requirements.txt或npm install。复制配置模板并填入模型服务地址。启动服务。示例配置伪代码YAML 格式路径和字段以实际项目为准model_provider: type: openai_compatible base_url: http://127.0.0.1:11434/v1 api_key: dummy model: qwen2.5:7b agent: name: hermes max_steps: 10 tools: - read_file - write_file - shell这里说明一下Ollama 提供 OpenAI 兼容接口路径通常是http://127.0.0.1:11434/v1所以在很多 Agent 框架中可以直接把它当作 OpenAI 的替代地址来配置。api_key一般随便填一个占位符即可因为本地服务不校验真实 key。4.4 一键启动脚本示例如果你每次都要手动启动多个进程建议写一个启动脚本。以 Linux/macOS 为例#!/bin/bash # 启动 Ollama ollama serve /tmp/ollama.log 21 echo Ollama started, pid: $! # 启动 Agent 服务具体命令按实际项目调整 python hermes_app.py --config config.yaml /tmp/hermes.log 21 echo Hermes started, pid: $!Windows 下可以写成.bat或.ps1脚本逻辑相同。第一次跑通前不建议写后台启动前台启动能看到更多日志方便排查问题。等到确认稳定后再把进程放到后台或注册成系统服务。4.5 启动后需要确认什么服务启动后建议按顺序确认三层Ollama 是否跑起来访问http://127.0.0.1:11434能返回 JSON 说明正常。模型是否加载调用curl http://127.0.0.1:11434/api/tags能看到你拉取的模型。Agent 是否连上模型查看 Agent 启动日志确认base_url和model配置正确。第一层不通后面全白搭。所以不要急着测 Agent先把 Ollama 接口打通用 curl 测通再启动 Agent。如果你的 Agent 服务一直报连接失败可以先用下面命令确认 Ollama 接口状态curl http://127.0.0.1:11434/api/tags如果返回 JSON 数组说明 Ollama 正常。如果连接拒绝说明 Ollama 没启动或者监听地址不是127.0.0.1:11434。5. 功能测试与效果验证部署完成不等于能干活。建议按“由浅入深”的顺序做功能测试。5.1 测试 Ollama 基础对话先用 curl 直接测模型接口curl http://127.0.0.1:11434/api/generate -d { model: qwen2.5:7b, prompt: 你好请一句话介绍你自己, stream: false }如果返回包含response字段的 JSON说明模型推理正常。这里不要急着追加复杂参数先把最简单的通道路通。如果这个请求就很慢说明你的设备处理这个模型比较吃力后续 Agent 任务的等待时间会更长。5.2 测试 Codex 基础代码生成Codex 的核心使用方式是“给任务让它出方案并执行”。例如在终端运行codex 请用 Python 写一个计算斐波那契数列的脚本并保存到 fib.py这一步考验两个能力Codex 能否调用工具写文件以及底层的模型是否足够稳定。如果 Codex 输出一堆想法但没有实际写文件先别怀疑框架可以先回到 Ollama 单独测一次模型看看在中文指令下是否稳定。也可以换一个英文提示词再试部分本地模型对中文指令的遵循能力弱于英文。5.3 测试 Hermes 多智能体协作多智能体协作是这套组合的核心。我建议先设计一个最小协作任务一个规划 Agent 负责拆解任务一个执行 Agent 负责具体步骤一个反思 Agent 负责检查结果。测试思路启动 Hermes Agent 服务。提交任务“创建一个 Python 文件里面有一个函数 sum_list传入列表返回总和并写一个测试用例验证”。观察日志是否出现多个 Agent 角色流转。检查最终文件是否生成逻辑是否正确。你可能会遇到的情况是Agent 把任务拆了但执行 Agent 没调用工具或者重复调用同一个工具导致死循环。这时候可以把 Agent 的max_steps调低先只看单步执行是否正常再逐步放开。5.4 多智能体协作的典型流转过程为了让你心里有数我描述一个典型的多智能体协作过程。假设任务是一个简单的代码生成任务规划 Agent 收到任务后输出执行计划比如“先读取项目目录结构再生成代码文件最后运行测试”。执行 Agent 接收计划调用read_file或ls工具查看环境然后调用write_file生成代码。反思 Agent 检查代码是否符合要求如果发现问题会返回给执行 Agent 重新修改。在日志中你应该能看到类似agent planning、agent executing、agent reviewing的角色信息。如果没有这些信息说明你的 Hermes 配置可能没有启用多 Agent 模式。很多框架默认是单 Agent 模式需要额外开启多 Agent 开关。5.5 判断成功的标准功能测试不能只看“有没有输出”建议按下面标准判断基础对话返回内容与任务相关没有明显乱码或幻觉。工具调用Agent 日志中能看到read_file、write_file、shell等工具被调用且执行成功。多智能体协作日志中出现至少两个 Agent 之间的消息传递且最终产物由执行 Agent 输出。稳定性同一个任务连续跑 3 次至少 2 次成功。如果三次里只有一次成功先不要扩大任务规模先定位是模型不稳定还是框架逻辑问题。多智能体协作比单 Agent 更容易出错因为每一步都依赖上一步的输出任何一个环节不稳定都会被放大。5.6 异常输入测试除了正常任务建议做一轮异常输入测试。比如给 Agent 提交一个明显超出上下文的超长文本看它是否报错还是截断提交一个需要访问外部网络的请求看它是否被安全策略拦下提交一个没有明确目标的任务看它是否会给出合理的追问。这些测试能暴露很多配置问题尤其是工具权限和上下文长度限制。6. 接口 API 与批量任务Agent 搭好后最有价值的扩展方向就是接口化和批量任务。6.1 Ollama API 能力Ollama 原生提供 HTTP API常用接口包括POST /api/generate生成补全。POST /api/chat多轮对话。GET /api/tags列出模型。POST /api/embeddings获取向量表示部分模型支持。如果你想让 Agent 框架使用 OpenAI 兼容接口通常把base_url设置为http://127.0.0.1:11434/v1然后调用/chat/completions路径。这种兼容设计让本地模型可以直接替换很多开源项目里的 OpenAI 接口配置是一个非常实用的能力。6.2 调用 Agent 服务接口通用模板不同 Agent 项目的接口差异很大这里给一个通用的 HTTP 调用示例。你需要根据实际项目替换 URL 和字段import requests # 这个 URL 和 payload 只是示例请以你的 Agent 项目文档为准 url http://127.0.0.1:8000/api/task payload { task: 写一个 Python 函数输入一个整数 n返回斐波那契数列的前 n 项, agent_config: { max_steps: 5, tools: [write_file, shell] } } resp requests.post(url, jsonpayload, timeout300) print(resp.status_code) print(resp.json())如果返回超时可能不是接口问题而是模型推理太慢。建议先用小模型或不带工具的简单任务测一遍接口连通性再开复杂任务。如果你更习惯用 curl也可以先测一个最简单的任务curl -X POST http://127.0.0.1:8000/api/task \ -H Content-Type: application/json \ -d {task: 输出 hello world, agent_config: {max_steps: 3}}这个命令同样需要根据实际项目接口调整。如果接口不是这个路径你会在返回 404 或错误信息时知道然后再去看项目路由定义。6.3 批量任务实现思路批量任务的核心是“把任务清单变成循环请求”。比如你有多个编程任务需要生成import requests import time tasks [ 写一个 Python 脚本排序一个列表, 写一个 Python 脚本读取 CSV 文件并打印行数, 写一个 Python 脚本批量重命名目录下的文件 ] for i, task in enumerate(tasks): print(f处理第 {i1} 个任务: {task}) response requests.post( http://127.0.0.1:8000/api/task, json{task: task}, timeout600 ) print(response.status_code) # 注意控制节奏避免请求过快导致模型卡死 time.sleep(2)批量任务最需要注意的是失败重试和日志记录。建议在脚本里写一个结果清单记录每个任务的输入、输出、耗时和错误信息。不要把成功的和失败的混在一个目录里否则后面检查会很痛苦。6.4 并发与队列设计如果你的批量任务数量很大建议不要一次全部发出去而是用队列控制并发数。最简单的做法是把任务列表写入一个 JSON 或 CSV 文件然后用多线程控制每批只跑 2 到 3 个任务。本地模型推理时并发过高会导致显存溢出或响应时间急剧增加。如果你不想写复杂队列可以先串行跑一遍等确认稳定后再尝试加并发。7. 资源占用与性能观察7.1 显存占用怎么看启动模型服务后在另一个终端运行nvidia-smi可以看到进程占用显存。主要观察两项GPU 显存使用量。是否有进程占用 GPU 计算资源。显存占用不是一个固定值。模型越大、上下文越长、并发请求越多占用越高。比如同一个模型在短上下文和长上下文下显存可能差好几 GB。所以不要看到网上有人说“显存占用 6G”就到处套必须以本机实测为准。7.2 CPU 和 GPU 推理差异用 CPU 推理时显存占用是 0但速度明显慢。小模型短文本可能还能接受一旦任务复杂、上下文变长等待时间会非常长。用 GPU 推理时速度提升明显但显存会成为瓶颈。如果你的显卡显存不大建议优先选量化版本模型并限制上下文长度。要注意的是Agent 任务和普通对话不同。普通对话只生成一次文本Agent 任务可能需要多轮调用工具每轮都会把之前的对话历史重新发给模型因此 Token 消耗和显存占用都会成倍增加。所以在资源占用观察时要把“Agent 多轮调用”这个因素考虑进去。7.3 如何降低资源占用换成更小的模型或量化版本。降低num_ctx上下文窗口例如从 8192 降到 4096。关闭 Agent 的多工具并行调用改为单步执行。限制并发请求数量避免多个任务同时挤占显存。定时重启模型服务释放碎片化内存。还有一个实用技巧如果某个 Agent 任务失败导致进程一直占用显存可以在终端用kill或任务管理器关掉相关 Python 进程再重新启动服务。本地开发环境下进程残留比显存不足更容易出现。7.4 端口冲突和进程残留服务启动失败的最常见原因是端口冲突。如果你的 Agent 服务报address already in use说明端口被占用。按第 3.4 节的方法查看进程然后关闭旧进程或改端口。另外Ollama 在 Windows 上有时会在后台常驻即使你手动关闭了终端模型进程可能还在需要逐个清理。8. 常见问题与排查方法这里把最容易踩的坑按“现象-原因-排查-解决”整理成一张表方便收藏。问题现象可能原因排查方式解决方案启动后页面或接口打不开端口被占用或服务未启动查看日志和端口监听状态更换端口或重启服务本地代理配置失败例如cc switch local proxy failed while handling codex endpoint /responses本地代理服务未启动、代理端口配置错误或环境变量冲突检查代理进程是否在运行确认环境变量中的代理地址和端口修正代理配置或暂时关闭代理直连本地服务依赖安装失败Python/Node 版本不符合要求或网络原因查看报错信息中的版本要求切换 Python/Node 版本使用国内镜像源安装模型文件缺失拉取模型不完整或路径配置错误查看 Ollama 的模型列表和文件目录重新ollama pull模型或修正配置路径CUDA 不可用显卡驱动未装好或 CUDA 版本不匹配运行nvidia-smi确认驱动检查推理引擎日志安装匹配的驱动和 CUDA或改用 CPU 模式先测试显存不足模型过大或并发请求过多查看nvidia-smi的占用情况换小模型降低上下文长度减少并发API 调用失败或超时模型推理太慢或请求参数不合法先用 curl 测 Ollama 基础接口再测 Agent 接口简化任务、缩小输出长度、增加客户端超时时间批量任务卡住某个任务死循环或模型无响应打印每步日志观察卡在哪个任务给单个任务加超时和重试跳过失败任务输出质量不稳定模型能力不足或提示词结构不合理对比不同模型和不同提示词使用更强模型改进提示词增加 Agent 反思步骤8.1 本地代理报错怎么办如果你在 Codex 或 Agent 日志中看到类似cc switch local proxy failed while handling codex endpoint /responses.的错误不要慌。这个报错通常是请求走到了本地代理但代理服务没在运行或代理地址配置错误。排查步骤是确认你的本地代理服务真的在监听对应端口。检查环境变量HTTP_PROXY、HTTPS_PROXY、ALL_PROXY是否被设置为不可用的地址。如果要直连本地服务临时清空代理环境变量# Linux/macOS unset HTTP_PROXY unset HTTPS_PROXY unset ALL_PROXY# Windows PowerShell Remove-Item Env:HTTP_PROXY Remove-Item Env:HTTPS_PROXY Remove-Item Env:ALL_PROXY然后重启 Codex 或 Agent 服务再试即可。这个报错很容易让人误以为网络环境出了问题实际上往往只是本地代理配置残留清空或修正后就能解决。8.2 Agent 任务一直不结束怎么办如果 Agent 进入无限循环最直接的办法是限制最大执行步数。在配置里把max_steps调到 3 或 5先看单步行为。同时查看日志判断是模型反复给出同一个动作还是工具调用失败后没有退出逻辑。更稳妥的做法是给工具调用增加超时如果一个工具执行超过 30 秒就视为失败并结束当前任务。8.3 模型下载慢怎么办Ollama 拉取模型时经常会遇到下载速度问题。常规做法是设置国内镜像源但镜像源可用性变化很快。建议先确认你的机器是否能正常访问 Ollama 官方源如果不行尝试配置环境变量OLLAMA_HOST或修改OLLAMA_MODELS路径等方法。不要一次性拉取多个大模型容易占满磁盘也会拖慢后续排查速度。9. 最佳实践与使用建议9.1 先小后大第一次搭建时不要直接上复杂业务任务。先用最小模型、最小任务跑通链路确认Ollama - Codex/Hermes - API每一层都正常。整个过程控制在 30 分钟以内如果没跑通说明环境有问题继续堆复杂任务只会浪费更多时间。9.2 保留一套最小可运行配置当你成功跑通一次后把所有配置文件和启动命令保存到固定目录。比如./agent-stack/ ├── config/ │ ├── ollama.yaml │ └── hermes.yaml ├── scripts/ │ ├── start.sh │ └── batch_test.py ├── logs/ └── outputs/以后再做变更时先复制这套最小配置而不是在原配置上反复改。这样即使坏了也能快速回滚。很多新手喜欢在同一个配置文件里反复改参数结果出了问题之后不知道哪个参数是最后改的很难回退。9.3 批量任务要加日志和重试批量任务建议遵循三条规则每条任务写入输入和输出文件文件名带时间戳和任务 ID。每个任务设置超时时间超时后跳过并记录错误。失败任务自动重试一次重试仍失败就进入failed目录。这样即使某次任务跑到一半中断也能直接断点续跑。如果没有日志和重试机制批量任务一旦卡住你很难判断是模型问题、网络问题还是脚本逻辑问题。9.4 接口服务要限制访问范围如果你把 Agent 接口暴露到局域网注意谁可以访问。本地开发阶段最好只监听127.0.0.1不要监听0.0.0.0。如果一定要跨设备访问建议加上简单的 Token 校验或者放到内网减少意外调用。Ollama 默认监听地址是127.0.0.1如果你改了监听地址要确认网络安全性。9.5 如何选择模型选择模型时不要一味追求大参数。对 Agent 这种多轮工具调用场景来说指令遵循能力比单纯的知识量更重要。一个 7B/8B 的模型如果指令遵循稳定可能比一个 30B 但指令容易跑偏的模型更适合做 Agent。建议准备两到三个候选模型用同一个 Agent 任务分别测试对比稳定性和耗时后再做决定。Ollama 的模型库中模型标签带q4、q8等说明是量化版本显存占用更小但效果有轻微损失。9.6 合规和授权不管你是做研究还是商用都要注意三件事模型文件的许可证、输入数据的隐私、输出内容的版权。涉及人脸、声音、品牌、版权文本的任务必须先确认授权。Agent 生成的代码如果直接用于生产必须经过人工 review因为本地模型并不保证代码没有安全漏洞。整体上建议把这套本地 Agent 方案放在测试环境跑确认真实可靠后再考虑线上集成。10. 总结与下一步Codex Hermes Ollama 这套组合值得尝试的地方在于它把“本地模型”和“智能体编排”拆成了清晰的两层Ollama 做模型推理底座Codex/Hermes 做任务执行层替换模型不需要大改代码。最先应该验证的功能不是多复杂的 Agent 任务而是 Ollama 的/api/chat接口能否稳定返回结果。最容易踩的坑有三个本地代理配置错误、模型文件路径不对、Agent 工具调用死循环。这三个坑在本文第 8 节都能找到对应解法。接下来可以继续扩展的方向包括把 Codex 接入更强模型或 DeepSeek 系列的本地版本后对比效果用 Hermes 做多智能体协作时加入反思节点让任务质量更稳定写一个更完善的批量任务调度器支持并发和自动重试。只要基础链路跑通后面这些扩展都属于“改配置、加脚本”的工作量。如果你正在搭本地 Agent建议先按第 3 章的检查清单过一遍环境再按第 4 章的步骤启动最后用第 5 章的测试用例验证。把这套流程走完你对 Codex、Hermes、Ollama 之间的关系会有一个很实际的认识而不是停留在概念上。