自动负载均衡服务

pi-auto是一个提供自动负载均衡和高可用性策略的MCP服务器,用于管理Pi编码代理的后端服务使用情况。

  • by netandreus
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 netandreus/pi-auto

使用说明

pi汽车

pi汽车 是一个 Pi包 它提供了pi auto MCP服务器和技能 pi编码剂:使用数据来自 @球菌/pi 以及通过策略切换活跃提供商的工具-- 负载平衡 (均衡后端的使用)或 高可用性 (固定优先级顺序)。


先决条件

在使用pi-auto之前,请安装以下内容(全局):

依赖关系 描述
Pi编码代理 Pi CLI和编码代理(需要 pi 和扩展)。
@球菌/pi Pi代理使用跟踪;由MCP服务器用于使用数据。
别名 ccusage 运行快捷方式 @ccusage/pi (见下面的bash)。
pi-mcp适配器 Pi的MCP适配器(运行MCP服务器所需)。
@netandreus/pi游标提供程序 Pi的游标提供程序(可选;用于CursorAI后端的使用/策略)。

示例:全局安装并设置 ccusage 别名

# 1. Pi Coding Agent
npm install -g @mariozechner/pi-coding-agent

# 2. Usage tracking (for pi-auto)
npm install -g @ccusage/pi

# 3. Alias for ccusage (pick one: bash or zsh)
echo "alias ccusage='npx @ccusage/pi@latest'" >> ~/.bashrc
# echo "alias ccusage='npx @ccusage/pi@latest'" >> ~/.zshrc

# 4. Pi MCP adapter (run after Pi is installed)
pi install npm:pi-mcp-adapter

# 5. Cursor provider for Pi (optional)
pi install npm:@netandreus/pi-cursor-provider

然后重新加载shell(例如。 source ~/.bashrc 或 source ~/.zshrc)所以 ccusage 可用。


安装(Pi)

先决条件: 在Pi中安装MCP适配器,使其可以运行MCP服务器:

pi install npm:pi-mcp-adapter

安装pi auto软件包(技能自动加载):

pi install npm:@netandreus/pi-auto

或者从git:

pi install git:github.com/netandreus/pi-auto

MCP配置: 将MCP服务器添加到pi的配置中,以便代理可以调用工具。

~/.pi/agent/mcp.json (或您的pi MCP配置路径):

如果您是通过安装的 pi install npm:@netandreus/pi-auto,pi使用全局npm;指向已安装的软件包。使用二进制名称(在包的全局npm安装后):

{
  "mcpServers": {
      "pi-auto": {
        "command": "pi-auto-mcp",
        "lifecycle": "keep-alive",
        "directTools": true
      }
  }
}

或者使用显式路径(替换 GLOBAL_NPM_ROOT 随着输出 npm root -g):

{
  "mcpServers": {
      "pi-auto": {
        "command": "node",
        "args": ["GLOBAL_NPM_ROOT/@netandreus/pi-auto/dist/index.js"],
        "lifecycle": "keep-alive",
        "directTools": true
      }
  }
}

外露工具: mcp_pi-auto_pi_get_usage, mcp_pi-auto_pi_suggest_provider, mcp_pi-auto_pi_set_provider, mcp_pi-auto_pi_get_provider, mcp_pi-auto_pi_get_strategy, mcp_pi-auto_pi_set_strategy, mcp_pi-auto_pi_get_priority, mcp_pi-auto_pi_set_priority.

技能: 安装软件包后,技能会自动加载。调用 /skill:pi-auto 或者询问使用情况、平衡成本或更换提供商。


游标代理中的MCP

从以下位置使用pi auto MCP服务器 光标代理 (不仅来自Pi),连接服务器,启用它,并允许它的工具。

1.将MCP服务器连接到代理

将pi auto MCP服务器添加到Cursor的MCP配置中(例如。 ~/.cursor/mcp.json):

{
  "mcpServers": {
    "pi-auto": {
      "command": "pi-auto-mcp",
      "lifecycle": "keep-alive",
      "directTools": true
    }
  }
}

2.启用MCP服务器

服务器可能显示为“未加载(需要批准)”。启用并批准它:

agent mcp list
# pi-auto: not loaded (needs approval)

