SuperAPI AI 工具集

pi-agent

编程与开发

查看项目

更新于 10-21 16:19

技能介绍

用途

Pi Agent 技能用于在用户希望操作 Pi 或基于 Pi 进行构建时提供指引。Pi 是一个极简的终端编码工具(coding harness),可通过 TypeScript 扩展、技能、提示模板、主题、包、自定义模型/提供商、SDK 集成、RPC 模式、JSON 事件流和 TUI 组件进行扩展。

主要能力与参考文档

该技能首先要求根据用户意图选择对应参考文档,包括:

  • 概述、文档地图、安装方式:references/overview.md
  • 安装、认证、首次运行:references/quickstart.md
  • 日常 CLI 用法、命令、模式、标志、项目信任:references/usage.md
  • 提供商认证、API 密钥、云提供商设置:references/providers.md
  • 自定义模型条目、本地模型、代理、兼容标志:references/models.md
  • 本地 llama.cpp 路由、/llama、模型下载/加载:references/llama-cpp.md
  • 设置键与默认值:references/settings.md
  • PI_* 及其他环境变量:references/environment-variables.md
  • 扩展开发、自定义工具、事件、命令:references/extensions.md
  • 自定义提供商实现、OAuth、自定义流式传输:references/custom-provider.md
  • 在 Node/TypeScript 中嵌入 Pi:references/sdk.md
  • 从其他进程/语言集成:references/rpc.md
  • 消费 JSONL 事件输出:references/json.md
  • 构建终端 UI 组件:references/tui.md
  • 打包扩展/技能/提示/主题:references/packages.md
  • 委派给子代理、链、并行运行、编排:references/pi-subagents.md
  • 连接 MCP 服务器、MCP 工具发现/配置:references/pi-mcp-adapter.md
  • 交互式访谈表单、结构化用户输入:references/pi-interview.md
  • Web 搜索、URL/PDF/仓库抓取、视频理解:references/pi-web-access.md
  • 编写 Pi 技能:references/skills.md
  • 提示模板或主题:references/prompt-templates.md、references/themes.md
  • 会话、分支、压缩、解析 JSONL:references/sessions.md、references/compaction.md、references/session-format.md
  • 安全、沙箱、信任:references/security.md、references/containerization.md
  • 键盘或终端问题:references/keybindings.md、references/terminal-setup.md、references/tmux.md、references/windows.md、references/termux.md、references/shell-aliases.md
  • 开发 Pi 本身:references/development.md

构建于 Pi 之上的默认方案

  • 对于需要类型安全、直接状态访问、进程内自定义工具/扩展或自定义资源加载的 Node/TypeScript 应用,优先使用 SDK。使用 createAgentSession() 创建单个稳定会话;当应用需要通过 new/resume/fork/clone/import 流程替换会话时,使用 createAgentSessionRuntime()。认证和模型查找通过 ModelRuntime.create() 进行。
  • 当客户端不是 Node.js、需要进程隔离或希望使用语言无关的 JSONL 协议时,优先使用 RPC 模式。以 pi --mode rpc --no-session 开始进行无状态子进程集成,然后在需要持久化时添加会话标志。仅按 \n 拆分记录——Node readline 不符合协议。
  • 对于只需要流式事件、不需要双向控制的一次性命令行管道,优先使用 JSON 模式:pi --mode json "prompt"。
  • 对于 Pi 原生行为使用扩展:自定义工具、命令处理器、事件钩子、提供商注册、自定义压缩、路径保护、项目信任策略、UI 提示、小部件和 TUI 组件。
  • 当需要在多台机器或项目间共享或安装可复用的扩展、技能、提示模板或主题时,使用包。

安全默认值

Pi 是本地运行的,默认不沙箱化。应将扩展、包、技能、shell 命令和项目本地 .pi 资源视为具有 Pi 进程权限的代码。项目信任仅保护哪些项目输入被加载——它不是沙箱。对于不受信任的仓库或无人值守的自动化,请使用 Docker、OpenShell、Gondolin、VM 或远程沙箱进行隔离。

不要将机密存储在项目文件中。优先使用环境变量、~/.pi/agent/auth.json、通过 /login 的 OAuth,或 models.json/提供商配置中由命令支持的机密查找。

常用命令

npm install -g --ignore-scripts @earendil-works/pi-coding-agent
pi
pi -p "Summarize this codebase"
pi --mode json "List files"
pi --mode rpc --no-session
pi --provider anthropic --model claude-sonnet-4-5
pi --model sonnet:high "Solve this complex problem"
pi --tools read,grep,find,ls -p "Review this repository"
pi --tui-mode fullscreen
pi install npm:pi-subagents
pi update --all

来源覆盖

这些参考文档总结了 https://pi.dev/docs/latest 上的 Pi 文档及其下所有文档页面,截至 Pi 0.84.2(文档来源:https://github.com/earendil-works/pi 中的 packages/coding-agent/docs/,原为 pi-mono)。它们还涵盖 https://pi.dev/packages/ 上 pi-subagents、pi-mcp-adapter、pi-interview 和 pi-web-access 的包页面,并与已发布的 npm README 和包文档交叉核对(pi-web-access 0.22.0、pi-mcp-adapter 2.25.0、pi-subagents 0.49.0、pi-interview 0.11.0)。当确切的 API 行为很重要时,优先使用所引用的参考页面,并检查 node_modules/@earendil-works/pi-coding-agent/dist/ 和 node_modules/@earendil-works/pi-ai/dist/ 下已安装的 TypeScript 定义。

代理操作流程

  1. 检查环境。确认目标、评估指标、预算(时间、计算、金钱)和停止标准。
  2. 确定输入。从数据或用户处确认格式、标识符和参数。对于任何会改变结果的值,应询问而非猜测。
  3. 先运行小版本。端到端运行一次迭代,并在扩大规模前检查日志。
  4. 使用上述说明和参考执行完整任务。
  5. 验证结果。在留出数据上评估;保留每次迭代、假设和结果的审计轨迹。
  6. 报告。说明运行了什么(版本、命令、参数)、检查了什么,以及仍不确定的内容。

异常处理

  • 如果某次迭代产生了可疑的巨大收益:在接受结果前检查是否存在泄漏或评估错误。
  • 如果这些说明中的函数、标志或端点在已安装版本中缺失:检查已安装版本自己的文档(help()、--help、官方文档),进行调整,并告知用户。绝不要虚构 API。
  • 如果所需的输入、标识符或参数不明确:询问用户,或在运行前明确说明假设。

完整性规则

  • 绝不要捏造结果、参数、标识符、引用或统计数据。如果某事无法运行或验证,请明确说明。
  • 记录负面结果;绝不要只选择或报告有利的运行。
  • 将此处特定版本的细节视为可能过时:请对照已安装版本的官方文档进行确认。
  • 在采取会花费金钱、消耗共享 GPU 或云配额、触及个人或患者数据,或无法撤销的操作前,请先询问。

相关技能

qiskit:使用 Qiskit 和 IBM Quantum Runtime 构建、模拟、转译和执行量子电路。