Extension 生命周期
先盯住一个动作
Extension 是 Pi 的 TypeScript 运行时扩展模块。它能监听会话和 Agent 事件、注册或替换工具与命令、改写输入和上下文,并增加终端 UI。
沿执行轨迹走
装载与会话生命周期
Extension 工厂在资源加载阶段注册处理器;运行时可接收 session start/switch/fork/compact/shutdown、agent/turn/message/tool、model select 等事件。
[repo] [docs]
扩展面不仅是工具
除
registerTool外,Extension 还能注册 slash command、快捷键、flags、消息渲染器、Markdown 转换器和状态栏/组件,并通过上下文请求对话框或发送消息。[repo] [docs]
重载会重建注册项
资源重载时,运行时会重新构建 Extension 注册的工具、命令与界面项。同名工具覆盖的契约见“内置工具与自定义工具”,执行隔离边界见“默认没有沙箱”。
[repo]
每一步改变了什么
复杂能力应优先写成边界清楚的 Extension,而不是持续膨胀系统提示。
安装 Extension 等价于执行本地代码,必须像审查依赖一样审查来源、依赖和更新。
这条轨迹没有说明什么
不同模式的可用 UI 能力可能存在差异;扩展接入前应按目标模式检查
ctx.mode、事件与 UI 是否可用,并提供降级路径。
来源与核验
- [repo] Pi 官方源码(固定 revision)
- [docs] Pi 官方文档
Revision:853a80d26c90a14c1886f0ebb8ffaae133ca2185 · 核验日期:2026-08-31