# @blackbelt-technology/pi-anthropic-messages 中文文档

规范地址：https://npmcn.com/package/%40blackbelt-technology/pi-anthropic-messages/

版本：0\.3\.5
npm 元数据更新时间：2026-10-28T15:30:12.577Z
中文译文更新时间：2026-11-08T05:45:39.090Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40blackbelt-technology/pi-anthropic-messages
原文对照：https://npmcn.com/package/%40blackbelt-technology/pi-anthropic-messages/?lang=original
项目主页：https://github.com/BlackBeltTechnology/pi-anthropic-messages#readme
源码仓库：https://github.com/BlackBeltTechnology/pi-anthropic-messages

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：62.5 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@earendil-works/pi-coding-agent \>=0\.74\.0
- 首次发布：2026-05-16T14:10:28.107Z
- 最新版本发布：2026-10-28T15:30:11.741Z
- 近 30 天下载量：3743（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

退役——未上架. 使用 Pi-agent-dashboard 的 Claude 订阅相容开关代替. i 的 Anthropic- messages 协议桥。 任何人类- messages API 会话的激活( Anthropic OAuth/ API- key + 代理提供方): canonicalize since pi co

## 安装

```sh
npm install @blackbelt-technology/pi-anthropic-messages
```

也可以使用：`pnpm add @blackbelt-technology/pi-anthropic-messages`、`yarn add @blackbelt-technology/pi-anthropic-messages`、`bun add @blackbelt-technology/pi-anthropic-messages`

## README

# @blackbelt-technology/pi-harmic-messages (原始内容存档于2019-03-21)

