Monoize
工具接入

pi

在 pi coding agent 的 models.json 中添加 LynShen,可使用 Chat Completions、Responses 或 Messages 协议。

pi 是一个终端编程 Agent。npm 包为 @earendil-works/pi-coding-agent,命令为 pi。原仓库 badlogic/pi-mono 已迁移到 earendil-works/pi。本页按 v1.1.0(2026-10-07 发布)编写。

接入方式

api 值协议baseUrl
openai-completionsChat Completionshttps://api.lynshen.org/v1
openai-responsesResponseshttps://api.lynshen.org/v1
anthropic-messagesMessageshttps://api.lynshen.org(不带 /v1)

anthropic-messages 使用 Anthropic SDK,SDK 自己拼接 /v1/messages,pi 不会去掉多余的 /v1。baseUrl 带了 /v1 会请求 /v1/v1/messages,结果是 404。

配置文件位置

系统路径
macOS、Linux~/.pi/agent/models.json
Windows%USERPROFILE%\.pi\agent\models.json

设置了 PI_CODING_AGENT_DIR 时,文件位于该目录下。每次打开 /model 时,pi 会重新读取这个文件。

配置步骤

  1. 设置密钥环境变量:

    export LYNSHEN_API_KEY="sk-..."
  2. 编辑 ~/.pi/agent/models.json:

    {
      "$schema": "https://pi.dev/schemas/models.schema.json",
      "providers": {
        "lynshen": {
          "baseUrl": "https://api.lynshen.org/v1",
          "api": "openai-completions",
          "apiKey": "$LYNSHEN_API_KEY",
          "models": [
            {
              "id": "deepseek-v4-pro",
              "name": "DeepSeek V4 Pro (LynShen)",
              "reasoning": true,
              "input": ["text"],
              "contextWindow": 128000,
              "maxTokens": 32000
            },
            {
              "id": "gpt-5.5",
              "name": "GPT-5.5 (LynShen)",
              "api": "openai-responses",
              "reasoning": true,
              "input": ["text", "image"],
              "contextWindow": 272000,
              "maxTokens": 64000
            }
          ]
        },
        "lynshen-claude": {
          "baseUrl": "https://api.lynshen.org",
          "api": "anthropic-messages",
          "apiKey": "$LYNSHEN_API_KEY",
          "models": [
            {
              "id": "claude-sonnet-5",
              "name": "Claude Sonnet 5 (LynShen)",
              "reasoning": true,
              "input": ["text", "image"],
              "contextWindow": 200000,
              "maxTokens": 64000
            }
          ]
        }
      }
    }
  3. 把模型 ID 换成你的 /v1/models 中的值。contextWindow 和 maxTokens 是示例,请按模型官方上限填写。

  4. 运行 pi,用 /model 选择 LynShen 的模型,发送一条消息确认。

说明:

  • 单个模型可以用自己的 api 覆盖服务商的 api。上例中 GPT 模型改用 Responses。Messages 需要不同的 baseUrl,所以 Claude 放在单独的服务商 lynshen-claude 中。
  • apiKey 可以写字面值、$NAME 或 ${NAME}(读取环境变量),或以 ! 开头的命令。
  • 自定义模型的默认值是 reasoning: false、上下文 128000、maxTokens 16384。不写 reasoning: true 就无法选择思考档位。
  • cost 字段只影响 pi 自己显示的费用,不影响 LynShen 的计费。可以省略。

选择模型

  • 会话中:/model。在选择器中按 Ctrl+S 设为默认。Ctrl+L 打开选择器,Ctrl+P 轮换模型。
  • 命令行:pi --model lynshen/deepseek-v4-pro:high,或 pi --provider lynshen --model deepseek-v4-pro。
  • pi --list-models 列出所有模型。

显示推理

  • 用 /thinking 或 Shift+Tab 调整思考档位:off、minimal、low、medium、high、xhigh、max。命令行用 --thinking。
  • Ctrl+T 折叠或展开思考块。默认显示。
  • openai-completions 模式从 reasoning_content、reasoning、reasoning_text 字段读取思考文字,把 reasoning_details 当作回传数据。LynShen 在 reasoning_content 中返回推理,所以这个模式能显示思考过程。见推理显示的兼容性。
  • Claude 模型使用 anthropic-messages,GPT 模型使用 openai-responses,可以正常显示思考过程。

常见问题

现象原因和处理
/model 中没有 LynShen 的模型pi 解析不出密钥时不显示该服务商。检查 LYNSHEN_API_KEY 是否设置。
Claude 模型返回 404anthropic-messages 的 baseUrl 带了 /v1。改为 https://api.lynshen.org。
选不了思考档位为模型写 "reasoning": true。
401环境变量没有传给 pi 进程。也可以设 "authHeader": true 额外发送 Authorization: Bearer。

来源

2026-10-11 查阅:

本页目录