第七部分,Pi SDK
SDK 工具选择与自定义 Tool
通过 tools、excludeTools、noTools 和 defineTool 构建最小权限 AgentSession。
内置工具选择
SDK 的 tools allowlist 可以选择 read、bash、edit、write、grep、find 和 ls。noTools all 禁用所有工具,builtin 只禁用内置工具但保留 Extension 与 custom tools。
指定自定义 cwd 时,Pi 会为该目录创建相应工具。服务端必须先验证 cwd 属于当前任务。
const { session } = await createAgentSession({
cwd: "/workspace/project",
tools: ["read", "grep", "find", "ls"],
sessionManager: SessionManager.inMemory("/workspace/project"),
});defineTool
defineTool 适合在 SDK 外部创建可复用工具定义。参数由 TypeBox 描述,execute 仍要执行权限和业务校验。
customTools 会与 ResourceLoader 中 Extension 工具合并。若同时设置 tools,必须包含自定义工具名称才会启用。
官方资料
本页由 xueai 根据 Pi 官方资料用中文重新组织和讲解。Pi 更新频繁,命令、包名和接口以官方最新文档为准。
Pi 源代码和官方文档采用 MIT License。Copyright (c) 2025 Mario Zechner。本站保留原版权与许可声明,完整文本见 MIT License。