> **(原始内容存档于2026-10-28). ReTIRED (2026-10-28). 解开这个包裹.**
> 
> ```bash
> pi remove npm:@blackbelt-technology/pi-anthropic-messages
> rm -f /tmp/pi-am.log   # versions ≤ 0.3.4 wrote every prompt here
> ```
> 
> 现场测试显示工具重命名对克洛德订阅账单没有任何影响. 只有两行Pi的内置 `docs` 提示区块物质( “ pi 本身 ”, "皮包"). pi -agent -dashboard 现在用它来处理这个 **克劳德 订阅比较** 切换(默认关闭,在 `anthropic` 提供者行, 适用于主会话和流线剂 (单位:千美元)[pi- agent- dashboard 键盘 `f59e34aa3`](https://github.com/BlackBeltTechnology/pi-agent-dashboard/commit/f59e34aa3)) (中文(简体) ). 此包中的工具重命名也会导致工具被去掉中聊天时产生400个. 将每个请求的有效载荷记录到世界可读的版本 `/tmp/pi-am.log`· ; 0.3.5 清除了伐木,是最后释放. 调查结果: [`docs/reports/2026-10-28-bridge-necessity-report.md`](https://npmcn.com/package/%40blackbelt-technology/pi-anthropic-messages/docs/reports/2026-10-28-bridge-necessity-report.md)。 。 。 .

与 pi 说话时的协议级桥 **克劳德模型** 人类信息端点——直接Anthropic(OAuth或API键), 9号路透社 `cc/claude-*`配有克洛德后端的Pi-model-proxy,或任何其他 代号: Claude 代码味的交通通过 人类信息消息API.

## 它会做什么

Claude Code的上行端点 接受完全三种花样中的工具:

1.  **Claude 核心代码工具** 以警名命名—— `Read`, (中文(简体) ), `Write`, (中文(简体) ), `Edit`, (中文(简体) ), `Bash`, (中文(简体) ), `Grep`, (中文(简体) ), `Glob`, (中文(简体) ), `AskUserQuestion`, (中文(简体) ), `Agent`, (中文(简体) ), `WebFetch`, (中文(简体) ), `WebSearch`,, , , , , , , ,
2.  **MCP工具**,即任何名字以 `mcp__<server>__`。 。 。 .
3.  **原生工具** (单位:千美元)`computer_use`, (中文(简体) ), `text_editor_20241022`(......) (中文(简体) ).

pi-coding-agent 在小写名下注册其内置工具 (单位:千美元)`read`, (中文(简体) ), `bash`, (中文(简体) ), `edit`, (中文(简体) ), `write`, (中文(简体) ), `grep`)和扩展注册自定义 pi 工具在名称下 `ask_user`, (中文(简体) ), `web_search`, (中文(简体) ), `fetch_content`, (中文(简体) ), `subagent`没有一个符合克劳德密码的允许名单 没有干预,他们要么被剥去 或结束点芒果 他们有一个 `_ide` 后缀。 模特儿又回到幻觉中 `bash_ide` 而每个工具呼叫都失败了.

此扩展干涉协议层 :

-   **出境** (单位:千美元)`before_provider_request`: 将 pi 工具名改写为 末端接受的东西。 Canonical pi 核心工具(`read`, (中文(简体) ), `write`, (中文(简体) ), `bash`, (中文(简体) ), `grep`成为他们的克洛德代码资本化(`Read`, (中文(简体) ), `Write`, (中文(简体) ), `Bash`, (中文(简体) ), `Grep`) (中文(简体) ). 其它的都已经不是了 `mcp__*`\- 前缀或化名为Anthropic-native工具 `mcp__pi__<name>`。 。 。 . `tool_choice.name` 和历史 `tool_use` 块 消息历史得到相同的重写。 系统提示轻快 重写( n)`pi` → `the cli`所以克劳德密码的身份指纹不会 旅行在"pi"这个词.
-   **入境** (单位:千美元)`message_end`:翻译模型重命名为工具的调用 在代理发送之前, 恢复到他们原来的 pi 名称, 所以存在 工具注册无需修改。 一个防守 `_ide` 后缀 脱衣舞可以处理克洛德代码端点操纵反应的个案. 直接以克洛德密码名称注册的工具(例如. `Agent`, (中文(简体) ), `AskUserQuestion`) 覆盖端到端:反向映射 包含一个身份条目 `Agent_ide` 将字条带回注册 `Agent` 处理者.

工具注册本身从未变异过 – 每个 pi 扩展 继续用原名登记其工具和桥梁 透明地处理翻译.

## 启动——单一紧门

桥只在这两个控件都用于活动时激活 会议模式:

1.  `ctx.model.api === "anthropic-messages"`
2.  `/claude/i.test(ctx.model.id ?? "")` ——型号代号包含: 大小写不敏感子字符串 `claude`

```ts
// Simplified:
function isClaudeAnthropicMessages(ctx) {
  return ctx.model?.api === "anthropic-messages"
      && /claude/i.test(ctx.model?.id ?? "");
}
```

当闸门失效时——即会话瞄准一个非克洛德模型在 人类信息(如:. `9Router/glm/glm-5`, (中文(简体) ), `9Router/gemini/gemini-3-pro-preview`或任意 `api` 其他 `anthropic-messages` —— 说 **每个钩子处理器都是真的**: 无工具 重命名, 无 `mcp__pi__` 前缀,没有系统提示重写,没有反向映射, 没有 `_ide` 脱衣服 工具名流经Pi的注册,没有改变.

这是蓄意的: `mcp__pi__` 名称空间和犬壳是 克劳德法典公约. 碰巧发言的非克劳德终点 人类信息格式不关心它们, 桥梁不应该 强制他们.

### 逃生舱

有两个环境变量 超过门 对于罕见的情况 与意图不符:

| 变量 | 效果 |
| --- | --- |
| `PI_ANTHROPIC_MESSAGES_FORCE_CANONICAL=1` | 强制打开任何门 `anthropic-messages` 不分型号编号。 对克劳德型号具有不寻常的ID(例如. `c4-omega`) (中文(简体) ). |
| `PI_ANTHROPIC_MESSAGES_DISABLE_CANONICAL=1` | 迫使大门关闭 即使Claude匹配的会话。 用于假阳性(如非克洛德模型,其id恰好包含"克洛德"). |

两者都需要 `api === "anthropic-messages"`。对于任何其它的 Api the 桥总是不开放.

## 对于软件包作者

### 简本

以自然名称注册工具 :

```ts
pi.registerTool({ name: "my_tool", /* … */ });
```

对于克劳德模型 人类信息会议,桥梁自动 发送 `my_tool` 接线为 `mcp__pi__my_tool` 并翻译 模型的回复 `my_tool` 在派来之前 为了其他一切 提供商(OpenAI、Google、Bedrock、非克洛德人类信息) 名称作为 -is 发送。 不需要配置 .

### 何时以冠名注册

如果你的工具拥有 **确切名称和相容计划** 带有 claude 代码工具( 见 [Claude 代码工具参考](https://docs.claude.com/en/docs/claude-code/tools-reference), (中文(简体) ), 其准确资本化程度:

```ts
pi.registerTool({
  name: "Agent",          // matches canonical CC Agent tool
  parameters: /* … */     // schema compatible with CC's Agent
});
```

使Anthropic的地表变得土生土长 渲染(例如克劳德应用中的"代理"卡). 桥的 `CC_CANONICAL_NAMES` 设置列表中每个被接受的单词名称.

**别** 如果你的计谋与犬科不同.. 模型会产生幻觉 犬形的参数 和你的处理者 失败。 当有疑问时,请使用天然小写/ snake case 名称并让 页:1 `mcp__pi__` 前缀处理它.

### 没有等同 pi 的工具

克劳德代码 `WebSearch`, (中文(简体) ), `WebFetch`, (中文(简体) ), `AskUserQuestion`, (中文(简体) ), `TodoWrite`, (中文(简体) ), `NotebookEdit`, (中文(简体) ), `ExitPlanMode`, (中文(简体) ), `EnterPlanMode`, (中文(简体) ), `KillShell`, (中文(简体) ), `Skill`, (中文(简体) ), 等无直接的pi等同. 你不需要做任何事情 关于 他们。 如果没有扩展登记这些名称下的工具,该模型 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}这段会话根本就没有它们 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}pi提供功能 等值 `mcp__pi__*` (单位:千美元)`mcp__pi__ask_user`, (中文(简体) ), `mcp__pi__web_search`, (中文(简体) ), `mcp__pi__fetch_content`,并使用该模型 换成这些.

## Schema 适配器( 计划)

### 问题:名字别名还不够

重命名 `web_search` → `WebSearch` 电线上给模型一个 它从训练中认出了警犬的名字, 但模型后来叫 工具为 **Claude 代码的预期输入形状**而不是Pi's的。 \\ N 这个 计划不匹配:

| 工具 | 克洛德密码学计划 | Pi 扩展计划 | 差距 |
| --- | --- | --- | --- |
| `web_search` → `WebSearch` | `{ query, allowed_domains?, blocked_domains? }` | `{ query?, queries?[], numResults?, recencyFilter?, domainFilter?[], provider?, workflow?, includeContent? }` | CC 是一个严格的子集; pi 支持多query, recernency 过滤, 提供者选择, 内容预选 |
| `fetch_content` → `WebFetch` | `{ url, prompt? }` | `{ url?, urls?[], prompt?, timestamp?, frames?, forceClone?, model? }` | CC是一个严格的子集; pi 支持多URL,视频帧提取, GitHub 克隆 |
| `get_subagent_result` → `TaskOutput` | `{ task_id, wait?, verbose? }` | `{ agent_id, wait?, verbose? }` | 近同; 字段重命名 `task_id` ↔ `agent_id` |
| `ask_user` → `AskUserQuestion` | `{ question, options?[], allow_multiple? }` | `{ method: confirm|select|multiselect|input|batch, prompt, options?[], questions?[] }` | 基本不同的模式——Pi带有分批支持的受歧视的结合失去了太多的表达力,无法适应 |

没有计划翻译, 仅名化名会导致模型发送 罐形输入( c)`{ query: "foo" }`{\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}给一个想要派的经理 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080} 形状,它静静地工作,但 **模型永远不会发现或使用pi的 较丰富的特征** (多清,复用,域过滤等.

### 解决方案:每个工具绑定适配器

从犬科化中受益的每个工具都有一个 **工具键** 与 一种可翻译出 canonical 有线电图和pi的调适器 处理器计划 :

```ts
export interface ToolBinding {
  /** Pi's registered tool name. */
  piName: string;

  /** Canonical name visible on the wire / to the model. */
  canonicalName: string;

  /**
   * Schema strategy:
   *   passthrough — pi's schema under the canonical name, zero translation.
   *   canonical   — canonical schema only; adaptInput required.
   *   hybrid      — canonical fields + pi-specific extras exposed.
   */
  schemaStrategy: "passthrough" | "canonical" | "hybrid";

  /** Schema sent to the model. Omitted for passthrough. */
  canonicalSchema?: TSchema;

  /** Reshape model's canonical input → pi handler's expected input. */
  adaptInput?: (wireInput: unknown) => unknown;

  /** Reshape pi's result → canonical result (rarely needed). */
  adaptOutput?: (piResult: unknown) => unknown;
}
```

这个 **混合** 战略是富于特色的pi工具的甜点: 揭开模型所训练的犬科领域 _加号_ 特定 pi 额外,所以模型可以使用任意一种形状. 适配器恢复正常 无论模型产生什么结果.

### 计划的约束

| Pi 工具 | 光学 | 战略 | 理由 |
| --- | --- | --- | --- |
| `web_search` | `WebSearch` | **混合** | 展览 `query` + CC 域名 + pi 外加 (`queries[]`, (中文(简体) ), `recencyFilter`, (中文(简体) ), `numResults`) (中文(简体) ). 适配器合并 `allowed_domains`编号 :`blocked_domains` {\\fn黑体\\fs20\\shad2\\2ah82\\3ah20\\4ah33\\fscx95\\3ch592001\\be1}你觉得呢 `domainFilter[]` (前缀) `-` ”). |
| `fetch_content` | `WebFetch` | **混合** | 展览 `url` + 键 `prompt` + pi 额外费用(`urls[]`, (中文(简体) ), `timestamp`, (中文(简体) ), `frames`) (中文(简体) ). 适配器规范化 `url`编号 :`urls` 到pi的形状. |
| `get_subagent_result` | `TaskOutput` | **犬类** | 近一分一计. 适配器重命名 `task_id` → `agent_id`。 。 。 . |
| `ask_user` | —— 说 | **跳过** | 皮氏受歧视的结合`confirm`编号 :`select`编号 :`multiselect`编号 :`input`编号 :`batch`)在本质上比CC的平面更丰富 `AskUserQuestion`。适应将失去批量支持、输入确认UX和多选择语义。 保持原样 `mcp__pi__ask_user`。 。 。 . |

### 适配器的数据流

```
  OUTBOUND (before_provider_request)
  ──────────────────────────────────
  1. Find binding by pi tool name
  2. Replace tool.name with binding.canonicalName
  3. If hybrid/canonical: replace tool.input_schema with binding.canonicalSchema
  4. Rewrite historical tool_use blocks in messages (name + input if needed)

  INBOUND (message_end)
  ─────────────────────
  1. Find binding by canonical name on tool_use block
  2. Restore tool_use.name to binding.piName
  3. If adaptInput defined: tool_use.input = binding.adaptInput(tool_use.input)
  4. Pi dispatches to original handler with pi-shaped arguments ✓
```

### 适应者实例 : `web_search → WebSearch`

```ts
// Hybrid schema: CC canonical fields + pi extras.
// Model can use either { query, blocked_domains } (CC-trained)
// or { queries, recencyFilter, numResults } (pi-specific).
const webSearchBinding: ToolBinding = {
  piName: "web_search",
  canonicalName: "WebSearch",
  schemaStrategy: "hybrid",
  canonicalSchema: Type.Object({
    query:             Type.Optional(Type.String()),
    allowed_domains:   Type.Optional(Type.Array(Type.String())),
    blocked_domains:   Type.Optional(Type.Array(Type.String())),
    // pi extras:
    queries:           Type.Optional(Type.Array(Type.String())),
    numResults:        Type.Optional(Type.Number()),
    recencyFilter:     Type.Optional(StringEnum(["day","week","month","year"])),
  }),
  adaptInput: (cc: any) => {
    const out: Record<string, unknown> = {};
    // Prefer queries[] over query (pi's richer multi-query)
    if (cc.queries?.length) out.queries = cc.queries;
    else if (cc.query)      out.query = cc.query;
    // Merge CC domain fields → pi's unified domainFilter[]
    const dom: string[] = [];
    if (cc.allowed_domains) dom.push(...cc.allowed_domains);
    if (cc.blocked_domains) dom.push(...cc.blocked_domains.map((d: string) => `-${d}`));
    if (dom.length)         out.domainFilter = dom;
    if (cc.numResults    !== undefined) out.numResults    = cc.numResults;
    if (cc.recencyFilter !== undefined) out.recencyFilter = cc.recencyFilter;
    return out;
  },
};
```

### 动态约束性登记

约束力可以两种方式登记:

1.  **内建** ——运入 `extensions/bindings/` 在此软件包中 建议的延长期限`web_search`, (中文(简体) ), `fetch_content`, (中文(简体) ), `get_subagent_result`) (中文(简体) ).
    
