Pi Agent: неинтерактивный режим

Помимо интерактивного диалога, Pi Agent также предоставляет три неинтерактивных режима, подходящих для интеграции скриптов, автоматизированных рабочих процессов и обмена данными между программами.


Режим печати (-p)

Режим печати — наиболее часто используемый неинтерактивный режим; он выполняет одноразовый вопрос-ответ, выводит результат и завершает работу.

Базовое использование

Простейшая форма — указать вопрос сразу после -p, и ИИ завершает работу после ответа.

$ pi -p "帮我总结一下这个项目的结构"
这是一个 TypeScript + Vite 项目,源码集中在 src/ 目录下。
入口文件是 src/main.ts,工具函数位于 src/utils/,共 18 个模块。

Используйте @ для ссылки на файл, чтобы ИИ прочитал содержимое указанного файла:

$ pi -p @README.md "这段文档的主要内容是什么"
这份 README 介绍了安装步骤、环境变量配置和三条常用命令。

Используйте конвейер, чтобы передать вывод команды напрямую ИИ; подходит для обработки текста, например журналов и документов:

$ cat README.md | pi -p "用三句话总结这段文字"
1. 项目要求 Node 20 以上版本。
2. 安装依赖后先把 .env.example 复制为 .env.
3. 日常调试用 npm run dev,发布构建用 npm run build.

@ также может ссылаться на изображения, позволяя ИИ анализировать содержимое изображения:

$ pi -p @screenshot.png "图片中显示的错误信息是什么"
截图中的报错是 Module not found: Can't resolve './utils/format',
说明 src/index.ts 里的相对路径拼写有误。

Используйте --name, чтобы задать имя сеанса; позже вы сможете продолжить эту ветку в интерактивном режиме:

$ pi --name "快速审查" -p "审查 src/ 目录下的代码质量"
代码整体质量良好,有 3 处可以改进:
1. src/api/user.ts 缺少对分页参数的校验。
2. src/utils/format.ts 的日期格式化未处理时区。
3. src/db/query.ts 的裸抛异常建议补充错误码。

Указание модели

Используйте --provider вместе с --model, чтобы указать модель, или объедините их в форму provider/model.

$ pi --provider openai --model gpt-4o -p "帮我重构这段代码的逻辑"
重构建议:把 src/service/order.ts 中 120 行的 createOrder 拆成
校验参数、计算金额、落库三个函数,并为每个函数补充单元测试。

Приведённая ниже объединённая форма полностью эквивалентна предыдущей, только короче для записи:

$ pi --model openai/gpt-4o -p "帮我重构这段代码的逻辑"

Добавление двоеточия и уровня рассуждений после имени модели управляет глубиной мышления этого вызова:

$ pi --model sonnet:high -p "这个复杂的算法有什么潜在问题"
主要风险有三点:递归深度没有上限会导致栈溢出;
缓存键未包含用户身份,存在越权读取的可能;
批量写入缺少事务包裹,失败时会出现半提交状态。

В --model, суффикс:thinking(например, sonnet:high) и параметр--thinking--reasoning-effort могут оба задавать уровень рассуждений.

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

Используйте --models, чтобы ограничить доступный набор моделей, разделяя несколько моделей запятыми:

$ pi --models "claude-*,gpt-4o" -p "审查代码"
审查完成:共发现 2 个阻塞问题和 5 个改进建议,
详细列表已按严重程度排序。

Управление инструментами

Управление тем, какие инструменты ИИ может использовать, через параметры командной строки — ключ к безопасному запуску неинтерактивного режима в скриптах.

Pi Agent имеет 7 встроенных инструментов на платформах, отличных от Windows: read, write, edit, bash, grep, find, ls.

В Windows bash заменяется на powershell.

Используйте --tools в качестве белого списка, чтобы оставить только указанные инструменты; например, режим только для чтения, который не изменяет никакие файлы:

$ pi --tools read,grep,find,ls -p "审查代码不修改"
审查结果:共 4 个问题,其中 1 个涉及并发写入,
完整报告已输出到终端,本次未修改任何文件。

Используйте --exclude-tools, чтобы исключить указанные инструменты:

$ pi --exclude-tools bash -p "分析代码但不执行命令"
分析结论:该模块的性能瓶颈在循环内的重复文件读取,
建议把目录列表提到循环外,预计可减少 80% 的 I/O.

Используйте --no-builtin-tools, чтобы отключить все встроенные инструменты; ИИ может отвечать только на основе содержимого диалога, при этом расширения и пользовательские инструменты остаются доступными:

$ pi --no-builtin-tools -p "纯问答"
Quicksort 的平均时间复杂度是 O(n log n),
最坏情况是 O(n^2),出现在已排序数组上选取首元素为主元时。

Когда нужно также отключить расширения и пользовательские инструменты, переключитесь на --no-tools.


Режим JSON (--mode json)

Режим JSON выводит все события в формате JSON Lines (JSONL), подходящем для программного парсинга и обработки.

