第七部分,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 属于当前任务。

typescript
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