WorkBuddy2API Hub - Docker Image
6.4K
Important
**项目进入低频维护(2026-10-23) / Low-frequency maintenance**大幅降低更新频率与 Issue / PR 处理速度。请先阅读风险说明,再决定是否继续使用。
Updates and responses to issues / pull requests will be significantly reduced. Read the risk notice below before continuing.
Warning
**WorkBuddy 上游正在收紧对非官方客户端的识别与拦截。**
- 封禁:2026-10-23 下午起,非官方客户端的识别与拦截明显收紧。
- 维护者:近期工作压力增大,无法保证及时更新与响应。
- 可用性:上游可能随时进一步收紧,导致本项目不可用。
- 账号风险:使用非官方客户端造成的风控、限流或封禁,由使用者自行承担。
Upstream enforcement tightened detection and blocking of unofficial clients from the afternoon of 2026-10-23. The maintainer is under increased workload and cannot guarantee timely updates or replies. The upstream may tighten further at any time; rate limits, account restrictions or bans caused by using an unofficial client are the user's responsibility.
本项目仅用于协议学习、研究与个人自用。请优先使用官方客户端,不要使用主账号,不要共享账号,也不要用于商业转售。
This project is for protocol research and personal use only. Prefer the official client, do not use your primary account, and do not resell or share access.
⚡ Vibe Coding 产物:本项目为 100% Vibe Coding 协同产物——人类开发者提出架构与业务意图,AI 助手端到端完成逆向分析、链路调度、WAF 指纹脱敏与界面编写。
📌 提交代码贡献前:请先查看并严格遵循贡献手册
CONTRIBUTING.md——提交格式、测试门禁与端到端冒烟要求都在那里(AI / 智能体请特别注意其中的硬性规则节)。
想出现在这里?联系 [email protected]
| Agent Router 是免费公益大模型 API 平台,支持 Claude-opus-5.5、GPT-6 Astra、GPT-6.1 Sol、deepseek-v4-flash 等主流模型,国内直连。注册送 $175(每日签到得 $25,被邀得 $50),支持 GitHub / LinuxDo 登录。 |
start-wb-proxy.bat(静默后台运行 + 独立日志窗口);如需前台控制台窗口,双击 start-wb-proxy-visible.bat。start-wb-proxy.command 或在终端执行 ./start-wb-proxy.sh [端口](默认 8788,需要 Python 3.9+)。start-wb-proxy-lan.bat(Windows)或 ./start-wb-proxy-lan.sh(macOS/Linux),首次启动将自动生成高强度 API Key 并在控制台打印。http://127.0.0.1:8788/(默认访问密码 admin,首次登录请在设置中修改)http://127.0.0.1:8788/v1预编译多架构镜像发布在 GHCR,无需本地构建:
方式一:一键脚本(推荐)
# 官方源(直连 GitHub 环境):
curl -fsSL https://raw.githubusercontent.com/ardeyouxipianyi/workbuddy2api-hub/main/quick-deploy.sh | bash
# 国内网络 / NAS 加速:
curl -fsSL https://gh-proxy.com/https://raw.githubusercontent.com/ardeyouxipianyi/workbuddy2api-hub/main/quick-deploy.sh | sudo bash
公网部署或配合反向代理:在管道前指定
WB_DEPLOY_MODE=public bash,并搭配 Nginx / Caddy / Cloudflare Tunnel 配置 TLS。
方式二:单文件 Docker Compose
services:
wb-proxy:
image: ghcr.io/ardeyouxipianyi/workbuddy2api-hub:latest
container_name: wb-proxy
restart: unless-stopped
ports:
- "8788:8788"
environment:
- HOST=0.0.0.0
- PORT=8788
- TZ=Asia/Shanghai
volumes:
- ./accounts:/app/accounts # 账号凭据与配置(持久化)
- ./usage:/app/usage # 用量流水日志(持久化)
更新镜像:docker compose pull && docker compose up -d。
-m同一份代码、同一个账号池,python3 wb_proxy.py 与 python3 -m wb_proxy 的常驻内存差 47-54 MB
(Windows 11 / aarch64、Python 3.12-3.14 四套环境实测一致,见 #702)。成因仍在排查,
但只要换成 -m 就能拿到这段收益——512 MB 的设备上约 10%。
cd /path/to/workbuddy2api-hub # 必须先进入 wb_proxy.py 所在目录
python3 -m wb_proxy --port 8788
-m 把当前目录放进 sys.path,而脚本方式放的是脚本所在目录,所以务必先 cd。
仓库内的资源路径都基于 __file__ 解析,不受影响。Docker 镜像和 OpenWrt 包已改用 -m;
Windows / macOS 的 start-wb-proxy.* 启动脚本暂未改动。
网关内置进程内直连华为云 CodeArts,支持聊天 SSE 协议转换与自动签到,无需单独运行第三方桥接服务:
CodeArts(或全局通用)即可调用。CodeArts 的模型 ID 按上游目录精确匹配:deepseek-v4.1-flash 与
deepseek-v4.1-flash-1017 是两个独立模型,不会互相别名或静默回退。
/v1/models?realm=codearts 返回的是账号当前可用的真实目录 ID;调用时请直接使用
返回的完整 ID。
http://127.0.0.1:8788/,点击「+ 添加账号 (OAuth)」,在浏览器中完成官方登录授权即可自动入库。deepseek*, gpt-6-astra),违规请求本机直接返回 400;http://127.0.0.1:8788/v1(局域网为 http://<局域网IP>:8788/v1)/v1/models 中列出的任意官方对齐模型 ID(如 deepseek-v4.1-flash, gpt-6-astra, hy3)Codex CLI / Responses API
export OPENAI_BASE_URL="http://127.0.0.1:8788/v1"
export OPENAI_API_KEY="你在看板设置中添加并绑定的API_Key"
Claude Code / Anthropic Messages(实验性)
网关支持实验性 Messages 协议适配,因长会话缓存命中率差异,默认关闭:
# 网关端设置 WB_ENABLE_ANTHROPIC_MESSAGES=1 开启后生效:
export ANTHROPIC_BASE_URL="http://127.0.0.1:8788"
export ANTHROPIC_API_KEY="你在看板设置中添加并绑定的API_Key"
| 环境变量 | 默认值 | 说明 |
|---|---|---|
PORT | 8788 | 网关监听端口 |
API_KEY | 自动生成 | 初始 API Key(看板配置多 Key 后优先由看板管理) |
WB_DEPLOY_MODE | lan | 部署模式:lan(0.0.0.0)、local(127.0.0.1)、public |
WB_MAX_PAYLOAD_BYTES | 16777216 | 单请求体上限(字节,默认 16MB,支持 1–256 MB) |
WB_ENABLE_ANTHROPIC_MESSAGES | 0 | 是否开启实验性 Anthropic Messages 协议转换 |
WB_BACKGROUND_MODEL_TARGET | 留空 | 后台模型别名改写目标(如 DSH 客户端自动映射) |
WB_CA_BUNDLE | 留空 | 自签根证书路径(供抓包调试或中间代理使用) |
WB_CN_CHAT_UPSTREAM | 官方默认 | 国内版出站代理地址 |
WB_IDENTITY_OS | 宿主系统 | 仅 CLI 身份:覆盖 x-stainless-os(如 Linux / Windows) |
WB_IDENTITY_ARCH | 宿主架构 | 仅 CLI 身份:覆盖 x-stainless-arch(如 x64 / arm64) |
WB_IDENTITY_NODE_VERSION | 官方默认 | 仅 CLI 身份:覆盖 x-stainless-runtime-version |
遇到上游 400 / 11-128 时,先按 docs/TROUBLESHOOTING-11-128.md 收集同一请求的
身份、最小请求和提示词对照结果;不要先轮换账号。
| 接口 | 方法 | 端点 | 说明 |
|---|---|---|---|
| 聊天补全 | POST | /v1/chat/completions | 标准 OpenAI 聊天接口(支持流式 SSE 与思维链回填) |
| 交互式响应 | POST | /v1/responses | OpenAI Responses 协议接口(Codex 专用) |
| 模型目录 | GET | /v1/models | 获取当前出口对齐的官方可用模型列表 |
| 生图 | POST | /v1/images/generations | 文生图 / 图生图(需在设置中启用媒体模块) |
| 生视频 | POST | /v1/videos | 异步生视频任务提交(本地并发排队与空闲调度) |
| 视频状态 | GET | /v1/videos/<id> | 轮询视频生成进度与结果 |
| 产物下载 | GET | /v1/videos/<id>/content | 下载视频 MP4 产物直链 |
| 健康检查 | GET | /health | 网关运行状态、可用账号数与就绪模型分布 |
python tests/run_all.py # 全部套件
python tests/run_all.py realm # 只跑名字里含 realm 的
node,缺失时会跳过并提示。tests/_mobile_check.py 是独立的 Playwright 手机/桌面布局检查器(需自行安装 Playwright),按需手动运行,不在上面的套件集里。.github/workflows/tests.yml)跑同一条命令:Ubuntu 上 python 3.9 与 3.12(3.9 是本项目声称的最低版本),Windows 上 python 3.12;推送 v* tag 时额外断言 tag == 源码版本(-ci 演练 tag 豁免)。stop 字符串归一化;参数错误返回 400 且不冷却账号。deepseek-v4.1-flash 与 -1017 为独立模型,精确匹配。SANITIZE_REWRITES;live 目录的 x0.00 不再覆盖已知付费倍率。POST /accounts/credits 新增 uids 列表参数,非列表回 400),每个号每次页面加载最多补一次,不再触发全池逐个刷。手动「一键刷新积分」不变。WB_DEEPSEEK_FLASH_FORCE_SG 文档行与两个恒返回 False 的存根函数(#776)。/v1/models?realm=codearts 的条目新增 credits(如 x0.7,与 WorkBuddy 目录同一写法),取自上游模型目录的标准档;错峰优惠档不计入,上游没有倍率的模型不带此字段。sanitize 现在把
You are Claude Code, Anthropic's official CLI tool for Claude. 整句中性化;
旧规则只把 CLI for Claude 改写成 CLI tool for Claude,反而保留了
You are Claude Code 指纹。覆盖大小写与弯引号,user / tool 内容不改写。proxySlot: "auto") 时随机挑一个没绑定账号(含 CodeArts 账号)、也没被其他进行中登录占用的槽,没有空闲槽则直连。已绑定槽的账号用「自动」重登会保留原槽;槽绑定不写进账号的旧版 proxy 字段。/accounts/login/start 的日志与响应只给代理的 host:port,不含用户名密码;不存在或已停用的槽返回 400。--probe-only 用 2 秒超时探 /health,卡死的实例只会让它超时,于是判定端口可用、又叠了一层实例;Windows 的 SO_REUSEADDR 允许重复监听,内核仍把新连接分给卡死的那个,看板与日志查看器就一直是空的。现在这种情况明确报错(退出码 1)并给出占端口 PID 的查法,不再静默重复启动。python3 -m wb_proxy(OpenWrt init 与 Dockerfile):同一份代码实测空闲内存少 47-54 MB(#702 / #777)。WB_DUMP_11_128 本地取证开关(默认关闭):1 只写脱敏摘要,full 额外写出站
body,文件落在 usage/11-128-dumps/;用于定位 Claude Code 专属 11-128 的真实请求差异
(#733)。摘要不含提示词明文,full 含明文但由使用者显式开启。settings.json 键 daily_activity,/settings/save 只收 JSON 布尔)。缺省开启,老安装行为不变;关掉后调度器不再自动跑每日活跃(定时时段、立即巡检保活、启动补跑都跳过,启动补跑留到重新打开后再消费),账号上的手动打卡不受影响。usage.jsonl 冷启动要几十分钟)时这一类本次跳过、下次再写,不再连带 /usage/by-account 等视图一起卡住(面板「账号加载失败」/ Cloudflare 524)。完整历史版本与详细变更日志请查阅 docs/CHANGELOG.md。
在协议逆向、风控规避、任务链路与工程化设计过程中,本项目参考、吸纳并致谢以下优秀开源项目与技术成果(排名不分先后):
derive_id)、调度器(Scheduler)与 reasoning_content 回填设计;.ipk / .apk)与系统服务支持;感谢所有向本项目提交 PR、反馈 Issue 与分享实测样本的社区贡献者!
本项目仅用于协议学习与个人开发测试,不提供任何商业服务或可用性担保。因使用非官方客户端产生的账号风控、限制或封禁由使用者自行承担,请优先使用官方客户端。
Content type
Image
Digest
sha256:f4415c51c…
Size
20.6 MB
Last updated
about 3 hours ago
docker pull oozzbb/workbuddy2api-hub