首页 / pi-agent 入门教程 / 配置参考手册

pi-agent 入门教程

配置参考手册

本教程共 30 篇 · 第 28 篇 · 更新于 2026-08-10 · 约 16 分钟阅读

pi-agent配置参考settings字段

本节目标:拿到 settings.json 所有字段的完整速查表——每个字段的类型、默认值、说明、改了会怎样,外加三个一键复制就能用的配置模板。

第 9 章讲了配置文件在哪、全局和项目配置怎么配合。这一章不再重复那些基础概念,专注一件事:把所有字段列清楚,让你翻一次就知道查哪个字段调什么效果。

本章基于 pi v0.84.1。配置文件位置:全局 ~/.pi/agent/settings.json,项目级 .pi/settings.json


模型与推理

字段类型默认值说明变更影响
defaultProviderstring默认 AI 提供商,如 "anthropic""openai""google"改完重进交互模式生效;所有没显式指定 provider 的会话走这个
defaultModelstring默认模型 ID,如 "claude-sonnet-4-20250514"同上
defaultThinkingLevelstring默认推理等级:"off" / "minimal" / "low" / "medium" / "high" / "xhigh" / "max"设置后新会话默认用这个推理深度;交互模式里可以 Shift+Tab 临时切
hideThinkingBlockbooleanfalse设为 true 隐藏模型的推理过程块只影响显示,不影响实际推理行为
showCacheMissNoticesbooleanfalse设为 true 显示 prompt cache 未命中的提示排错时开一下有用,平时建议关着
thinkingBudgetsobject自定义各推理等级的 token 预算改了之后对应等级的最大推理 token 数变化,影响模型思考深度

thinkingBudgets 的结构:

{
  "thinkingBudgets": {
    "minimal": 1024,
    "low": 4096,
    "medium": 10240,
    "high": 32768
  }
}

只写你想改的等级就行,没写的用内置默认值。


UI 与显示

字段类型默认值说明变更影响
themestring"dark"主题名称:"dark""light",或自定义主题名交互模式颜色方案立即改变
externalEditorstring自动检测外部编辑器命令,Ctrl+G 触发下一轮按 Ctrl+G 时用新的编辑器
quietStartupbooleanfalsetrue 隐藏启动头部信息下次启动生效,界面更干净
defaultProjectTruststring"ask"项目信任默认行为:"ask" / "always" / "never"(仅全局)非交互模式下影响是否加载项目配置
collapseChangelogbooleanfalsetrue 折叠更新日志更新后显示更精简
enableInstallTelemetrybooleantruetrue 发送匿名安装/更新版本 ping关掉不影响功能,只是不发统计
enableAnalyticsbooleanfalse用户行为分析(需主动开启)打开后生成 trackingId
doubleEscapeActionstring"tree"双击 Escape 的行为:"tree" / "fork" / "none"立即生效
treeFilterModestring"default"/tree 默认过滤模式:"default" / "no-tools" / "user-only" / "labeled-only" / "all"下次打开 /tree 生效
editorPaddingXnumber0编辑器水平内边距(0-3)立即生效
outputPadnumber1消息内边距(0 或 1)立即生效
autocompleteMaxVisiblenumber5自动补全最大可见条目(3-20)立即生效
showHardwareCursorbooleanfalse显示终端硬件光标,用于 IME 输入法支持立即生效
tuiModestring"regular"TUI 模式:"regular""fullscreen"(实验性)/settings 里改立即生效,--tui-mode CLI 参数覆盖
fullscreenExitOutputstring"transcript"全屏退出时输出:"transcript" 打印全部 / "resume-hint" 只打恢复提示全屏模式退出时生效
fullscreenScrollbarstring"auto"全屏滚动条:"auto" / "always" / "hidden"立即生效

externalEditor 的典型设置:

{
  "externalEditor": "code --wait"
}

--wait 是关键的,保证 VS Code 关闭后 pi 才继续。


网络

字段类型默认值说明变更影响
httpProxystringHTTP 代理 URL,同时影响 HTTP_PROXYHTTPS_PROXY(仅全局)设置后 pi 的所有 HTTP 请求走代理
{
  "httpProxy": "http://127.0.0.1:7890"
}
Tip

如果你有多个代理(比如公司 VPN + 个人代理),httpProxy 写全局配置,个别项目在环境变量里覆盖。优先级:环境变量 > settings.json。


警告

字段类型默认值说明
warnings.anthropicExtraUsagebooleantrueAnthropic 订阅用户可能产生额外使用费时是否弹警告
{
  "warnings": {
    "anthropicExtraUsage": false
  }
}

上下文压缩(compaction)

字段类型默认值说明变更影响
compaction.enabledbooleantrue开启自动压缩下一次发送消息前生效
compaction.reserveTokensnumber16384为 LLM 响应预留的 token 数触发压缩的阈值变化——值越小越早压缩
compaction.keepRecentTokensnumber20000压缩时保留最近的 token 数,不被总结值越大保留的近期对话越多,越晚溢出但每次压缩释放的 token 越少
{
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  }
}

分支摘要(branchSummary)

字段类型默认值说明变更影响
branchSummary.reserveTokensnumber16384分支摘要预留 token 数摘要生成时可用 token 变化
branchSummary.skipPromptbooleanfalsetrue 跳过生成摘要的确认提示/tree 中切换分支时不再问

重试策略