2.  **动态** - 任何扩展可在运行时通过下列方式登记约束: 共享 `globalThis` 登记册,支持两个安装顺序 假设情况:
    

```ts
// In any extension's onLoad / session_start:
const registry = (globalThis as any).__piAnthropicBindings__;
if (registry) {
  registry.register({
    piName: "my_tool",
    canonicalName: "MyCanonical",
    schemaStrategy: "passthrough",
  });
}
```

桥上暴露了登记册 `globalThis.__piAnthropicBindings__` 在负载时间。 如果桥没有安装,财产就不存在了 编辑 `if (registry)` 警卫是没有的——零接合.

对于 **命令独立安装** (桥梁载重于其他 扩展),双方使用对称的放出和收听模式:

-   每个要注册有约束力电话的扩展名 `declareToolBinding()` 在负载时间。 这都释放了束缚 立即订阅未来 `request_bindings` 事情是这样 如果桥再装入的话,可以重新装入.
-   大桥订户 `register_binding` 事件和发射 `request_bindings` 已经运行的扩展重播.
-   **结果**:无论负载顺序如何,所有绑定物都趋同.

### 优先发言 `resolveOutboundName` (带有适配器)

适配器安装后,出站名称分辨率将获得新的 最高优先级:

```
  1. binding registry (new)     ← adapter-equipped, schema translation
  2. CC_CANONICAL_NAMES          exact-case passthrough (name only)
  3. already mcp__*              passthrough
  4. NATIVE_ALIASES (legacy)     name-only alias
  5. FLAT_TO_MCP                 companion aliases
  6. PI_TO_CC_CANONICAL          core tool capitalization
  7. default                     mcp__pi__<name>
```

