pi-agent-switcher

Pi extension for user-controlled agent role switching with markdown-defined agents

Packages

Package details

extension

Install pi-agent-switcher from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-agent-switcher
Package
pi-agent-switcher
Version
0.2.1
Published
Jul 22, 2026
Downloads
713/mo · 16/wk
Author
byack
License
MIT
Types
extension
Size
23.3 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-agent-switcher

Pi 扩展:通过 Markdown 定义的 Agent 文件,在主会话中手动切换 Agent 角色。

每个 Agent 拥有独立的系统提示词、工具集、模型和思考级别。Agent 定义为简单的 Markdown 文件 + YAML frontmatter。

功能特性

  • Markdown 定义 Agent — 用 .md 文件 + YAML frontmatter 定义 Agent 角色
  • 两级作用域 — 全局 Agent(~/.pi/agent/k-priagent/)和项目 Agent(.pi/k-priagent/
  • 项目覆盖全局 — 同名项目 Agent 优先于全局 Agent
  • 与 subagent 分离 — 本扩展只管主会话角色(primary agent),读取 k-priagent/~/.pi/agent/agents/ 留给 @agwab/pi-subagent 等子代理运行时独占,互不干扰
  • 系统提示词切换 — Agent 身份前置,Pi 内置上下文包裹在 <environment_context>
  • 工具集切换 — 按 Agent 限制可用工具
  • 模型切换 — 按 Agent 切换模型/提供商(如 anthropic/claude-sonnet-4-20250514
  • 思考级别切换 — 按 Agent 设置思考级别(off / low / medium / high
  • 会话持久化 — Agent 状态在会话分支间持久保存
  • 交互式选择器 UI — 搜索、导航、数字快捷选择

安装

pi install npm:pi-agent-switcher

使用方式

命令

命令 说明
/agent <name> 切换到指定 Agent
/agent 打开交互式 Agent 选择器
/agent reset 重置为 Pi 默认行为
/agents 列出所有可用 Agent

快捷键

按键 动作
Alt+A 打开交互式 Agent 选择器

交互式选择器

选择器 UI 支持:

  • ↑↓ 方向键 — 列表导航
  • 1-9 数字键 — 快捷选择
  • Enter — 确认选择
  • Esc — 取消
  • 输入过滤 — 按名称/描述模糊搜索

定义 Agent

在以下目录创建 .md 文件:

  • 全局 Agent~/.pi/agent/k-priagent/ — 所有项目可用
  • 项目 Agent.pi/k-priagent/ — 仅当前项目可用

Agent 文件格式

---
name: my-agent
description: 简短描述此 Agent 的职责
tools: read,write,bash,edit
model: anthropic/claude-sonnet-4-20250514
thinking: medium
---

你是一个专注于 [特定任务] 的专业 Agent。

你的职责:

- ...
- ...

规范:

- ...

Frontmatter 字段

字段 必需 说明
name Agent 唯一标识(用于 /agent <name>
description 简短描述,显示在 Agent 列表中
tools 逗号分隔的允许工具列表(如 read,write,bash,edit
model 模型,格式为 provider/modelId(如 anthropic/claude-sonnet-4-20250514
thinking 思考级别:offlowmediumhigh

Markdown 正文(frontmatter 之后的内容)即为 Agent 的系统提示词。

示例 Agent

代码审查员~/.pi/agent/k-priagent/code-reviewer.md):

---
name: code-reviewer
description: 专注于代码审查和质量
tools: read,bash
thinking: high
---

你是一位资深代码审查员。关注以下方面:

- 代码正确性与边界情况
- 性能影响
- 安全漏洞
- 可读性与可维护性

始终提供可操作的建议和具体代码示例。

前端开发.pi/k-priagent/frontend.md):

---
name: frontend
description: 前端专家,精通 React/Vue
model: anthropic/claude-sonnet-4-20250514
tools: read,write,bash,edit
---

你是一位前端开发专家,精通 React、Vue 和现代 CSS。
偏好组件化架构,遵循无障碍最佳实践。

工作原理

当 Agent 激活时,扩展通过 before_agent_start 事件修改 Pi 的行为:

  1. 系统提示词:Agent 的系统提示词前置(高注意力位置),Pi 内置上下文包裹在 <environment_context> 标签中
  2. 工具:若 Agent 定义了 tools 列表,则仅启用这些工具
  3. 模型:若 Agent 定义了 model,Pi 切换到该模型
  4. 思考级别:若 Agent 定义了 thinking,Pi 使用该思考配置

会话启动时,扩展从会话历史中恢复上次激活的 Agent。

调试

如果想查看 Agent 切换后最终拼装出的完整系统提示词(Agent 身份 + <environment_context>),可以使用 pi-message-capture,它能捕获并展示每次发送给模型的完整消息内容。

许可证

MIT