$ pi --mode json "总结项目结构"
{"type":"session","version":3,"id":"019f8c2e-7a41-7b3d-9e5f-2c6a1d84b0e7","timestamp":"2026-08-31T02-40-11-000Z","cwd":"/Users/example/projects/example-demo"}
{"type":"agent_start"}
{"type":"turn_start"}
{"type":"message_start","message":{...}}
{"type":"message_update","usage":{...},"assistantMessageEvent":{...}}
{"type":"message_end","message":{...}}
{"type":"turn_end","message":{...},"toolResults":[]}
{"type":"agent_end","messages":[...]}

Первая строка — это заголовок метаданных сессии, в котором записаны версия формата, идентификатор сессии, отметка времени и рабочий каталог.

Каждая последующая строка — это независимое событие JSON, содержащее тип события и соответствующие данные.

Этот режим подходит для следующих сценариев:

СценарийОписание
Конвейер обработки данныхПодавайте поток событий в скрипты постобработки и разбирайте/обрабатывайте его построчно
Мониторинг и анализ поведенияЗаписывайте и анализируйте каждый вызов инструмента и процесс принятия решений ИИ
Пользовательская цепочка инструментовСоздавайте собственный автоматизированный рабочий процесс на основе потока событий

Режим RPC (--mode rpc)

Режим RPC реализует межпроцессное взаимодействие через протокол JSONL поверх stdin/stdout.

Он позволяет другой программе отправлять команды через стандартный ввод и читать ответы из стандартного вывода.

Режим RPC поддерживает расширенный протокол UI, позволяя удалённым клиентам отображать интерактивные элементы, такие как диалоги подтверждения и списки выбора.

Этот режим подходит для следующих сценариев:

СценарийОписание
Плагины для редакторовИнтегрируйте Pi Agent в расширения редакторов, такие как VS Code
Пользовательский фронтендСоздайте собственный интерфейс Pi Agent на основе протокола RPC
Фоновые службыВстройте Pi Agent как подпроцесс в более крупную систему

Режим RPC и режим JSON — это продвинутые функции, предназначенные для разработчиков.

Если вы новичок, скорее всего, вам понадобятся только интерактивный режим и режим Print.

Когда вам нужно интегрировать Pi Agent в вашу цепочку инструментов, вы можете вернуться и подробно изучить эти два режима.


Сравнение режимов

Различия между тремя неинтерактивными режимами в основном проявляются в интерактивности и формате вывода; просто выбирайте согласно таблице ниже.

Pi Agent 交互、Print、JSON、RPC 四种运行模式的输入与输出对比

ModeКомандаИнтерактивностьФормат выводаПрименимые сценарии
Интерактивный режимpi (по умолчанию)Общение в реальном времениОтрисовка TUI в терминалеЕжедневная разработка, интерактивное программирование
Режим печатиpi -pОдноразовый ответОбычный текстИнтеграция со скриптами, быстрые запросы
Режим JSONpi --mode jsonПоток событий (неинтерактивный)Поток событий JSONLПарсинг программой, конвейерная обработка
Режим RPCpi --mode rpcНепрерывное общениеДвунаправленный протокол JSONLИнтеграция с редактором, взаимодействие процессов

Краткий справочник параметров CLI

В таблице ниже перечислены общие параметры команды pi, сгруппированные по назначению; их можно использовать вместе с командами в интерактивном режиме.

КатегорияПараметрОписание
Параметры модели--provider nameУказать провайдера ИИ
Параметры модели--model patternУказать ID модели; поддерживаются форматы provider/id и :thinking
Параметры модели--api-key keyПередать API-ключ напрямую (наивысший приоритет)
Параметры модели--thinking levelУровень рассуждений: off/minimal/low/medium/high/xhigh/max
Параметры модели--models patternsСписок моделей через запятую, ограничивающий диапазон переключения Ctrl+P
Параметры сеанса-c, --continueПродолжить последнюю сессию
Параметры сеанса-r, --resumeПросмотреть и выбрать исторические сеансы
Параметры сеанса--session path|idИспользовать указанный файл сеанса или UUID
Параметры сеанса--fork path|id从指定的会话派生新会话
Параметры сеанса--name, -n nameЗадать отображаемое имя сеанса
Параметры сеанса--no-sessionНе записывать сеанс
Параметры сеанса--export <input> [output]Экспортировать сеанс в HTML (путь вывода можно опустить)
Параметры инструментов--tools, -t списокДобавить указанные инструменты в белый список
Параметры инструментов--exclude-tools, -xt списокОтключить указанные инструменты
Параметры инструментов--no-builtin-tools, -nbtОтключить все встроенные инструменты
Параметры инструментов--no-tools, -ntОтключить все инструменты (режим чистого диалога)
Параметры ресурсов-e, --extension sourceЗагрузить расширения (можно повторять)
Параметры ресурсов--skill pathЗагрузить навыки (можно повторять)
Параметры ресурсов--theme путьЗагрузить темы (можно повторять)
Другие параметры-a, --approveДоверять локальным файлам проекта для этого запуска
Другие параметры--no-context-files, -ncОтключить автоматическую загрузку AGENTS.md/CLAUDE.md
Другие расширения