### 测试战略

每个绑定适配器都是纯函数(`wireInput → piInput`测试 在隔离中——没有接线,没有钩子,没有嘲笑:

```ts
test("blocked_domains → negative domainFilter entries", () => {
  expect(webSearchBinding.adaptInput({
    query: "foo", blocked_domains: ["reddit.com", "x.com"]
  })).toEqual({
    query: "foo", domainFilter: ["-reddit.com", "-x.com"]
  });
});

test("queries[] preferred over query", () => {
  expect(webSearchBinding.adaptInput({
    query: "A", queries: ["B", "C"]
  })).toEqual({ queries: ["B", "C"] });
});
```

### 卡通式漂移

Anthropic可能会随着时间推移更新工具计划. 缓解:

-   保留 `canonicalSchema` **最小** - 只有地图字段我们实际上 翻译。 更小的地块 = 更小的漂移地表.
-   将 Claude 代码文件版本插入每个装订的评论中 .
-   混合战略是部分自愈——未知的犬种地 流经适配器未动(pi handler忽略了它们).

## MCP 命名公约

MCP命名空间公约是 `mcp__<server>__<tool>` 地点 `__` (双下划线)是分块划分符。 工具名称部分 - 第二次之后的任何东西 `__` ——可自由包含单下划线:

```
mcp__pi__web_search               ✓  server=pi, tool=web_search
mcp__pi__get_subagent_result      ✓  server=pi, tool=get_subagent_result
mcp__exa__get_code_context        ✓  server=exa, tool=get_code_context
```

即使Claude代码的终点 附加它 `_ide` 后缀, 分隔符 `__` 保存着 :

```
mcp__pi__web_search_ide           server=pi, tool=web_search_ide
```

该桥的倒图取景基于地图( 不) `split("__")`\- 依据, 因此,工具机构的单一下划线永远不会与段相混淆 断取者. 这个 `_ide` 操纵是由一个后缀处理的 重试.

## 配置

大多数用户不需要任何配置. 默认的船是明智的 值 :

-   `CC_CANONICAL_NAMES` - 确切的克洛德代码的术语 穿过没有改变.
-   `PI_TO_CC_CANONICAL` 小写核心工具 资本化(`read` → `Read`, (中文(简体) ), `write` → `Write`, (中文(简体) ), `bash` → `Bash`, (中文(简体) ), `grep` → `Grep`) (中文(简体) ).
-   `FLAT_TO_MCP` 著名的第三方伙伴, 反重力论.
-   `NATIVE_ALIASES` —— 说 **默认空**输入 `core-tools.ts` 若为 您想要将一个 pi 工具化为其 Anthropic 本地当量(例如) . `ask_user` → `AskUserQuestion`) (中文(简体) ). 只有在你核实后才能启用 计划是相容的 输入.

