My Free Code
为 Claude Code 等编码代理提供多供应商本地网关:统一模型路由、流式输出、工具调用与自动降级,让一个 API 端点接入几十家模型。
证据显示项目声明仅本地使用、要求非平凡 PROXY_AUTH_TOKEN、凭据不出站,且依赖列表极小(fastapi/uvicorn/httpx/python-dotenv),这支撑敏感数据与依赖安全的 2 分。但管理员端点认证、路由、流式等核心逻辑仅由测试文件间接引用,源码未在证据中呈现,最小权限、用户确认、数据流透明度均只有文字主张,扣为 1。回滚方面只提到流式提交后不切换提供方,无回退/恢复机制说明,扣为 1。归属方面仅声明'非 Anthropic 关联'且 LICENSE 版权人为'★'占位符,作者身份不明,扣为 1。
README 的路由/回退/回退去重描述与 tests/test_router.py 的测试一致(candidates 去重、显式模型直通),安装说明覆盖 Windows/macOS/Linux,故自洽与依赖可得性给 2。但失败信息处理仅有 failures.py 文件名可依,未见具体错误消息内容或对外暴露的错误策略,failure_messages 扣为 1。
项目明确定位本地多提供方网关,给出 Claude tier 路由、回退、本地模型(Ollama/LM Studio/llama.cpp)配置示例,并诚实说明'非常规认证/协议需专用适配器',能力边界与触发语义(tier→模型映射、回退链)描述清晰,各给 2。环境适配覆盖三大平台安装步骤,给 2。
结构图、架构分层说明、安装命令、pyproject 脚本入口齐备,信息架构与安装说明给 2;命名(my-free-code / mfc CLI)在 pyproject 与 README 一致,给 2;MIT 许可证文件存在,给 2。但缺 FAQ、无已知局限章节(仅隐含'本地使用'警告)、无 CHANGELOG(仅版本号 0.8)、维护者/更新路径不明(版权占位符),相应扣为 1。
作为多提供方网关,聚合了 40+ 提供方、双协议入口和本地运行时,产出(OpenAI/Anthropic 兼容端点)对编码代理直接可用,测试覆盖协议转换,输出可用性、边际价值(相对逐家配置 API)与成本收益(免费/本地模型回退)均可从证据支持,各给 2;但未证实性能与流式稳定性,故未给 3。
测试文件可直接对应 README 中的路由、协议转换、认证主张,但核心模块源码未提供,主张只能部分追溯到测试而非实现,claim_traceability 扣为 1。README 中残留 'citeturn0search0' 这类伪造引用标记,且'镜像当前参考项目的架构边界'缺乏可核验来源,跨源印证与事实/推断分离均扣为 1。
- 发布者身份未经核验,版权人为占位符'★',使用者需自行评估供应链信任。
- 核心源码未在证据中呈现,认证与管理端点保护仅为文档与测试主张,部署前应自行审计 routes.py/admin_routes.py。
- README 残留 'citeturn0search0' 引用标记,提示文档可能由模型生成未经清理,需核对技术主张。
- 无已知局限说明与变更日志,0.8 版本行为可能随时变动;生产环境使用前先运行 pytest 并在隔离环境验证。
- 严格保持 HOST=127.0.0.1 并设置强 PROXY_AUTH_TOKEN,切勿将 /admin 暴露到公网。
这个 Agent 能做什么,适合哪些场景?
My Free Code v0.8 是一个独立实现的开源多供应商 AI 网关,面向 Claude Code 及其他编码代理(明确声明与 Anthropic 无关)。它以 FastAPI 实现 Anthropic Messages(/v1/messages、/v1/messages/count_tokens)和 OpenAI Responses(/v1/responses)两类线协议,并暴露模型发现、健康检查、本地 Admin UI 与需认证的 Admin API。网关在协议层之下运行模型路由器:支持 Claude 分层路由(Fable/Opus/Sonnet/Haiku)、有序模型回退、供应商健康退避、并发与速率窗口控制,并保持稳定的公开模型身份。供应商目录涵盖 OpenRouter、Groq、DeepSeek、NVIDIA NIM、Azure OpenAI、Google Vertex、Amazon Bedrock 等几十家云端服务,以及 Ollama、LM Studio、llama.cpp 等本地运行时;OpenAI 兼容供应商共享同一传输层,特殊协议供应商使用专用适配器。部署方式为本地 Python 进程(默认 http://127.0.0.1:8082),凭据只保留在本地 .env 中,README 定位为本地使用工具。
启动后,网关监听本地端口并接收 Anthropic Messages 或 OpenAI Responses 格式的请求。它读取 .env 中的 MODEL、MODEL_SONNET、MODEL_OPUS、MODEL_HAIKU、FALLBACK_MODELS 等配置与各供应商 API 密钥,通过模型路由器选择主供应商,失败时按顺序切换到回退模型(已开始流式输出后不会静默切换供应商导致重复回合)。它支持 SSE 流式、工具定义与工具调用、图片输入、思考/推理元数据透传(auto/on/off 加 low/medium/high effort,由适配器映射到上游字段)。供应商层通过共享的 OpenAI 兼容传输或专用适配器调用上游 API,本地模型经 OLLAMA_BASE_URL、LM_STUDIO_BASE_URL、LLAMACPP_BASE_URL 访问。编码代理启动层(python -m my_free_code.cli.mfc)为 claude、codex、pi、opencode、cline、hermes、deepseek-harness、grok、muse 准备本地代理环境变量后委托给已安装的客户端。Admin UI(/admin)与 /api/admin/status、/api/admin/models、/api/admin/providers 提供状态查看。仓库附带 pytest 确定性测试覆盖路由、协议转换、认证、推理、模型目录与流式原语。
- Claude Code 用户想用 DeepSeek、Groq、OpenRouter 免费或低价模型替代 Anthropic 官方端点,只需设置 ANTHHROPIC_BASE_URL 指向本地网关即可无缝切换
- 个人开发者在离线或隐私敏感环境中,通过 Ollama/LM Studio/llama.cpp 让编码代理完全使用本地模型
- 重度代理使用者需要可靠性:配置 FALLBACK_MODELS 让主模型不可用时自动降级到备选模型
- 团队希望对 Sonnet/Opus/Haiku 等分层请求做差异化路由,把高成本层级映射到指定的替代模型
- 同时使用多个编码客户端(Codex、OpenCode、Cline 等)的用户,用统一的 mfc 启动器为各家客户端注入代理配置
- 需要本地观测网关状态、可用模型与供应商健康状况的运维者,通过 Admin UI 和 Admin API 检查
这个 Agent 有哪些优点和局限?
- 同时实现 Anthropic Messages 与 OpenAI Responses 两套线协议,Claude Code 与 Codex 系客户端都能直接接入同一个网关
- 分层路由加有序回退且保证流式已输出后不重复回合,供应商故障时的行为有明确定义
- 供应商目录极广(几十家云端服务加三种本地运行时),OpenAI 兼容供应商共享传输层,新增供应商成本低
- 架构将协议、路由、供应商运行时、CLI 启动器分层解耦,并附带覆盖路由、协议转换与流式的确定性测试
- 定位为本地使用:README 要求绑定 127.0.0.1 且不要暴露 Admin 端点,多用户/远程部署超出设计范围
- 供应商目录 ≠ 全部开箱即用:非 OpenAI 兼容协议的供应商需要专用适配器,覆盖程度因供应商而异
- 需要自行管理各供应商 API 密钥与 .env 配置;回退仅覆盖输出开始前的失败,流中途中断不会切换供应商
- 启动器只准备代理环境并委托给已安装的客户端,Codex、Cline 等需用户事先自行安装
如何安装或部署这个 Agent?
需要 Python 3.10+。Windows:python -m venv .venv;.venv\Scripts\Activate.ps1;python -m pip install -r requirements.txt;copy .env.example .env。macOS/Linux:python -m venv .venv;source .venv/bin/activate;python -m pip install -r requirements.txt;cp .env.example .env。启动:python -m my_free_code,默认地址 http://127.0.0.1:8082。之后在 .env 中配置模型与对应 API 密钥,例如 MODEL=open_router/openrouter/free、MODEL_SONNET=deepseek/deepseek-chat、FALLBACK_MODELS=deepseek/deepseek-chat,ollama/llama3.1。
如何使用这个 Agent?
接入 Claude Code:设置 ANTHROPIC_BASE_URL=http://127.0.0.1:8082、ANTHROPIC_AUTH_TOKEN=local、CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 后运行 claude;或直接运行 python -m my_free_code.cli.mfc claude。其他客户端:python -m my_free_code.cli.mfc 后接 codex / pi / opencode / cline / hermes / deepseek-harness / grok / muse(客户端须已在 PATH 中)。本地模型示例:OLLAMA_BASE_URL=http://127.0.0.1:11434/v1 加 MODEL=ollama/llama3.1。管理界面访问 http://127.0.0.1:8082/admin。安全要求:保持 HOST=127.0.0.1、设置非平凡 PROXY_AUTH_TOKEN、勿提交 .env、勿将 Admin 端点暴露到公网。运行测试:pytest -q。
这个 Agent 与同类方案有什么区别?
README 将其定位为 Claude Code 官方 Anthropic 端点的替代接入路径(独立实现,非 Anthropic 官方,也不隶属于 Anthropic);对于已付费订阅官方 Claude 或需要托管多租户网关的团队,直接使用官方端点或商业网关可能更合适。