Pi 最大的特點,是它把 provider 路由、thinking 模式、會話複用和工具暴露這些关键控制點都交還给了開發者。但纯終端工作流並不會自動提供項目管理、任務编排和長期知識沉淀能力。
在真實交付場景里,决定 AI 是否能長期成為生產力的,恰恰就是這些 Pi 自己並不打算承接的工作流層。HagiCode 补上的正是這一層。
多線程並行:讓 Pi 同時跑出多条受控開發通道
Pi 在单個會話里已經能做很多事,但真實開發几乎从来不是一次只推进一個任務。
HagiCode 允许你把多個 Pi 會話並行跑起来,每個會話都有独立上下文、明确职责和各自的推进节奏。
這樣 Pi 就不再是一個“参数很多的单線程 CLI”,而是一個真正贴近工程團隊工作方式的並行工作台。
- 線程 A 在完善後端 API 接口;
- 線程 B 在重構前端元件;
- 線程 C 在编寫单元测试;
- 線程 D 在審查代碼安全漏洞。
OpenSpec 提案會話:把 Pi 的 provider 與模型選擇變成可追溯決策
在日常開發中,最容易出现的混乱不是代碼寫不出来,而是改了一堆东西之後,忘了為什么這么改、改了哪些、以及這些改動之间有什么關係。
HagiCode 内置的 OpenSpec 提案工作流从根本上解决了這個问題。每次開發任務都會以“提案”的形式启動:
對于 Pi 来说,這种結構尤其重要,因為它不仅能记录改了什么,還能记录為什么当時選擇了某条 provider 路由、某個模型来源,或者某种工具邊界。
- 先寫清楚這次要解决什么问題,為什么這樣做是合理的;
- 在提案框架下與 Pi 深入讨论技术方案,所有對話和決策都记录在提案上下文里;
- 方案确定後,Pi 在提案的约束范圍内进行代碼實现;
- 最終提案文檔、讨论记录和代碼變更形成一条完整的追溯链。
AI 提交:把 Pi 的產出沉淀成干净的提交歷史
寫完代碼之後還要寫 commit message,這件事對很多開發者来说是一种精神内耗。寫得太随意回头找不到关键提交,寫得太正式又觉得浪费時间。
HagiCode 的 AI 提交功能把這件事整個人交给了 Pi:它會分析你的代碼變更、理解改動的意圖和影响范圍,然後自動生成結構清晰、语义准确的 commit message。更关键的是,在 AI 提交的过程中,HagiCode 會自動锁定仓庫,防止並發操作导致的状態冲突,确保提交安全可靠。
你把注意力留给创造,commit message 這种流水账交给 Pi 就好。
Code Server 瀏覽器编辑:讓 Pi 的分析結果直接落到编辑動作
Pi 分析完代碼、定位到问題文件和具體行号之後,常见的尴尬發生了:你需要离開 AI 對話窗口,回到自己的 IDE 里重新找到那個文件,再手動跳到對應的位置。這個“分析→编辑”的上下文斷點,不仅打斷思路,也讓 AI 的价值只停留在“告诉你问題在哪”,走不到“直接帮你进入修改状態”。
HagiCode 内置了基于 code-server 的瀏覽器编辑器,专門解决這個斷點:
Code Server 集成讓 HagiCode 不是一個“會分析代碼的前台頁面”,而是一個真正能讓 Pi 的分析結论直接落地為编辑動作的完整工作站。它把“AI 分析”和“動手修改”之间的切换成本降到了最低。
- 一键从分析进入编辑:Pi 在提案中定位到需要修改的文件後,HagiCode 可以直接在工作台内打開该文件进入编辑状態。你不需要切换工具,也不需要重新定位文件。
- 本地、容器、遠端全覆盖:无论項目跑在本地、容器還是遠端機器上,HagiCode 的 Code Server 都能把编辑入口拉到同一個工作台里。
- Vault 直連编辑:Pi 引用到的代碼参考庫和学习項目,也可以通过 Code Server 直接打開查看。
Preset Task:把 Pi 的常见工作流封装成可複用模板
Pi 的灵活性很强,但如果每次都要手動重述 provider 選擇、工具邊界和任務框架,本身就是一种浪费。
HagiCode 的 Preset Task 机制,就是把這些重複出现的模式整理成可複用模板。它做的不只是“快捷指令”,更是一個可扩展的 Skills 集成平台:
Preset Task 讓你和 Pi 的协作从“每次都重新搭流程”升級為“直接挑流程並執行”。這時,配置能力才真正變成工程效率。
- 社区 Skills 即装即用:把成熟的審查、重構、CRUD、文檔生成流程直接匯入使用。
- 可扩展的 Skills 體系:在共享模板上叠加團隊自己的路由預設值、编码規范和检查清单。
- 可視化操作,不再靠終端记忆:選擇任務、切换参数、調整顺序,都可以在专門的界面里完成。
游戏化界面:讓 Pi 的 provider 開关和状態更直观
编程本身可以是枯燥的,但也可以是好玩的。HagiCode 的游戏化界面设計,打破了命令行工具冷冰冰的體验:
Pi 提供控制力,HagiCode 提供體验層——两者結合,才能把一個配置丰富的 CLI 變成一個真正讓人愿意天天打開的工作空间。
- 視觉反馈清晰:會話状態、運行進度和結果都不再埋在終端輸出里。
- 成就與進度可視化:提交、提案节點和交付階段都變成了可见节奏點。
- 降低操作門槛:即便不是終端重度用户,也能通过界面充分利用 Pi 的控制模型。
Agents 多代理管理:把多個 Pi 會話變成可調度 Agent 编队
並行會話本身很有价值,但当你同時開着多個會話時,真正的新瓶颈會變成“怎么調度和管理它們”。
HagiCode 的 Agents 管理層會把每個 Pi 工作单元抽象成一個有名字、可調度、状態可见的 Agent。
你面對的不再是一堆打開的終端窗口,而是一支可以被統一协调的小型 AI 開發队伍。
- Agent 身份與状態可視化:谁在運行、谁在等待、谁卡住、谁可归檔,一眼就能看清。
- 任務與 Agent 绑定:提案、審查、重構、测试等任務都可以分配给专属 Agent。
- Agent 配置独立可控:不同 Agent 可以挂不同的模型路由、Skills、工具邊界和上下文范圍,彼此互不干扰。
Monospecs 多仓庫管理:给 Pi 一张完整的仓庫地圖
實际項目中,代碼往往不在一個仓庫里。前端、後端、文檔、共享庫分散在不同仓庫,而一個功能變更可能要同時修改好几個仓庫。對 Pi 来说,单仓庫模式夠用,但它无法天然理解跨仓庫的關係——你得在每一次對話里手動告诉它“這個改動還要同步到另外两個仓庫”,這顯然是低效的。
HagiCode 的 Monospecs 机制就是為多仓庫場景而设計的結構化方案。它通过 .hagicode/monospecs.yaml 配置文件声明項目群中所有子仓庫的地址、名称和關係,讓 Pi 在启動提案時就能自動获得完整的跨仓庫地圖:
Monospecs 的价值,在 Pi 身上會更明顯,因為只有当它同時理解代碼改動范圍和模型路由范圍時,這种灵活性才真正有意义。
- 自動感知仓庫關係:Pi 可以直接从 Monospecs 中讀取 repo 圖谱,而不是反複依赖人工解释。
- 跨仓庫變更追踪:specs 留在主仓庫,代碼修改留在對應子仓庫,決策链条和實现邊界都更清晰。
- AI 提交精准识庫:HagiCode 會結合 Monospecs 自動判斷變更應落在哪個仓庫。
- 每庫可配 AGENTS.md:Pi 在不同仓庫中自動讀取相應開發约束。
Vault 跨項目知識庫:讓 Pi 记住的不止是一轮終端會話
Pi 的會話控制已經很灵活,但“能複用會話”並不等于“拥有持久知識層”。如果没有這一層,重要背景仍然會被反複重讲。
Vault 是 HagiCode 提供的跨項目持久化知識存储層,它的核心设計理念是“一次注册,處處複用”:
如果说 Monospecs 是讓 Pi 看懂項目在哪里,那 Vault 就是讓 Pi 记住你已經积累了什么。一個可配置 CLI,只有在获得持久知識支撑後,才更像長期搭檔。
- 多类型知識容器:把文件夹、代碼参考庫、Obsidian 笔记和系統托管资產統一注册进来。
- AI 上下文自動注入:新提案一启動,Pi 就能拿到合适的参考材料。
- 访问權限精细化控制:区分只讀参考庫和可编辑項目空间,讓 Pi 学得廣、改得稳。
- 跨項目知識複用:一次沉淀的模式,可以在後续提案里持續複用,而不用每次重建。
OmniRoute 模型路由:把 Pi 的 provider-first 设計真正放大
Pi 本身已經鼓励把工作流和 provider 選擇拆開,但團隊規模一大,仍然需要一個中心化的路由層来把這种灵活性用起来。
OmniRoute 把交互層和模型路由層拆開,讓 HagiCode 可以继续把 Pi 放在工作流里,同時在底層灵活切换模型来源。
這樣你就能同時获得更好的成本控制、更合适的任務匹配,以及模型供應變化時更低的迁移摩擦。
- 保留你已經习惯的 CLI 或交互方式,只替换底層模型路由。
- 一套路由策略可以被多個 Agent 和多個接入 HagiCode 的 AI 工具共享。
- 针對快速编码、深度審查、架構規划等不同任務配置不同模型路線。
- 在路由層一次調整成本與能力配置,而不是逐個工作流重複折腾。