### 环境变量

| 变量 | 目的 |
| --- | --- |
| `PI_ANTHROPIC_MESSAGES_FORCE_CANONICAL=1` | 强制打开任何人类信息会话的大门, 不论模式 ID . |
| `PI_ANTHROPIC_MESSAGES_DISABLE_CANONICAL=1` | 迫使大门关闭 即使Claude匹配会议. |

## 安装( 本地)

```bash
pi install -l /home/botond/pi-packages/pi-anthropic-messages
```

或者来自 GitHub (SSH):

```bash
pi install git@github.com:BlackBeltTechnology/pi-anthropic-messages.git
```

## 建议的挂板扩展

`pi-agent-dashboard` 装入船体的船体 包括这座桥(Claude-model) 人类信息提供者, `@tintinweb/pi-subagents` (代理卡UI), `pi-flows` (花仪表板), `pi-web-access` (网络工具),以及 `pi-agent-browser` (浏览器自动化).

仪表板的首次发射向导提示安装 软件包标签显示一个具有活安装/活性状态的推荐区域; 和横幅显示任何缺失 **所需经费** 进入直到它解决. 看仪表板 `packages/shared/src/recommended-extensions.ts` 显示为权威列表.

典型安装 :

```bash
# Required bridge (this package)
pi install git@github.com:BlackBeltTechnology/pi-anthropic-messages.git

# Strongly suggested
pi install npm:@tintinweb/pi-subagents
pi install git@github.com:BlackBeltTechnology/pi-flows.git
pi install npm:pi-web-access

# Optional
pi install npm:pi-agent-browser
```

