Pi Agent 的主要安全风险来自两点:它以当前本地用户的权限运行,而且项目内容可能通过提示词注入影响模型的工具调用。项目“信任”功能可以阻止未批准的仓库自动加载部分设置、扩展和技能,但它不是沙箱,不能限制 Agent 后续读取文件、修改代码或执行命令。
Pi 是本地编码智能体,进程能够做什么,取决于启动它的操作系统账号能够做什么。若当前用户能读写整个工作目录、访问 SSH 密钥、调用云端命令行并连接内网,Pi 调用的内置工具、Shell 命令和扩展通常也处在相同权限边界内。
因此,“只让 Agent 修改一个项目”如果只是自然语言要求,并不等于系统级限制。模型可能遵守指令,但系统并没有因此撤销它对其他目录、凭据或网络的访问能力。
Pi 在项目中发现受保护资源时,会根据项目信任配置决定是否加载。相关资源包括项目级设置、扩展、技能、提示词、主题、系统提示文件,以及部分由项目配置管理的软件包。
交互模式下,默认设置会询问是否信任当前项目。信任决定按规范化目录保存在用户配置中,并允许父目录的决定作用于子目录。非交互模式不会弹出询问,需要依赖已有决定、全局默认值或一次性的批准参数。
拒绝信任可以减少仓库在会话开始前自动改变 Pi 行为的机会,但它只是一道输入加载保护。它不负责限制工具权限,也不能证明仓库代码和文本是安全的。
官方文档说明,部分上下文文件可能不受项目信任开关保护,例如常见的 Agent 指令文件和 Claude 项目说明文件,除非另外关闭上下文加载。它们的内容会进入模型上下文,因此仍可能影响模型判断。
此外,只要用户让 Pi 打开源代码、问题描述、日志、测试输出或网页内容,这些文本同样可能包含针对 Agent 的恶意指令。项目未被标记为可信,并不意味着后续手动加载的内容不会形成提示词注入。
提示词注入是指不可信内容伪装成高优先级操作要求,诱导模型偏离用户目标。普通程序把仓库文本当数据处理,Agent 却同时要理解文本并决定下一步动作,这使攻击内容有机会进入控制链路。
一个恶意仓库可能在注释、说明文件、测试失败信息或生成脚本中加入类似指令,要求 Agent:
注入文本本身通常没有操作系统权限,但如果模型采纳它并调用工具,操作就会以 Pi 进程的权限执行。
沙箱需要在操作系统、虚拟机或容器层限制文件、进程、网络和凭据。项目信任只是决定启动时加载哪些项目资源,没有建立新的系统用户,也没有过滤所有命令或网络请求。
| 能力 | 项目信任 | 系统级隔离 |
|---|---|---|
| 阻止自动加载项目扩展 | 可以 | 可通过不挂载相关文件实现 |
| 限制读取用户主目录 | 不可以 | 可以 |
| 限制 Shell 命令权限 | 不可以 | 可以 |
| 限制外部网络访问 | 不可以 | 可以 |
| 保护宿主机凭据 | 不可以 | 可通过不挂载凭据实现 |
| 消除提示词注入 | 不可以 | 不能消除,但可降低后果 |
Pi 扩展是以同等权限运行的 TypeScript 模块。它们不是只能生成建议的提示词,而是可以执行实际程序逻辑。安装包、语言服务器、测试命令和构建工具也属于普通本地进程。
信任项目前应先检查扩展来源、依赖锁文件和安装脚本。尤其要留意安装阶段自动执行的脚本、动态下载二进制文件、读取环境变量和主动联网的代码。未经审查的扩展不应在保存生产密钥的日常账号环境中运行。
批处理、JSON 模式和 RPC 模式无法在终端中临时询问信任决定。如果全局配置设置为始终信任,新下载的仓库可能在无人观察时加载项目资源;如果自动化同时拥有写权限和部署凭据,影响范围会进一步扩大。
无人值守任务应使用明确的项目清单、固定依赖和一次性环境。不要为了减少提示而把全局项目信任改成无条件允许,也不要让同一个执行身份同时拥有源码写入、生产部署和密钥管理权限。
即使容器中的目录以读写方式映射到宿主机,容器内操作仍能直接修改这些文件。需要更强保护时,应使用只读挂载,或在隔离环境内复制一份项目再工作。
最小权限的目标不是让提示词注入消失,而是让注入成功后也拿不到高价值资源。
出现以下行为时,应暂停执行并检查上下文来源:
不要只依赖模型自我判断。对高风险命令使用外部策略检查,并在执行后查看真实文件差异、进程、网络连接和远端状态。
代码能通过测试不代表没有安全问题。合并前应同时检查:
不可以。不信任只会跳过部分项目资源,之后打开的代码、文档和命令输出仍可能影响模型,工具也仍然继承当前用户权限。
不会。容器限制的是攻击后果,不会让模型自动识别所有恶意指令。仍需最小挂载、最小凭据、网络限制和人工审查。
风险较低但不是零。如果 Agent 能读取用户目录或联网,它仍可能泄露信息;分析过程中调用编译器、包管理器和语言服务器,也可能执行项目代码。
仓库所有权不等于每个依赖和历史提交都可信。仍应检查外部贡献、生成文件、子模块、包安装脚本和最近变更。
Pi Agent 的项目信任机制可以阻止仓库在批准前加载部分配置和扩展,但它不是权限隔离。Pi、扩展、Shell 和开发工具都可能以本地用户权限运行,而项目文本与构建输出中的提示词注入无法被可靠消除。处理陌生仓库或无人值守任务时,应把整个 Pi 进程放入操作系统级隔离环境,最小化挂载、网络与凭据,并在结果返回可信环境前审查差异和产物。
ubuntu20.04怎么使用蓝牙连接手机互传文件?
ubuntu系统怎么选择最佳服务器?
5Mware虚拟机安装Ubuntu 16.04.5 图文详解
用 Pi Agent 连接 Codex 或 Claude 官方账号有封号风险吗?
Pi Agent 使用 Codex、Claude 或 Gemini OAuth 会导致账号被封吗?
AI Agent 为什么更喜欢命令行?CLI 与 GUI 的真正分工是什么?