1. 本地 ollama 跑通之后,OpenManus 为什么还需要 TaoToken
很多人第一次玩 AI Agent 的路径都差不多:先在笔记本上装好 ollama,拉一个 7B 或 14B 的模型,命令行里聊两句觉得挺新鲜,然后听说 OpenManus 能自动开浏览器、写文件、做表格,就想把两者接起来。结果一跑就发现两个现实问题:本地小模型的 function call 能力太弱,工具调用经常失败;而想换成在线大模型,又得在 OpenManus 的 config.toml 里反复改 base_url、api_key、model 三件套,每换一个模型就折腾一次。
TaoToken 在这里的角色,就是把这些分散的模型通道收敛成一个统一入口。你只需要在 config.toml 里填一次 base_url 和一把 Key,后面想切 Claude、GPT 还是国产模型,改 model 字段就行,不用再到处找不同厂商的 Key。对于 OpenManus 这种需要频繁调用模型做规划、调用工具、再反思的 Agent 框架来说,统一 Key 能省掉大量配置切换的时间。
这篇教程面向的是已经装好 ollama、想进一步用 OpenManus 搭 AI Agent 的小白。我会给出 config.toml 和 settings.json 的可复制骨架、CC Switch 的配置示例,并演示一次完整的 Agent 调用验证。你不需要懂太多底层原理,跟着改配置、跑命令就行。
2. 前置准备:ollama 本地模型与 TaoToken Key
2.1 确认 ollama 本地模型可用
先确认你的 ollama 服务是活的。打开一个终端,执行:
ollama list如果能看到类似qwen2.5:14b或llama3.1:8b的条目,说明模型已经拉下来了。再确认服务端口:
curl http://127.0.0.1:11434/v1/models返回 JSON 里包含模型列表就说明 ollama 的 OpenAI 兼容接口正常。这里有个坑:ollama 默认只监听本地,如果你后面想让 OpenManus 通过 TaoToken 走在线模型,本地 ollama 只作为备用通道,两者不冲突。
2.2 获取 TaoToken Key
访问 TaoToken 官网注册后,进入控制台创建 API Key。地址是:
https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite创建时建议给 Key 起个名字,比如openmanus-agent,方便后面区分用途。复制出来的 Key 形如sk-xxxx,只显示一次,先存到记事本里。
TaoToken 的 API 基地址是:
https://taotoken.net/api注意这个地址后面不加/v1,OpenManus 的配置里会自己拼路径。如果你在别的工具里看到要加/v1,那是那个工具的约定,以本文的 config.toml 为准。
2.3 环境检查清单
在动手改配置前,确认这几项:
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| Python 版本 | python --version | 3.12 或以上 |
| conda 环境 | conda env list | 能看到 open_manus 环境 |
| ollama 服务 | curl 127.0.0.1:11434 | 返回 Ollama is running |
| TaoToken Key | 控制台复制 | sk- 开头字符串 |
| OpenManus 目录 | ls config/ | 有 config.example.toml |
这些都没问题,就可以进入配置环节了。
3. 可复制配置:config.toml 与 settings.json 骨架
3.1 config.toml 完整骨架
OpenManus 的配置目录下通常有config.example.toml,复制一份改名为config.toml。下面是我实测可用的骨架,把sk-你的Key替换成你自己的:
# config.toml [llm] model = "claude-3-5-sonnet-20241022" base_url = "https://taotoken.net/api" api_key = "sk-你的Key" max_tokens = 8192 temperature = 0.0 [llm.vision] model = "claude-3-5-sonnet-20241022" base_url = "https://taotoken.net/api" api_key = "sk-你的Key" [ollama] base_url = "http://127.0.0.1:11434/v1" api_key = "ollama" model = "qwen2.5:14b" [browser] headless = false [search] engine = "Google"这里的关键点:[llm]段走 TaoToken 在线通道,[ollama]段保留本地通道。OpenManus 启动时会读[llm]作为主模型,如果你想把主模型切成本地 ollama,把[llm]的 base_url 改成http://127.0.0.1:11434/v1、api_key 改成ollama、model 改成qwen2.5:14b即可。
3.2 settings.json 骨架
有些版本的 OpenManus 用settings.json管理运行时参数,放在项目根目录。骨架如下:
{ "llm": { "model": "claude-3-5-sonnet-20241022", "base_url": "https://taotoken.net/api", "api_key": "sk-你的Key", "max_tokens": 8192, "temperature": 0.0 }, "browser": { "headless": false, "timeout": 30000 }, "workspace": "./workspace", "max_steps": 30 }max_steps控制 Agent 最多执行多少步,小白建议先设 20 到 30,避免它陷入死循环一直烧 token。workspace是 Agent 写文件的目录,确保这个目录存在且有写权限。
3.3 CC Switch 配置示例
如果你用 CC Switch 管理多个模型通道,可以加一个 TaoToken 的 profile:
{ "profiles": [ { "name": "taotoken-openmanus", "base_url": "https://taotoken.net/api", "api_key": "sk-你的Key", "model": "claude-3-5-sonnet-20241022" }, { "name": "ollama-local", "base_url": "http://127.0.0.1:11434/v1", "api_key": "ollama", "model": "qwen2.5:14b" } ] }切换时只要改 OpenManus 读的 profile 名就行。CC Switch 的好处是你不用手动改 config.toml,切通道更快。
4. 验证请求:跑一次 Agent 调用看结果
4.1 启动 OpenManus
激活虚拟环境并进入项目目录:
conda activate G:\openManus\env\open_manus cd G:\openManus\OpenManus python main.py启动后终端会显示 OpenManus 的交互提示符。如果报ModuleNotFoundError,说明依赖没装全,回到项目根目录执行:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple playwright install4.2 发一个可验证的任务
在提示符里输入一个简单但能验证工具调用的任务:
帮我在 workspace 目录下创建一个名为 hello.txt 的文件,内容写 "TaoToken Agent OK",然后读取这个文件并告诉我内容。这个任务会触发 OpenManus 的写文件工具和读文件工具,能同时验证模型规划和工具调用两条链路。如果模型走的是 TaoToken 在线通道,响应通常在几秒内返回;如果走本地 ollama 14B,可能要等十几秒。
4.3 成功结果长什么样
正常跑通后,终端会输出类似:
[Agent] 正在规划任务... [Tool] 调用 write_file: workspace/hello.txt [Tool] 调用 read_file: workspace/hello.txt [Agent] 文件内容为:TaoToken Agent OK同时workspace/hello.txt文件真实存在。你可以用cat workspace/hello.txt确认。如果这一步成功,说明 TaoToken 的 Key 和 base_url 配置正确,OpenManus 的 Agent 循环也能正常工作。
4.4 用 curl 单独验证 TaoToken 通道
如果 Agent 跑不通,先绕过 OpenManus 单独测 TaoToken 通道:
curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的Key" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-3-5-sonnet-20241022", "messages": [{"role": "user", "content": "回复 OK"}], "max_tokens": 10 }'返回 JSON 里有choices字段就说明通道正常。这一步能快速区分是 Key 问题还是 OpenManus 配置问题。
5. 本篇常见错排查
5.1 400 错误:模型名或 base_url 拼错
最常见的报错是 400。原因通常是 base_url 多写了/v1,或者 model 名不在 TaoToken 支持的列表里。TaoToken 的 base_url 是https://taotoken.net/api,OpenManus 内部会拼/v1/chat/completions。如果你写成https://taotoken.net/api/v1,就会变成/api/v1/v1/chat/completions,直接 400。
排查方法:用 4.4 的 curl 命令测,如果 curl 通但 OpenManus 不通,就是 config.toml 里 base_url 写错了。
5.2 401 错误:Key 无效或没带 Bearer
401 一般是 Key 复制不全,或者 config.toml 里 api_key 字段没写对。检查 Key 是否以sk-开头,前后有没有多余空格。另外确认你用的是 TaoToken 控制台创建的 Key,不是别的平台的。
5.3 本地 ollama 模型不触发工具调用
如果你把主模型切成本地qwen2.5:14b,发现 Agent 只聊天不调工具,这是模型能力问题。14B 以下的模型 function call 能力普遍偏弱,建议本地通道只做简单问答,Agent 任务走 TaoToken 在线通道。这也是为什么 config.toml 里我建议[llm]走在线、[ollama]做备用。
5.4 playwright 浏览器启动失败
OpenManus 的浏览器工具依赖 playwright。如果报浏览器找不到,执行:
playwright install chromium playwright install-depsWindows 上如果install-deps报错可以跳过,直接playwright install chromium即可。
5.5 Agent 卡在循环里不停调用工具
把settings.json里的max_steps调小,比如 15。同时把temperature设为 0.0,减少模型随机性。如果还是循环,检查任务描述是不是太模糊,Agent 规划不出来就会反复试。
6. 接入文档与后续玩法
配置跑通之后,你可以把 OpenManus 的模型通道固定成 TaoToken,本地 ollama 只作为断网时的降级方案。这样日常 Agent 任务走在线模型,保证工具调用成功率;内网环境下切回 ollama,虽然能力弱一点但至少能跑。
TaoToken 的接入文档里有更多模型名和参数说明,地址是:
https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite如果你后面想长期跑编码类 Agent,比如让 OpenManus 自动改代码、跑测试,可以考虑 Coding Plan,通道更稳定:
https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite想先手动验证模型对话效果,可以直接在模型对话页测试:
https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite我自己的经验是,OpenManus 这类 Agent 框架对模型的规划能力要求比普通对话高不少,本地 14B 模型做演示可以,真跑复杂任务还是得用在线通道。把 TaoToken 的 Key 配好之后,至少不用再为换模型反复改配置,省下来的时间可以多调几个 Agent 任务。