agent mcp enable pi-auto
# ✓ Enabled and approved MCP server: pi-auto

检查工具是否可用:

agent mcp list-tools pi-auto
# Tools for pi-auto (8):
# - pi_get_priority ()
# - pi_get_provider (scope, projectPath)
# - pi_get_strategy ()
# - pi_get_usage (period)
# - pi_set_priority (priority)
# - pi_set_provider (provider, model, scope, projectPath)
# - pi_set_strategy (strategy)
# - pi_suggest_provider (period)

3.允许使用此MCP中的工具

确保允许游标代理调用pi auto MCP工具。在 ~/.cursor/cli-config.json,下 permissions.allow,包括:

"permissions": {
  "allow": [
    "Shell(ls)",
    "Mcp(pi-auto:*)"
  ],
  "deny": []
}

特性

工具 说明
pi_get_用法 给定时间段(例如每天)内每个后端(Claude Code、OpenAI Codex、CursorAI)的当前使用量(令牌/成本)。
pi_suggest_提供者 推荐 provider 和 model 基于当前的战略和优先事项。
pi_set_provider 写圆周率 defaultProvider 和 defaultModel (全球或项目范围)。
pi_get_提供者 读取当前pi默认提供程序和模型。
pi_get策略 / pi_set_策略 获取或设置策略: load-balancing 或 high-availability.
pi_get_优先级 / pi_set_priority 获取或设置HA优先级顺序(例如。 ["codex", "claude-code", "cursorai"]).

配置

要求: 节点18+,以及(用于使用数据) @球菌/pi 可通过 npx.

环境

变量 描述
PI_AGENT_DIR 覆盖pi代理会话目录(调用时使用 @ccusage/pi;默认值: ~/.pi/agent/sessions).
CCUSAGE_MCP_SETTINGS_PATH 覆盖圆周率的路径 全球 设置文件(默认值: ~/.pi/agent/settings.json).

服务器配置

策略和优先级存储在 ~/.pi/agent/pi-auto.json.

例子:

{
  "strategy": "load-balancing",
  "priority": ["codex", "claude-code", "cursorai"],
  "defaultModels": {
    "claude-code": { "provider": "anthropic", "model": "claude-sonnet-4-20250514" },
    "codex": { "provider": "openai", "model": "gpt-4o" },
    "cursorai": { "provider": "cursor", "model": "auto" }
  }
}
字段 描述
策略 "load-balancing" (默认)或 "high-availability".
优先级 HA后端ID的有序列表;首选第一种。有效ID: claude-code, codex, cursorai.
DefaultModels 每个后端的提供者/模型的可选覆盖(必须与您安装的pi提供者匹配)。

使用策略

  • 负载平衡 — pi_suggest_provider 使用以下命令选择后端 最低 当前使用情况(令牌总数)。使用 pi_get_usage 查看每个后端的总计;然后打电话 pi_suggest_provider 并且可选 pi_set_provider 切换。
  • 高可用性 — pi_suggest_provider 返回 第一 后端在 priority (及其默认模型)。使用 pi_set_priority 更改顺序(例如,首选Codex,然后是Claude,然后是CursorAI)。

当您需要平衡成本或确保首选提供商时,请使用pi auto工具:获取/设置策略和优先级,获取当前提供商,获取使用情况,建议提供商,并设置为 pi_set_provider.


后端映射

使用来源 @ccusage/pi (与 --json --breakdown)映射到三个后端:

后端 源
克劳德代码 anthropic / claude-* 模型
OpenAI 代码专家 openai / gpt-* 模型
CursorAI cursor (例如。 @netandreus/pi游标提供程序)

您可以在中覆盖映射和默认模型 ~/.pi/agent/pi-auto.json 如果您的设置不同。


发布(npm)

发布到 npmjs.com:

  1. 登录: npm login (使用有权访问的帐户 @netandreus 范围)。
  2. 凹凸版本 在 package.json (例如。 0.1.0 → 0.1.1).
  3. 构建和发布:
    npm publish
    (跑步 prepublishOnly → yarn build,然后出版;作用域包通过以下方式作为公共包发布 publishConfig.access.)

查看将包含哪些内容: npm pack --dry-run.


许可证

麻省理工学院