☰
Pi 大道至简:超越 Codex 和 Claude Code 的极简 Agent,TaoToken 配置与 Skills 实战全攻略
2026/9/27 16:43:09 网站建设 项目流程

1. Pi Agent 到底解决什么问题

Pi 是一个把「极简」做到骨子里的 AI Agent。它默认只带四个基础工具:读文件、写文件、改文件、跑命令,系统提示词大约 1000 Token。你在 Pi 里说一句「你好」,上传 Token 大概 1100,占上下文 0.4% 左右;而在 Codex 里打个招呼就可能吃掉 18000 Token,什么都没干先消耗 7% 的上下文窗口。这个差距在长任务里会被放大成真金白银的成本差和响应速度差。

它适合谁?适合已经用过 Claude Code、Codex,但被它们的重上下文、重工具链拖慢节奏的开发者;也适合想把 Agent 当一次性 CLI 命令用的人。Pi 没有 MCP、没有 SubAgent、没有 Plan Mode、没有 Todo,这些能力全部通过插件和 Skills 按需拼装。官网首页那句话很能说明设计取向:让工具来适应你的工作流,而不是让你去适应工具。

但极简也带来一个现实问题:Pi 本身不绑定任何模型供应商,你需要自己接模型通道。如果你同时用 Claude Code、Codex、Pi 三套工具,每个都配一遍 Key、改一遍 base_url,维护成本会迅速失控。这篇就围绕「统一 Key/API 通道 + Pi 配置 + Skills 扩展」这条线,把 settings.json、config.toml、CC Switch 片段和验证动作一次讲透。

2. TaoToken 前置:统一 Key 与 API 通道

TaoToken 在这里扮演的角色是「一个 Key 打通多个 AI 工具」的接入层。你不需要为 Pi、Claude Code、Codex 分别申请不同厂商的 Key,而是用同一套 API 通道,把模型调用统一收口。对 Pi 这种「模型可插拔」的 Agent 来说,这一点尤其关键,因为 Pi 的模型配置就是围绕 provider + base_url + api_key 三件套展开的。

先把入口记清楚,后面配置会反复用到:

  • 官网入口:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
  • API 基址:https://taotoken.net/api(这个地址不加 UTM,直接用于配置)
  • 模型对话体验:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite
  • Coding Plan(长期编码/Agent 场景):https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite
  • 控制台:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
  • API Keys 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite
  • 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
  • Claude Code / Anthropic 接入:https://taotoken.net/claudecode-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claudecode&utm_campaign=rewrite

注意:API 基址统一用https://taotoken.net/api,不要在后面拼多余的路径,Pi 和 CC Switch 都会在这个基址上自动补全/v1/chat/completions之类的端点。

拿到 Key 的路径是:进控制台 → API Keys → 新建 → 复制。这个 Key 就是后面所有配置文件里api_key字段的值。建议单独建一个给 Pi 用的 Key,方便按工具维度排查调用量和费用。

3. 可复制配置:settings.json / config.toml / CC Switch

Pi 的配置分两层:全局配置放在用户目录下的.pi文件夹,项目级配置放在项目根目录的.pi文件夹。模型 provider 一般写在全局,Skills 和插件可以按项目粒度覆盖。

3.1 Pi 的 settings.json 骨架

Pi 读取模型配置时,核心字段是 provider 名称、base_url、api_key、model。下面这份settings.json可以直接复制,把sk-你的TaoTokenKey换成你自己的:

{ "providers": { "taotoken": { "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoTokenKey", "models": [ { "id": "claude-opus-4-8", "name": "Claude Opus 4.8", "context_window": 200000 }, { "id": "gpt-5-6-sol", "name": "GPT 5.6 Sol", "context_window": 272000 } ] } }, "default_model": "taotoken/claude-opus-4-8", "default_thinking": "medium" }

这份配置里,default_model用的是provider/model的写法,Pi 启动时会按这个去匹配 provider 下的 models 列表。default_thinking控制思考强度,可选 low / medium / high,对应 Shift+Tab 的切换档位。

3.2 config.toml 版本(适合偏好 TOML 的场景)

有些团队习惯用 TOML 管理配置,Pi 同样支持。下面这份config.toml和上面的 JSON 等价:

default_model = "taotoken/claude-opus-4-8" default_thinking = "medium" [providers.taotoken] base_url = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey" [[providers.taotoken.models]] id = "claude-opus-4-8" name = "Claude Opus 4.8" context_window = 200000 [[providers.taotoken.models]] id = "gpt-5-6-sol" name = "GPT 5.6 Sol" context_window = 272000

提示:JSON 和 TOML 二选一即可,不要同时放两份,否则 Pi 的加载顺序可能让你以为配置没生效。

3.3 CC Switch 配置片段

如果你同时用 Claude Code 和 Pi,CC Switch 是切换 provider 的常用工具。它的配置本质也是把 base_url 和 api_key 指向同一套通道。下面是一个 CC Switch 的 provider 片段:

