Настройка API агента кодирования pi

Настройте pi, расширяемый агент кодирования, с помощью поставщика TokenHub, ключа API на основе среды и совместимой модели.

Что такое пи, кодирующий агент?

pi — это расширяемый агент кодирования, работающий из командной строки, с настраиваемыми поставщиками, моделями и расширениями для рабочих процессов индивидуальной разработки.

В этом руководстве по агенту pi добавляется TokenHub в файл models.json, сохраняется ключ API в переменной среды и точно объявляются ограничения модели, прежде чем вы выберете поставщика в интерфейсе командной строки pi. pi принадлежит проекту pi-mono и поддерживает пользовательских поставщиков, объявления возможностей модели и расширения. Значения models.json представляют собой эксплуатационные ограничения, а не декоративные метаданные: используйте проверенные контекстные и выходные значения, защищайте ключ API с помощью переменной среды и проверяйте расширения отдельно, когда они запрашивают дополнительные инструменты.

Официальный механизм Custom Models pi загружает шлюзы и пользовательские модели из ~/.pi/agent/models.json. TokenHub использует тип openai-completions API. Здесь нет общей формы «Добавить поставщика»; этот файл конфигурации является поддерживаемой точкой входа.

Шаг 1. Подготовьте учетные данные для models.json.

В том же терминале, который запускает pi, установите:

export TOKENHUB_API_KEY="sk-..."

В models.json значение должно быть "$TOKENHUB_API_KEY" для чтения переменной среды. В документации pi отмечается, что строка в верхнем регистре без В models.jsonзначение должно быть"$TOKENHUB_API_KEY"` для чтения переменной среды. В документации pi отмечается, что строка в верхнем регистре без рассматривается как буквальный ключ, а не имя переменной среды.

Шаг 2. Отредактируйте ~/.pi/agent/models.json.

{
  "providers": {
    "tokenhub": {
      "baseUrl": "__API_BASE_URL__/v1",
      "api": "openai-completions",
      "apiKey": "$TOKENHUB_API_KEY",
      "models": [
        {
          "id": "YOUR_TOKENHUB_MODEL_ID",
          "name": "TokenHub / YOUR_TOKENHUB_MODEL_ID",
          "reasoning": false,
          "input": ["text"],
          "contextWindow": 128000,
          "maxTokens": 8192
        }
      ]
    }
  }
}

Исправьте каждое поле на странице модели TokenHub:

  • id — это идентификатор модели, отправленный на API, который является обязательным.
  • Установите для reasoning значение true только для модели, поддерживающей расширенное рассуждение.
  • input по умолчанию — текст. Используйте ["text", "image"] только для моделей с вводом изображения.
  • Хотя contextWindow имеет значение по умолчанию, объявите реальное контекстное окно модели.
  • maxTokens — это максимальный вывод, а не контекстное окно.

TokenHub использует токен носителя. Если ваша версия pi не добавляет заголовок авторизации автоматически, добавьте "authHeader": true на уровне провайдера.

Шаг 3: откройте /model, чтобы перезагрузить файл.

Запустите /model внутри сеанса pi. pi перезагружает models.json каждый раз, когда открывается /model, поэтому перезагрузка не требуется. Выберите tokenhub/YOUR_TOKENHUB_MODEL_ID, попросите его объяснить один файл и проверьте вызов инструмента только после успешного завершения.

Если поставщик и модель отображаются, но недоступны для выбора, файл загружен, но учетные данные не разрешены. Проверьте переменную среды или сохраните ключ провайдера с помощью /login/auth.json.

Применяйте переопределения совместимости, специфичные для pi, только при необходимости.

Некоторые службы OpenAI-compatible отклоняют роль developer или reasoning_effort. Добавляйте эти флаги только после возникновения соответствующей ошибки 400:

"compat": {
  "supportsDeveloperRole": false,
  "supportsReasoningEffort": false
}

Не отключайте возможности заранее. После успешного выполнения базовых запросов настройте thinkingLevelMap, ввод изображения, параметры выборки или цену только для конкретной модели.

Устранение неполадок в соответствии с поведением нагрузки pi.

  • Поставщик полностью отсутствует в /model: проверьте путь к файлу, синтаксис JSON, baseUrl и api.
  • Поставщик существует, но модель невозможно выбрать: $TOKENHUB_API_KEY не удалось разрешить, или у поставщика отсутствуют сохраненные учетные данные.
  • 401: подтвердите, что процесс pi унаследовал переменную, и при необходимости установите authHeader: true.
  • 400 или раннее усечение: правильный contextWindow, maxTokens или compat; не просто увеличивайте цифры.
  • Изменение не отображается: повторно откройте /model вместо того, чтобы полагаться на старый выбор, показанный в текущем сеансе.

Официальные ссылки

Как выбрать модель

НагрузкаВыбор моделиПочему подходит
Сложные задачиМодель рассуждений с инструментамиПодходит для планирования, многошаговых задач и длинного контекста.
Ежедневная работаСбалансированная модельБаланс качества, скорости и стоимости.
Сводки и лёгкие задачиБыстрая недорогая модельСнижает стоимость сводок и простых итераций.
Открыть модели TokenHub

Часто задаваемые вопросы о поставщике агента кодирования pi

Как связаны пи-агент, пи-кодирующий агент и пи-моно?

pi-mono — это репозиторий проекта, содержащий несколько компонентов, включая CLI pi Coding Agent. На этой странице описан этот агент кодирования, а не Raspberry Pi.

Почему пользовательский поставщик pi требует ограничений модели?

pi использует ограничения контекста и вывода для формирования запросов и возможностей. Вводите проверенные характеристики модели, а не скопированные или придуманные значения.

Используют ли расширения pi модель TokenHub автоматически?

Они часто следуют за текущим поставщиком сеансов, но расширение может иметь отдельные требования или настройки. Просмотрите разрешения и безопасно подтвердите каждое расширение.

Почему pi не может найти TOKENHUB_API_KEY?

Убедитесь, что файл models.json ссылается на точное имя переменной, и запустите pi с нового терминала, который ее загрузил. Не храните настоящий ключ в конфигурации репозитория.

Как протестировать поставщика агента кодирования pi?

Выберите поставщика и модель, запустите задачу кода только для чтения и проверьте журналы TokenHub, прежде чем включать изменения, команды или расширения.

Источники

Эта настройка основана на TokenHub и официальной документации; последняя проверка: 2026-09-08。