AI 简明手册
Pi 源码解读 · 扩展与集成Extension 生命周期

Extension 生命周期

先盯住一个动作

Extension 是 Pi 的 TypeScript 运行时扩展模块。它能监听会话和 Agent 事件、注册或替换工具与命令、改写输入和上下文,并增加终端 UI。

沿执行轨迹走

  1. 装载与会话生命周期

    Extension 工厂在资源加载阶段注册处理器;运行时可接收 session start/switch/fork/compact/shutdown、agent/turn/message/tool、model select 等事件。

    [repo] [docs]

  2. 扩展面不仅是工具

    除 registerTool 外,Extension 还能注册 slash command、快捷键、flags、消息渲染器、Markdown 转换器和状态栏/组件,并通过上下文请求对话框或发送消息。

    [repo] [docs]

  3. 重载会重建注册项

    资源重载时,运行时会重新构建 Extension 注册的工具、命令与界面项。同名工具覆盖的契约见“内置工具与自定义工具”,执行隔离边界见“默认没有沙箱”。

    [repo]

每一步改变了什么

  • 复杂能力应优先写成边界清楚的 Extension,而不是持续膨胀系统提示。

  • 安装 Extension 等价于执行本地代码,必须像审查依赖一样审查来源、依赖和更新。

这条轨迹没有说明什么

  • 不同模式的可用 UI 能力可能存在差异;扩展接入前应按目标模式检查 ctx.mode、事件与 UI 是否可用,并提供降级路径。

来源与核验

  1. [repo] Pi 官方源码(固定 revision)
  2. [docs] Pi 官方文档

Revision:853a80d26c90a14c1886f0ebb8ffaae133ca2185 · 核验日期:2026-08-31