概述
Pi Coding Agent(命令与配置目录名为pi)是 Earendil Works 推出的开源、终端原生的编程 Agent(命令行工具),支持多模型供应商、自定义供应商与可插拔工具,适合在命令行里完成代码辅助与任务自动化。
Pi 支持自定义模型供应商和 Anthropic Messages 接口。通过在 ~/.pi/agent/models.json 中把 EvoLink 配置为自定义供应商,你就能在 Pi 中使用 EvoLink 提供的 Claude 系列模型,并保留 Pi 的完整 Agent 工具调用能力。
Pi 官方以终端 CLI(交互 / print / RPC / SDK 四种运行模式)为主,本指南以 CLI 为准。
使用前准备
在开始配置之前,请确保已完成以下准备工作:1. 安装 Pi Coding Agent CLI
Pi 要求 Node.js ≥ 22.19.0。先用
node -v 确认版本;低于此版本 npm install -g 会报 EBADENGINE,请先升级 Node。- curl 脚本
- npm

pi 命令可用:
2. 获取 EvoLink API Key
- 登录 EvoLink 控制台
- 在控制台中找到 API Keys,点击”创建新Key”按钮,然后复制生成的 Key
- API Key 通常以
sk-开头,请妥善保存
第一步:配置 EvoLink 供应商
Pi 通过一个名为models.json 的配置文件来定义供应商与模型,它位于你电脑用户主目录下的 .pi/agent/ 文件夹里(完整路径 ~/.pi/agent/models.json)。Claude 模型在 Pi 中会频繁使用 tool_use / tool_result,因此本指南使用 EvoLink 的 Anthropic Messages 兼容接口,把它配置为 anthropic-messages 类型的自定义供应商。
~ 代表你的用户主目录(macOS 上是 /Users/你的用户名,Linux 上是 /home/你的用户名)。.pi 以点开头,是隐藏文件夹,在访达(Finder)/文件资源管理器里默认看不到——所以下面用命令行来创建最省事,照抄即可。.pi 文件夹通常还没生成),需要你手动创建。按下面三步操作:
1
打开终端
- macOS:按
Command + 空格打开聚焦搜索,输入Terminal(终端)回车。 - Windows:在开始菜单搜索
PowerShell,点击打开。
2
创建配置文件夹并新建文件
在终端里粘贴下面这条命令后回车。它会自动创建所需文件夹,并用文本编辑器打开一个空的 执行后会进入
models.json 文件:- macOS / Linux
- Windows (PowerShell)
nano 编辑器(终端里的一个简易文本编辑器)。3
粘贴配置内容并保存
把下面这份完整配置整段复制,粘贴进刚打开的编辑器:然后保存:
- nano(macOS / Linux):按
Control + O回车保存,再按Control + X退出。 - 记事本(Windows):按
Control + S保存,直接关闭窗口。
api: "anthropic-messages"—— 走 EvoLink 的 Anthropic Messages 兼容线,Pi 会使用 Claude 原生的tool_use/tool_result工具协议。baseUrl只填域名根https://direct.evolink.ai,不要手动加/v1或/v1/messages。Pi 会自动拼接/v1/messages;手动多拼会造成路径重复并返回404 Invalid URL。authHeader: true不能省略。Pi 的 Anthropic SDK 默认使用x-api-key,EvoLink 的/v1/messages统一使用Authorization: Bearer <你的Key>。这个字段会让 Pi 正确添加 Bearer 认证头。apiKey有两种填法,任选其一:- 方式一 · 明文直填(最简单,适合本地自用):把配置里的
"$EVOLINK_API_KEY"直接换成你真实的 Key,例如"apiKey": "sk-你的真实Key"。一步到位、无需设环境变量;缺点是 Key 会明文存在配置文件里,别把这个文件分享给别人或提交到 Git。 - 方式二 · 环境变量插值(更安全,推荐):保持
"$EVOLINK_API_KEY"不变,把真实 Key 放进环境变量里(见下方「设置 API Key 环境变量」一节)。这样配置文件里不出现明文 Key。 - (进阶) Pi 的
apiKey还支持${EVOLINK_API_KEY}(等价写法,当变量名后紧跟字面文本时用花括号消歧)、!command(以!开头则执行命令、用输出作为 Key,例如从密码管理器读取:"!op read 'op://vault/item/credential'");如需在值里写字面量$或!,用$$和$!转义。
- 方式一 · 明文直填(最简单,适合本地自用):把配置里的
不想动配置文件里的 Key?也可以在交互模式里用
/login 选择该供应商、把 Key 存进 ~/.pi/agent/auth.json,效果等价。设置 API Key 环境变量
只有上一步选了方式二(环境变量插值)才需要做这一步。如果你选的是方式一(明文直填),Key 已经写进配置文件了,跳过本节直接进入第二步即可。
$EVOLINK_API_KEY 指向你的真实 Key。下面同时给出临时生效(只在当前终端窗口有效,关掉就没了,适合先跑通验证)和持久生效(每次开终端都自动加载)两种做法:
- macOS / Linux
- Windows (PowerShell)
临时生效(当前终端窗口,关掉即失效):持久生效(写入 shell 配置文件,之后每次开终端自动生效):
不确定自己用的是哪个 shell?在终端执行
echo $SHELL,输出里含 zsh 就用 ~/.zshrc,含 bash 就用 ~/.bashrc。第二步:开始使用并验证
1. 选择模型
在终端中运行以下命令启动 Pi:/model 打开模型选择器,然后选择上面配置的 EvoLink 模型(如 claude-fable-5)。
2. 验证配置
选好模型后,先输入一个简单的提示验证模型回复:
- 看到 AI 的正常回复内容(几行文字)。
- 第二个任务中 Pi 能正常调用
ls工具并继续回答。 - 没有出现
401、404、model_not_found或Unexpected role "tool"等错误。
排错
以下按你实际看到的报错分类,对号入座即可。返回 401(Invalid API key)
- 环境变量没生效(最常见):在当前终端执行
test -n "$EVOLINK_API_KEY" && echo "Key 已加载" || echo "Key 未加载";Windows 用setx后需重启终端。 apiKey字段写错:确认models.json里写的是"$EVOLINK_API_KEY"(引用环境变量),而不是把变量名当成了字面 Key。- 漏了
"authHeader": true:EvoLink 的/v1/messages需要 Bearer Token,请确认该字段与apiKey处于同一供应商配置内。 - Key 本身无效或已被禁用:到 EvoLink 控制台 核对。
返回 404 Invalid URL
baseUrl 里手动多拼了路径。Pi 会自动拼接 /v1/messages,把 baseUrl 改回域名根 https://direct.evolink.ai 即可。
返回 404 model_not_found
models.json 里的 id 与 EvoLink 控制台显示的模型名是否完全一致。
返回 400 Unexpected role "tool"
api: "openai-completions" 和以 /v1 结尾的 Base URL。Pi 的 Agent 工具结果会使用 OpenAI 的 role: "tool",而当前 Claude 兼容通道不接受该角色。
解决:把供应商的这三项改为:
supportsDeveloperRole 或 supportsReasoningEffort 解决,因为被拒绝的是工具角色,不是 developer 角色或推理参数。修改配置后建议开启新会话再测试。
关于成本
上面models.json 里的 cost 字段是 EvoLink 的实付价(统一 9 折,单位:美元 / 百万 tokens),供 Pi 估算用量参考:
Cache Read 为命中缓存时的价格(约为 Input 的 0.1×)。实际节省取决于缓存命中率,上下文越大命中越不稳定,收益会打折——不要把它当作无条件的低价。
常见问题
如何打开命令行终端?
- macOS
- Windows
- Linux
- 方法一:按
Command + 空格打开 Spotlight,输入Terminal,按回车 - 方法二:在”应用程序” → “实用工具” → “终端”
1. 为什么 baseUrl 只填域名根?
因为 Pi 的 anthropic-messages 会自动在 baseUrl 后拼接 /v1/messages。手动加 /v1 或 /v1/messages 会导致路径重复并返回 404 Invalid URL。只填 https://direct.evolink.ai 即可。
2. 需要设 authHeader: true 吗?
需要。Pi 的 Anthropic SDK 默认使用 x-api-key,EvoLink 的 /v1/messages 使用 Bearer Token。authHeader: true 会让 Pi 添加 Authorization: Bearer <你的Key>,漏掉可能导致 401。
3. 本指南为什么以终端 CLI 为准?
Pi 官方以终端 CLI 为主形态(交互 / print / RPC / SDK 四种运行模式),接入 EvoLink 的配置与验证都在 CLI 中完成,稳定可靠。本指南的所有步骤均以 CLI 为准。4. 如何避免把 API Key 明文写进配置?
在apiKey 字段用环境变量插值(如 "$EVOLINK_API_KEY"),把真实 Key 放到环境变量里。
5. EvoLink 支持哪些常用模型?
EvoLink 支持 Claude 全系列(也支持 GPT、Gemini 等,可在控制台查看)。规划/复杂推理推荐claude-fable-5,日常执行可用 claude-sonnet-5,轻量任务用 claude-haiku-4-5-20251001。
