Copilot→Anthropic 代理服务
researcher agent 起源、Resley 持续打磨的 Copilot 协议代理 + Dashboard。利用 GitHub Copilot Enterprise 上游免 Anthropic API Key 调 Claude;2026-04-19 升级为多模型 + 多用户 + 配额计费的小型分发平台。
服务信息
| 属性 | 值 |
|---|---|
| 仓库 | ~/projects/github-copilot-anthropic-proxy(git) |
| 主服务端口 | 4819 → https://api.eagle.openclaws.co.uk |
| 进程 | node server.mjs(systemd / pm2) |
| 数据库 | SQLite,~/projects/github-copilot-anthropic-proxy/proxy-logs.db(v2 schema) |
| Dashboard | https://api.eagle.openclaws.co.uk/(Logto SSO) |
| User 自助 | /user(API Key 登录) |
协议双栈与模型路由(2026-04-19)
| 端点 | 协议 | 客户端 |
|---|---|---|
POST /v1/messages | Anthropic | Claude Code、Anthropic SDK |
POST /v1/chat/completions | OpenAI | GPT 客户端、OpenAI SDK |
GET /v1/models | 通用 | 13 个模型声明(3 家 provider) |
实测可用 8/13 模型(Copilot 上游决定):
- ✅
claude-sonnet-4/claude-sonnet-4-6 - ✅
claude-opus-4-7/claude-opus-4-7-20250715(2026-04-17 上线) - ✅
gpt-4o/gpt-4o-mini - ✅
gemini-2.5-pro - ❌
claude-haiku-3.5/claude-opus-4/gpt-5/o1/o3-mini/gemini-2.0-flash:上游 400model_not_supported
Anthropic ↔ OpenAI SSE 双向流式转换在 proxy 内做;tool_use / usage 字段已对齐。
已知 effort 限制
claude-opus-4.7 上游 只接受 effort=medium,传 high/xhigh 返回 400。proxy 层不做 remap(设计取舍——保持透传可观测)。Hermes 默认 reasoning_effort: medium。
API Key 即身份(2026-04-19)
无账号密码体系,API Key 就是身份:
| 表 | 用途 |
|---|---|
api_keys_v2 | sk-proxy-* 前缀,含 role / balance_tokens / free_quota / monthly_used |
usage_ledger | 每次调用扣额度的明细账本 |
recharge | 充值/调额记录 |
pricing.json | 各模型 token 单价(官方 × 0.8 倍率,热更新) |
- 新 Key 默认免费额度:10000 tokens
- 历史 Key 一律不限量(迁移自
api-keys.json) - Quota Preflight:每次请求前查余额,超限返回 402
- 每月 1 号自动重置免费额度
Dashboard
Admin 后台(4 个 tab,2026-04-19)
| Tab | 功能 |
|---|---|
| Logs | 全局请求日志,filter + 表头排序 + 分页 |
| Charts | 总量、Model、API Key、Token User 四张图 |
| Keys | API Key CRUD(创建/封禁/调额度) |
| Usage | 全局用量趋势(按用户 / 模型 / 天) |
| Pricing | pricing.json 编辑器 |
| Audit | 操作审计日志 |
User 自助(/user)
API Key 登录后只看自己:/user/me、/user/usage、/user/logs、/user/stats。数据严格隔离。
关键 UI 修复
- Sticky thead:
thead sticky top改为0(容器内)+ 去掉容器max-height双滚动条 - Load More 按钮:底部紫色按钮,每次 100 条(之前 500),后端 limit cap 同步从 200 → 1000
- 401 自动恢复:fetch 拦截器 + Logto
isAuthenticated()重建 session cookie - Live 增量轮询:
since_id只拉新行,filter 切换走全量 - API Key / Token User 用量图:按
api_key_name/token_name分组的条形图
数据库优化(2026-04-17)
紧急救场:proxy-logs.db 1.9GB / 6873 行 → 平均 275KB/行(请求/响应 body 是大头),磁盘 94%。
| Pragma | 旧 | 新 |
|---|---|---|
| journal_mode | delete | WAL |
| synchronous | FULL | NORMAL |
| cache_size | 2 MB | 64 MB |
| mmap_size | 0 | 256 MB |
| 索引 | 仅 ts/model | + token_name / api_key_name / errors 部分索引 |
存档策略(scripts/archive-bodies.mjs,cron 每天 04:00):
保留最近 1000 行完整 body + 所有 error 完整 body,其余只留元数据;磁盘 > 85% 自动 VACUUM。结果:1.9GB → 239MB(-87%),磁盘 94% → 89%。
Dev 分支生命周期(2026-04-19)
为做 4 阶段升级开了独立 dev:
- 分支
dev,端口 5819,独立 systemd 服务copilot-proxy-dev.service,worktree 在~/projects/copilot-proxy-dev - 域名 https://api-dev.eagle.openclaws.co.uk(Logto 需新加 callback redirect URI)
- 4 阶段 subagent 串行:①多模型支持 ②Key=身份+配额 ③用户 dashboard ④Admin 后台
- 每阶段 Claude Code session_id 记录,commit 16 个,新增 +2986 行,51/51 测试通过
- 全部完成后合并 main 并清理:dev 分支删除、worktree 删除、Caddy api-dev 路由移除、systemd dev 服务停用
合并后 db 损坏(合并时 WAL 异常,integrity_check 报页错误),用 iterdump 重建:旧 1.5GB → 新 340MB,10k 条 logs 全保留,备份 proxy-logs.db.bad.<ts>。
销售化改造(草案,2026-04-19 在讨论)
闲鱼卖 token,定位 Claude Code 专用 + 13 模型一卡通用 + 透明后台:
| 套餐 | 价格 | 折算 |
|---|---|---|
| 体验卡 | ¥9.9 | ≈ ¥16.5 官方价 |
| 日常包 | ¥29 | ≈ ¥48 |
| 码农包 | ¥99 | ≈ ¥165(主推) |
| 豪华包 | ¥299 | ≈ ¥498 |
差异化卖点:原厂 Copilot 通道(非逆向 / 拼车号)、按 Key 透明后台、子 Key 限额、月卡反 token 海。封面已用 Azure gpt-image-1.5 出图。
历史里程碑
- 2026-04-06 — researcher agent 完成原型
copilot-anthropic-proxy.mjs,CST 时间戳 + SQLite 持久化 + 时间/模型筛选 + 模型统计卡片 - 2026-04-16 — Resley 让 Claude Code 加 4 个 dashboard 增强(API Key 图、Token User 图、Load More、表头排序),删除
server.mjsL642-643 自动补 max_tokens 5000 的旧逻辑 - 2026-04-17 — Opus 4.7 上线(
claude-opus-4-7-20250715)、Load More 后端 limit cap bug、DB 大优化、archive-bodies cron - 2026-04-19 — 4 阶段升级(多模型 / Key 身份 / 用户面板 / Admin),合并 main,准备闲鱼卖 token
相关页面
- model-provider-config — 父页面:模型均匀分配策略
- caddy-reverse-proxy —
api.eagle.openclaws.co.uk反代 - logto-sso — Admin 后台登录
- monitoring-and-cron —
archive-bodies等 cron - hermes-agent-setup — Hermes 调用 proxy 作为 Anthropic 端点