{ "name": "taotoken", "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoTokenKey", "models": { "default": "claude-opus-4-8", "fast": "gpt-5-6-sol" } }

把这段合并进 CC Switch 的 providers 数组后,你在 Claude Code 和 Pi 之间切换时,底层走的是同一个 Key 和同一个 API 基址。这样排查问题时只需要看一个通道的日志,不用在多个厂商后台之间来回跳。

3.4 Skills 目录结构

Pi 遵循标准 Agent Skills 协议,Skills 放在.agents/skills/下面。项目级放项目根目录,全局级放用户目录:

项目目录/ └── .agents/ └── skills/ └── playwright-cli/ └── SKILL.md 用户目录/ └── .agents/ └── skills/ └── playwright-cli/ └── SKILL.md

只要SKILL.md在对应目录下,Pi 启动时就会自动识别并在 Skills 列表里显示。想关掉某个 Skill,直接在 Web UI 的技能面板里切换开关即可,关掉后提示词里不再注入,能省 Token。

4. 验证请求:确认 Agent 调用真的生效

配置写完不代表生效,必须做一次可观测的验证。下面这套动作我实测下来最直接。

第一步,启动 Pi 并确认模型加载:

pi

进入对话窗口后输入/model,看列表里有没有taotoken/claude-opus-4-8。如果没有,说明settings.json的路径或字段名有问题,优先检查 provider 名称是否和default_model前缀一致。

第二步,发一条会触发工具调用的指令,而不是纯聊天。比如:

在当前目录创建一个 hello.txt,内容写 "taotoken ok",然后读出来确认

如果 Pi 正常调用写文件和读文件工具,并且底部状态栏显示输入/输出 Token、缓存命中率、上下文占用百分比,说明模型通道和工具链都通了。重点看两个数:Cache Read 是否大于 0,上下文占用是否在合理范围。如果 Cache Read 一直是 0,可能是 base_url 拼错导致每次都是新请求。

第三步,用非交互模式做一次静默验证:

pi -p "查询当前目录文件数量,写入 count.txt"

执行完后检查count.txt是否生成。非交互模式特别适合把 Pi 当一次性 CLI 命令用,也适合放进脚本做冒烟测试。

第四步,验证 Skills 是否被识别。启动 Pi 后看加载日志里有没有[Skills]段落,或者在 Web UI 的技能面板里确认目标 Skill 处于开启状态。如果 Skill 没出现,九成是SKILL.md放错了层级,注意是.agents/skills/技能名/SKILL.md,不是.agents/skills/SKILL.md。

5. 本篇常见错排查

5.1 报 401 / invalid api key

先确认api_key字段没有多余空格,JSON 里字符串不能换行。然后确认 Key 是从 API Keys 页面新建的、状态是启用。如果 Key 没问题,检查 base_url 是不是写成了带路径的地址,正确写法就是https://taotoken.net/api,不要加/v1。

5.2 模型列表为空

/model里看不到任何模型,通常是providers下的models数组没写对,或者default_model的前缀和 provider 名称不匹配。比如 provider 叫taotoken,default_model就必须是taotoken/xxx,写成taotoken.net/xxx会匹配失败。

5.3 Skills 不生效

按这个顺序查:SKILL.md文件名是否全大写、目录是否是.agents/skills/技能名/、项目启动时是否提示信任当前目录。Pi 在陌生目录启动会询问是否信任并加载插件/Skill,选不信任就不会加载。另外项目级 Skill 只对当前项目生效,换目录就看不到了,需要放到全局.agents目录。

5.4 上下文占用异常高

如果打个招呼就占用很高百分比,检查是不是装了太多全局插件。每装一个插件都会增加系统提示词,用不到的插件建议在 Web UI 里关掉。另外执行完一轮任务后,优先用/new新开 Session 清空上下文,而不是依赖/compact压缩。Agent 领域的通用经验是清空好于压缩,过多历史会干扰模型注意力。

5.5 工具调用被安全机制拦截

Pi 本身没有沙箱,运行后就是最高权限。如果你装了权限类插件,敏感操作会弹审批窗口。如果发现命令没执行,先看是不是审批被拒。想彻底隔离,建议把 Pi 放进容器或虚拟机里跑,它启动快、占用低,很适合容器化批量部署。

6. 把 Pi 接进你的日常工作流

配置跑通之后,真正决定效率的是 Skills 的组合方式。我的做法是:全局只留通用 Skill(比如浏览器自动化、文档转换),项目级放和当前仓库强相关的 Skill,插件按需开、用完关。模型通道统一走 TaoToken 的 API 基址,Pi、Claude Code、Codex 共用一个 Key,切换工具时不用重新配环境。

如果你还在验证阶段,想先确认模型对话是否正常,可以直接用模型对话入口试一条请求;如果准备长期把 Pi 当编码 Agent 用,建议走 Coding Plan,把调用量和成本纳入统一管理。接入过程中遇到 Key 或 base_url 的问题,先翻接入文档,再对照 API Keys 页面确认 Key 状态。把这几步做完,Pi 的极简工作流基本就能稳定跑起来了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询