返回 AI 资讯
社区讨论LinuxDo 最新

Pi Windows 工作流第四版:工作流变化之原生 PowerShell、上下文压缩更换和插件协作

第三版以来又用了快一个月。第一次安装 Pi 的佬友可以先看前三版,这篇继续记录第三版之后的变化。 前三版 (click for more details) 本版:编写于 2026 年 9 月 5 日,Pi 0.85.0。 这次改动主要来自三件事:Pi 有了原生 PowerShell 工具;我换了一套上下文压缩方案;插件更新后,原有配置和本地扩展的部分需要对应调整。 项目 第三版 当前状态 终端工具 通过 bash 工具和 shell 配置使用 PowerShell 主会话和常规子代理显式使用原生 powershe…

内容摘要

作者:#xk128 板块:#开发调优 第三版以来又用了快一个月。第一次安装 Pi 的佬友可以先看前三版,这篇继续记录第三版之后的变化。 前三版 (click for more details) 本版:编写于 2026 年 9 月 5 日,Pi 0.85.0。 这次改动主要来自三件事:Pi 有了原生 PowerShell 工具;我换了一套上下文压缩方案;插件更新后,原有配置和本地扩展的部分需要对应调整。 项目 第三版 当前状态 终端工具 通过 bash 工具和 shell 配置使用 PowerShell 主会话和常规子代理显式使用原生 powershell 工具 上下文 原生自动压缩、pi-ultra-compact、context-mode 关闭原生自动压缩,移除 ultra-compact,改用 Magic Context;保留 context-mode 中文界面 pi-di18n 接管部分内置工具显示 移除 pi-di18n,使用 rpiv-i18n 翻译接入它的扩展界面 模型选择 Plan 角色写死模型,后台组件各自配置 Plan 角色已继承模型,Historian 用本地扩展同步;普通角色仍有固定供应商配置,下面一起说明如何改成跟随 MCP Context7、DeepWiki 提前连接 两者改为按需连接,工具是否直接暴露另行配置 通知 新增的通知插件 新增 @pi-unipi/notify,使用 Windows 桌面通知 本地扩展 plan-subagent-ceiling 保留原扩展,新增 magic-context-model-sync 同步 Historian 的模型选择 下面只展开说说上述这些影响工作流使用方式的变化。其他未提及就是没有改变。 原生 PowerShell:主会话、子代理、Plan 和权限一起调整 Pi 0.84.2 加入 defaultTools,0.84.3 加入可选的原生 powershell 工具。这两项合起来,可以让模型看到的工具名和实际使用的终端一致。 之前需要反复告诉模型:虽然工具叫 Bash,这里要按 PowerShell 的变量、引号和路径规则执行。现在主会话直接使用下面这份工具列表。 settings.json 中的当前终端配置 (click for more details) 这里起工具选择作用的是 defaultTools,不能只改 shellPath。原生 PowerShell 工具优先找 pwsh.exe,没有时才回退到 Windows PowerShell。Pi 在 Windows 上默认仍选择 Bash,需要自己显式启用 PowerShell。 另外,编辑器里的 !、!! 仍走 Bash 入口。defaultTools 也只选择内置工具。 常规子代理也要改自己的工具列表。 主会话启用了 PowerShell,不会覆盖角色配置里已经写死的 tools。我在 settings.json.subagents.agentOverrides 里同步调整了普通角色,下面以 scout 和 worker 为例: 常规子代理的 PowerShell 工具配置摘录 (click for more details) 其他常规角色也使用 powershell。这里仅摘录工具字段,合并时保留原有的思考等级、上下文继承等配置;模型如何跟随供应商切换,放到后面的模型一节统一说。 Plan 的工具选择单独配置。 我在 ~/.pi/agent/pi-plan-mode.json 的 defaultPlanTools 中加入 powershell,原有读工具、subagent、FFF 和 MCP 条目继续保留,当前文件也仍保留 bash。Plan 会对有效的 bash/powershell 工具应用有限命令策略,普通会话能执行的脚本不一定能通过 Plan 检查。 这里的 safeSubcommands 要按当前版本理解:命中自定义信任前缀后,Plan 会跳过整条命令的解析检查,无法起到只读保证。三个 plan-* 专用角色仍只保留 read/grep/find/ls。 权限插件也要认识新工具名。 权限继续使用 @gotgenes/pi-permission-system,在它的配置里补充: { "shellTools": { "powershell": { "commandArgument": "command" } } } 把这段合并到 ~/.pi/agent/extensions/pi-permission-system/config.json,原有 permission 规则保留。 因为命令规则写在 permission.bash 下。shellTools 告诉插件:名为 powershell 的工具也携带 shell 命令,命令正文在 command 参数里,要送进现有命令检查链路。只换工具名、不补这个映射,插件会把它当普通扩展工具处理。 终端规则仍按 PowerShell 7 和 UTF-8 编写,避免在原生工具外再套一层 Bash 或 cmd。普通角色即使没有 edit/write,也可能通过 PowerShell 写入文件;我自己的协作规则继续要求子代理只回传证据,由主线程修改文件。 Magic Context:安装、配置和日常更新 前情提要 Pi 有没有压缩插件推荐? 虽然 OpenAI 那边引入了新的上下文压缩方式,但是 Pi 这边还没有跟进,观望一下。 我对上下文的需求是长会话里的整理和回读:旧调查可以从当前上下文移出,需要时还能找回原始消息;不需要把每次任务都积累成跨会话长期记忆。 第三版的组合是原生自动压缩、pi-ultra-compact 和 context-mode。现在移除了 pi-ultra-compact,安装 @cortexkit/pi-magic-context。 现在三个组件这样分工: context-mode 继续负责大段工具结果的外部索引和检索。 Magic Context 给消息打标签,通过 ctx_reduce 排队移出不再需要的内容,Historian 在后台整理旧对话,需要原文时通过 ctx_expand 回读。 Pi 原生自动压缩关闭,由 Magic Context 管理这条自动整理路径。 首次安装,向导和手动安装二选一。 在 PowerShell 7 中运行官方向导: npx @cortexkit/magic-context@latest setup --harness pi --harness pi 明确指定 Pi,避免同时装了其他宿主时选错目标。向导会注册 Pi 扩展、创建 Magic Context 配置,并询问 Historian、Dreamer、Sidekick 和 embedding 的模型选择。先在 Pi 里配置好可用的供应商和模型,再按自己的需要选择;我只保留会话整理,后面会关闭长期记忆等功能。 如果不需要向导,也可以直接安装 Pi 包: pi install npm:@cortexkit/pi-magic-context 这条会把扩展加入 Pi 的 packages,但不会替你创建 magic-context.jsonc,需要自行准备。上面两个命令是两条安装路径,不用连续执行。 记得移除你的其他记忆或上下文管理插件避免冲突,例如我的: pi remove npm:pi-ultra-compact 压缩开关分别配置。 Pi 的原生自动压缩关闭,Magic Context 自己的压缩开启。 在 ~/.pi/agent/settings.json 关闭 Pi 原生压缩配置,让 Magic Context 接管。 Pi 的压缩配置 (click for more details) Magic Context 当前配置摘录 (click for more details) 这份文件在 ~/.config/cortexkit/magic-context.jsonc,不在 .pi 目录里。项目自己的 .cortexkit/magic-context.jsonc 还能覆盖用户配置。 这里关闭了长期记忆、embedding、Dreamer、Sidekick 和 Magic Context 自带 Todo。任务列表继续由现有 rpiv-todo 负责。 Historian 的模型字段和跟随主会话的办法放到下一节,手动安装时也要补上那部分。上面的内容作参考。 日常更新 : 命令 更新范围 pi update npm:@cortexkit/pi-magic-context 只更新 Magic Context 的 Pi 扩展 pi update --extensions 更新扩展包 pi update 只更新 Pi 本体 pi update --all 更新 Pi 本体和扩展包 虽然配置虽然写着 auto_update: true,但是现在 magic-context 只支持 OpenCode 插件侧的自动更新检查,不负责升级 Pi 包。Pi 这边仍使用第一条定向更新命令。 日常可以按下面的顺序操作: 正常结束当前任务和后台子代理,退出使用同一 Ma

资讯来源

LinuxDo

原文链接

打开原文