Api Reference

Amp CLI API

Amp CLI 集成路由端点

Amp CLI API

ProxyCast 提供 Amp CLI 兼容的路由端点,支持将 Amp CLI 请求路由到本地 OAuth 凭证。

概述

Amp CLI 集成允许你:

  • 使用本地 OAuth 凭证处理 Amp CLI 请求
  • 将不可用的模型映射到可用的替代模型
  • 代理 Amp 的认证和账户管理功能

Provider 路由

/api/provider/{provider}/v1/chat/completions

处理 Amp CLI 的 OpenAI 格式聊天请求。

POST /api/provider/{provider}/v1/chat/completions
Content-Type: application/json
Authorization: Bearer your-api-key

支持的 Provider

Provider说明
anthropicClaude 模型
openaiGPT 模型
googleGemini 模型

请求示例

curl http://127.0.0.1:8999/api/provider/anthropic/v1/chat/completions \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": true
  }'

/api/provider/{provider}/v1/messages

处理 Amp CLI 的 Anthropic Messages 格式请求。

POST /api/provider/{provider}/v1/messages
Content-Type: application/json
x-api-key: your-api-key
anthropic-version: 2023-06-01

请求示例

curl http://127.0.0.1:8999/api/provider/anthropic/v1/messages \
  -H "x-api-key: your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

模型映射

当 Amp CLI 请求的模型不可用时,ProxyCast 可以自动映射到可用的替代模型。

配置

ampcode:
  model_mappings:
    - from: "claude-opus-4.5"
      to: "claude-sonnet-4"
    - from: "gpt-5"
      to: "gemini-2.5-pro"
    - from: "claude-3-opus-20240229"
      to: "claude-3-5-sonnet-20241022"

映射行为

  1. 收到请求时检查模型名称
  2. 如果模型在映射列表中,替换为目标模型
  3. 使用替换后的模型名称路由请求
  4. 响应中保留原始请求的模型名称

管理端点代理

ProxyCast 可以代理 Amp 的认证和账户管理端点到上游服务器。

/api/auth/*

代理认证相关请求。

# 登录
POST /api/auth/login

# 刷新 Token
POST /api/auth/refresh

# 登出
POST /api/auth/logout

/api/user/*

代理用户账户相关请求。

# 获取用户信息
GET /api/user/profile

# 获取使用统计
GET /api/user/usage

配置

ampcode:
  upstream_url: "https://ampcode.com"
  restrict_management_to_localhost: false
配置项说明
upstream_urlAmp 上游服务器 URL
restrict_management_to_localhost是否限制管理端点只能从 localhost 访问

使用场景

场景 1:使用本地 OAuth 凭证

你有 Kiro 的 Claude 订阅,想用 Amp CLI 但不想额外付费:

  1. 配置 ProxyCast 加载 Kiro OAuth 凭证
  2. 在 Amp CLI 中配置 ProxyCast 作为 API 端点
  3. Amp CLI 请求通过 ProxyCast 路由到 Kiro 凭证

场景 2:模型替换

Amp CLI 请求 Claude Opus 4.5,但你只有 Sonnet 4 的访问权限:

ampcode:
  model_mappings:
    - from: "claude-opus-4.5"
      to: "claude-sonnet-4"

场景 3:多 Provider 负载均衡

配置多个凭证,ProxyCast 自动在它们之间负载均衡:

credential_pool:
  kiro:
    - id: "kiro-1"
      token_file: "kiro/token-1.json"
    - id: "kiro-2"
      token_file: "kiro/token-2.json"

Amp CLI 配置

在 Amp CLI 中配置 ProxyCast:

# 设置 API 端点
amp config set api.base_url http://127.0.0.1:8999/api/provider

# 设置 API Key
amp config set api.key your-proxycast-api-key

或在配置文件中:

# ~/.amp/config.yaml
api:
  base_url: http://127.0.0.1:8999/api/provider
  key: your-proxycast-api-key

错误处理

模型不可用

当请求的模型不可用且没有配置映射时:

{
  "error": {
    "message": "Model 'claude-opus-4.5' is not available",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}

上游连接失败

当无法连接到 Amp 上游服务器时:

{
  "error": {
    "message": "Failed to connect to upstream server",
    "type": "upstream_error",
    "code": "connection_failed"
  }
}

凭证耗尽

当所有凭证都不可用时:

{
  "error": {
    "message": "All credentials exhausted",
    "type": "service_unavailable",
    "code": "no_credentials_available"
  }
}

响应头会包含 Retry-After 指示何时可以重试。