## 与其他软件包的关系

-   **`@earendil-works/pi-ai`** - 临爱的Anthropic供应商已经 将工具名称化( c)`toClaudeCodeName`当它检测到一个 **证书**我们的桥梁与这种行为是同理的: OAuth会话 pi-ai 重写 `read` → `Read` 在我们看到 有效载荷,我们的精确匹配检查 `CC_CANONICAL_NAMES` 发现 `Read`,我们通过它没有改变。 非奥特克劳德 人类信息会议(9个路透社) `sk-*` 键,pi-model-代用键, OAuth-订阅代理等),pi-ai无所事事,我们的桥也无所事事 做卡通化。 没有双重重命名,没有冲突.
-   **`@benvargas/pi-claude-code-use`** - 被本套件取代,用于 此回转. 此套件有超组行为( 添加) `mcp__` 自定义工具的前缀; Claude 模型检测上的门; 不 过滤工具).
-   **`pi-flows`** ——其子剂侧工具前缀 (单位:千美元)`extensions/flow-engine/tool-prefix.ts`, (中文(简体) ), `mcp__flows__`) 手柄 正在处理 SDK 会话; 此软件包处理主会话 载荷。 两者相辅相成.
-   **`pi-agent-dashboard`** ——按规定拉出这道桥来 建议任何Claude-model人类信息提供者的扩展 设置.