字段类型默认值说明变更影响
retry.enabledbooleantrue开启 agent 级自动重试临时错误时自动重试,不丢会话
retry.maxRetriesnumber3最大重试次数值越大,临时错误时越能撑过去,但等候时间更长
retry.baseDelayMsnumber2000基础延迟(ms),指数退避:2s→4s→8s影响重试节奏
retry.provider.timeoutMsnumberSDK 默认提供商请求超时(ms)对响应慢的模型,调大可以避免误判超时
retry.provider.maxRetriesnumber0提供商级重试次数建议保持 0,大于 0 可能让额度耗尽类错误被 SDK 层吞掉
retry.provider.maxRetryDelayMsnumber60000服务器要求重试的最长等待时间超过这个延迟直接报错而非傻等
{
  "retry": {
    "enabled": true,
    "maxRetries": 3,
    "baseDelayMs": 2000,
    "provider": {
      "timeoutMs": 3600000,
      "maxRetries": 0,
      "maxRetryDelayMs": 60000
    }
  }
}

消息传递

字段类型默认值说明变更影响
steeringModestring"one-at-a-time"导向消息策略:"all""one-at-a-time"影响排队消息是一次发一条还是全发
followUpModestring"one-at-a-time"跟进消息策略:"all""one-at-a-time"同上,针对跟进消息
transportstring"auto"传输协议偏好:"sse" / "websocket" / "websocket-cached" / "auto"对支持多传输的提供商有效
httpIdleTimeoutMsnumber300000HTTP 空闲超时(ms),设为 0 禁用连接空闲超过此值断开
websocketConnectTimeoutMsnumber15000WebSocket 连接超时(ms),设为 0 禁用网络差时可以调大

终端与图片

字段类型默认值说明变更影响
terminal.showImagesbooleantrue终端显示图片(需终端支持)立即生效,关掉后图片以占位符显示
terminal.imageWidthCellsnumber60图片宽度(终端单元格)已显示的图片不变,新图生效
terminal.clearOnShrinkbooleanfalse内容收缩时清除空行(可能闪烁)打开后界面更紧凑但可能有闪烁
images.autoResizebooleantrue图片自动缩放到 2000x2000 以内影响 @file 附件和工具返回的图片
images.blockImagesbooleanfalse阻止所有图片发送给 LLM打开后 LLM 收不到图片内容

Shell

字段类型默认值说明变更影响
shellPathstring自定义 shell 路径(例如 Cygwin),支持 ~下次执行 bash 工具时用新 shell
shellCommandPrefixstring每个 bash 命令前加的前缀可以用来加载别名或环境
npmCommandstring[]npm 命令包装器,如 ["mise","exec","node@20","--","npm"]影响所有 npm 包管理操作

会话存储

字段类型默认值说明变更影响
sessionDirstring会话文件存储目录,支持绝对路径、相对路径和 ~新会话存到新路径;旧会话还在原位置

优先级:--session-dir > PI_CODING_AGENT_SESSION_DIR > sessionDir


模型循环

字段类型默认值说明变更影响
enabledModelsstring[]Ctrl+P 循环可用的模型模式列表立即生效
{
  "enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
}

格式和 --models CLI 参数一样,支持通配符。


Markdown 渲染

字段类型默认值说明变更影响
markdown.codeBlockIndentstring" "代码块缩进之后渲染的代码块缩进量变化
markdown.mermaidstring"streaming"Mermaid 图表渲染:"off" / "final" / "streaming""streaming" 实时渲染,"final" 等回答完再渲染

资源路径

这些字段定义扩展、技能、模板和主题从哪里加载。全局配置里写的路径相对于 ~/.pi/agent,项目配置里写的相对于 .pi。绝对路径和 ~ 也支持。

字段类型默认值说明
packagesarray[]npm/git 包,从中加载资源
extensionsstring[][]本地扩展文件路径或目录
skillsstring[][]本地 skill 文件路径或目录
promptsstring[][]本地提示词模板路径或目录
themesstring[][]本地主题文件路径或目录
enableSkillCommandsbooleantrue是否注册 /skill:name 命令

packages 支持两种写法。字符串形式加载包的全部资源:

{
  "packages": ["pi-skills", "@org/my-extension"]
}

对象形式精确控制加载哪些资源:

{
  "packages": [
    {
      "source": "pi-skills",
      "skills": ["brave-search", "transcribe"],
      "extensions": []
    }
  ]
}

数组支持 glob 模式和排除语法——!pattern 排除匹配的,+path 强制包含,-path 强制排除。


三种实用配置模板

模板一:最小配置(新手起步)

只写必填字段,其余全走默认值:

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514"
}

适用场景:刚装好 pi,只想知道这东西能不能跑。两条字段就够了。

模板二:全功能配置(日常主力)

覆盖常用偏好的完整配置:

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "theme": "dark",
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  },
  "retry": {
    "enabled": true,
    "maxRetries": 3
  },
  "enabledModels": ["claude-*", "gpt-4o"],
  "warnings": {
    "anthropicExtraUsage": true
  },
  "packages": ["pi-skills"],
  "externalEditor": "code --wait",
  "httpProxy": "http://127.0.0.1:7890"
}

适用场景:日常开发主力工具。包含了常用 provider、中等推理深度、自动压缩、重试保护、skills 包和代理设置。

模板三:本地模型配置(离线/省钱)

用 llama.cpp 跑本地模型,完全不联网:

{
  "defaultProvider": "llamacpp",
  "defaultModel": "llama3.1-8b",
  "defaultThinkingLevel": "off",
  "terminal": {
    "showImages": false
  },
  "compaction": {
    "enabled": true,
    "reserveTokens": 4096,
    "keepRecentTokens": 8192
  },
  "retry": {
    "enabled": false
  }
}

适用场景:离线环境、处理敏感代码不想出网、或者想省 API 费用的日常简单任务。推理关了(本地模型大多不支持)、图片关了、压缩 token 数调低适配小型上下文窗口。


下一章进入排错模式——安装失败、认证报错、模型连不上,这些常见问题怎么快速定位和解决。