PiPi
快速开始
使用 Pi
  • 简体中文
  • English
快速开始
使用 Pi
  • 简体中文
  • English
  • 从这里开始

    • 快速开始
    • 使用 Pi
    • 提供商
    • 安全
    • 容器化
    • 设置
    • 键位绑定
    • 会话
    • 压缩与分支总结
  • 自定义

    • 扩展
    • 技能
    • 提示词模板
    • 主题
    • Pi 包
    • 自定义模型
    • 自定义提供商
  • 参考

    • 会话文件格式
  • 编程式使用

    • SDK
    • RPC 模式
    • JSON 事件流模式
    • TUI 组件
  • 平台设置

    • Windows 设置
    • Termux(Android)设置
    • tmux 设置
    • 终端设置
    • Shell 别名
  • 开发

    • 开发

容器化

Pi 默认以所有权限运行,但在某些情况下,你会希望更精细地控制 Pi 可以写入哪些目录以及它拥有哪些访问权限。

通常有两种选择。你可以

  1. 在隔离环境中运行整个 pi 进程,或
  2. 在主机上运行 pi,并将工具执行路由到隔离环境中。

选择一种模式

模式隔离的内容最适合备注
Gondolin extension内置工具和 ! 命令在将身份验证保留在主机上的同时进行本地微型 VM 隔离请参阅 examples/extensions/gondolin/。
Plain Docker本地容器中的整个 pi 进程简单的本地隔离提供商 API 密钥会进入容器。
OpenShell策略控制的沙箱中的整个 pi 进程本地或远程托管沙箱需要 OpenShell gateway

Extensions 会在 pi 进程运行的位置运行。如果你在主机上运行带有工具路由 extension 的 pi,其他自定义 extension 工具仍会在主机上运行,除非它们也委派自己的操作。

Gondolin

Gondolin 是一个本地 Linux 微型 VM。 当你希望 pi 在主机上运行,但所有内置工具都路由到 VM 中时,请使用示例 extension。

设置:

cp -R packages/coding-agent/examples/extensions/gondolin ~/.pi/agent/extensions/gondolin
cd ~/.pi/agent/extensions/gondolin
npm install --ignore-scripts

从你想要挂载的项目运行:

cd /path/to/project
pi -e ~/.pi/agent/extensions/gondolin

该 extension 会将主机 cwd 挂载到 VM 中的 /workspace,并覆盖 read、write、edit、bash、grep、find 和 ls。 用户 ! 命令也会被路由到 VM 中。 /workspace 下的文件更改会写回到主机。

要求:@earendil-works/gondolin 需要 Node.js >= 23.6.0,此外还需要 QEMU(需要通过你的包管理器安装)。

Plain Docker

当你想要最简单的本地容器边界时,在 Docker 中运行整个 pi 进程。

Dockerfile.pi:

FROM node:24-bookworm-slim

RUN apt-get update \
  && apt-get install -y --no-install-recommends bash ca-certificates git ripgrep \
  && rm -rf /var/lib/apt/lists/*
RUN npm install -g --ignore-scripts @earendil-works/pi-coding-agent

WORKDIR /workspace
ENTRYPOINT ["pi"]

构建并运行:

docker build -t pi-sandbox -f Dockerfile.pi .

docker run --rm -it \
  -e ANTHROPIC_API_KEY \
  -v "$PWD:/workspace" \
  -v pi-agent-home:/root/.pi/agent \
  pi-sandbox

-v "$PWD:/workspace" 会将你的当前目录挂载到容器中的 /workspace,使得 Docker 内部 /workspace 中的读取和写入会像 Gondolin 示例一样直接影响你的主机文件。

如果你想要容器本地的设置和会话,请为 /root/.pi/agent 使用命名卷。挂载你的主机 ~/.pi/agent 会将主机身份验证和会话文件暴露给容器。

OpenShell

当你想要具备文件系统、进程、网络、凭据和推理控制的策略控制沙箱时,请使用 NVIDIA OpenShell。 OpenShell 可以通过由 Docker、Podman 或 VM runtime 支持的本地 gateway 运行沙箱,也可以通过远程 Kubernetes gateway 运行沙箱。

每个沙箱都需要一个活动的 gateway。 在创建沙箱之前注册并选择一个:

openshell gateway add <gateway-url> --name <name>
openshell gateway select <name>

在 OpenShell 沙箱中启动 pi:

openshell sandbox create --name pi-sandbox --from pi -- pi

在这种模式下,整个 pi 进程都在沙箱中运行。 内置工具、! 命令和 extension 工具会在 OpenShell 边界内执行。

如果 gateway 是远程的,则项目文件不会从主机进行绑定挂载,这意味着沙箱中的写入不会反映到你的机器上。 在沙箱内克隆仓库,或使用 OpenShell 文件传输命令:

openshell sandbox upload pi-sandbox ./repo /workspace
openshell sandbox download pi-sandbox /workspace/repo ./repo-out

OpenShell providers 可以将原始模型 API 密钥保留在沙箱外部。 配置推理路由后,沙箱内的代码可以调用 https://inference.local,并且 gateway 会在上游注入配置好的 provider 凭据。 如果你希望模型流量使用此路由,请将 Pi 配置为使用相应的 OpenAI-compatible 或 Anthropic-compatible endpoint。

最近更新:: 2026/7/6 09:32
Contributors: seepine
Prev
安全
Next
设置