## 释放

释放通过 [`release-cut`](https://npmcn.com/package/%40blackbelt-technology/pi-anthropic-messages/.pi/skills/release-cut/SKILL.md) 技能和取消通过 [`release-revoke`](https://npmcn.com/package/%40blackbelt-technology/pi-anthropic-messages/.pi/skills/release-revoke/SKILL.md)双脚走过飞行前 变换GELOG 校正 版本起伏 标记和推力 `npm publish` 发生在 GitHub 动作上`.github/workflows/release.yml`) (中文(简体) ). 发布工作流程也可以由 `workflow_dispatch` 从Actions UI中输入一个版本输入,该版本对跑者执行出击-承诺-tag-push.

## 导出 API

对于需要权威清单而不重复的消费者:

```ts
import {
  CC_CANONICAL_NAMES,
  PI_TO_CC_CANONICAL,
  NATIVE_ALIASES,
  FLAT_TO_MCP,
  DEFAULT_MCP_PREFIX,
  resolveOutboundName,
  transformPayload,
  buildReverseMap,
  lookupReverse,
  renameToolCallsInPlace,
  isClaudeAnthropicMessages,
} from "@blackbelt-technology/pi-anthropic-messages";
```

## 常见问题

### @blackbelt-technology/pi-anthropic-messages 是什么？

退役——未上架\. 使用 Pi-agent-dashboard 的 Claude 订阅相容开关代替\. i 的 Anthropic- messages 协议桥。 任何人类- messages API 会话的激活\( Anthropic OAuth/ API- key \+ 代理提供方\): canonicalize since pi co

### 如何安装 @blackbelt-technology/pi-anthropic-messages？

在项目目录运行 npm install @blackbelt-technology/pi-anthropic-messages，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@earendil-works/pi-coding-agent（\>=0\.74\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @blackbelt-technology/pi-anthropic-messages 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @blackbelt-technology/pi-anthropic-messages 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @blackbelt-technology/pi-anthropic-messages 可以商用吗？

@blackbelt-technology/pi-anthropic-messages 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @blackbelt-technology/pi-anthropic-messages 的下载量有多少？

根据 npm 官方下载统计，@blackbelt-technology/pi-anthropic-messages 在 2026/10/09 – 2026/11/07 这 30 天内被下载 3,743 次，日均约 125 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @blackbelt-technology/pi-anthropic-messages 还在维护吗？

最新版本 0\.3\.5 发布于 2026/10/28（10 天前）；至今共发布 4 个版本，其中过去 12 个月发布了 4 个；首次发布于 2026/05/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

