Forge:自托管 LLM 工具调用的可靠性层
为自托管的 LLM 工具调用提供可靠性层,通过防护栏提升多步骤智能体工作流的成功率。
- Star 数
- ★ 2.3k
- 最近更新
- 4 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 49/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 使用现有工具(如 opencode、Continue、aider 或 Cline)的开发人员,希望通过
python -m forge.proxy代理服务器获得防护栏,而无需重写代码。 - 不适合
- 需要多智能体编排或 DAG 规划器的团队
- 不想自行部署本地模型后端或 GPU 的用户
- 需要代理层对调用方做身份认证的团队
这个 Agent 能做什么,适合哪些场景?
Forge 是一个 Python 框架,专注于增强自托管 LLM 的工具调用可靠性。它提供三种使用方式:作为代理服务器(支持 OpenAI 和 Anthropic API 格式)、作为 WorkflowRunner 运行结构化智能体循环,以及作为防护栏中间件集成到现有循环中。Forge 支持多种后端,包括 OpenAI 兼容端点、Ollama、llama-server、Llamafile、vLLM 和 Anthropic。其核心功能包括响应验证、救援解析(处理格式错误的工具调用)、重试循环和可选的步骤强制。Forge 不是智能体编排器,也不是编码工具,而是为单个智能体循环内部提供可靠性。它声称可以将 8B 本地模型的成功率从个位数提升到 84%,并将 Sonnet 4.6 从 85% 提升到 98%。
Forge 提供多种操作模式:python -m forge.proxy 启动一个代理服务器,监听 OpenAI chat-completions 和 Anthropic Messages API,将请求转发到本地模型后端,并透明地应用防护栏,包括响应验证(检查工具调用是否符合请求的 tools 数组)、救援解析(从 JSON 代码块或 XML 标签中提取工具调用)、重试循环(最多 3 次)以及可选的 respond 工具注入。WorkflowRunner 类接受一个包含工具定义和可选步骤约束(如 required_steps、prerequisites、terminal_tool)的 Workflow 对象,并管理完整的生命周期:系统提示、工具执行、上下文压缩(通过 ContextManager 和 TieredCompact 策略)以及防护栏。Guardrails 外观允许在外部循环中应用防护栏。Forge 支持通过 LlamafileClient、OllamaClient、OpenAICompatClient、VLLMClient 和 AnthropicClient 连接后端。
- 使用现有工具(如 opencode、Continue、aider 或 Cline)的开发人员,希望通过
python -m forge.proxy代理服务器获得防护栏,而无需重写代码。 - 构建多步骤智能体工作流的开发人员,通过
WorkflowRunner和SlotWorker管理共享 GPU 推理槽,并支持优先级队列和抢占。 - 在本地模型上进行可靠工具调用,但希望避免格式错误(如 Mistral 的
[TOOL_CALLS]或 Qwen 的 XML)的团队。 - 使用 Claude Code 但希望使用本地模型,同时保留 Anthropic Messages API 兼容性的用户,通过代理服务器设置
ANTHROPIC_BASE_URL。 - 需要监控模型性能的研究人员,通过评估工具(
tests.eval.eval_runner和batch_eval)运行标准化场景。 - 希望在其自定义编排循环中集成防护栏的工程师,使用
Guardrails中间件,而无需采用完整的WorkflowRunner。
如何安装或部署这个 Agent?
安装 Forge:pip install forge-guardrails 或 pip install "forge-guardrails[anthropic]"。需要 Python 3.12+。对于开发:git clone https://github.com/antoinezambelli/forge.git && cd forge && pip install -e ".[dev]"。选择一个后端:llama-server(推荐)、Ollama 或 Anthropic。对于 llama-server,从 llama.cpp 发布版下载并运行:llama-server -m path/to/Ministral-3-8B-Instruct-2512-Q8_0.gguf --jinja -ngl 999 --port 8080。对于 Ollama:ollama pull ministral-3:8b-instruct-2512-q4_K_M。对于 Anthropic:设置 ANTHROPIC_API_KEY。
如何使用这个 Agent?
启动一个后端,然后以代理模式运行 Forge:python -m forge.proxy --backend-url http://localhost:8080 --backend llamaserver --port 8081。配置客户端使用 http://localhost:8081/v1 作为 API 基地址。或者,使用 WorkflowRunner:导入 Workflow, ToolDef, ToolSpec, WorkflowRunner, LlamafileClient, ContextManager 和 TieredCompact。定义一个 Workflow 对象,包含工具和可选的步骤约束,并异步运行 runner.run(workflow, "你的提示")。对于评估,使用 python -m tests.eval.eval_runner 或 batch_eval 生成 JSONL 报告。
这个 Agent 有哪些优点和局限?
- 多重防护栏:响应验证、救援解析和重试循环,显著提升自托管模型的工具调用成功率。
- 三种集成模式:代理服务器、
WorkflowRunner和Guardrails中间件,适用于不同场景。 - 后端灵活性:支持 OpenAI 兼容端点、Ollama、llama-server、Llamafile、vLLM 和 Anthropic。
- 包括评估框架(
eval_runner、batch_eval)和 Hugging Face 数据集,用于测量性能。 - 支持 Anthropic 和 OpenAI API 格式,包括 Claude Code 集成。
- 需要 Python 3.12+,相比旧版本增加了运行时要求。
- 代理模式是单次请求,不支持多轮工作流功能,如上下文压缩或步骤强制执行——这些仅在
WorkflowRunner中可用。 - 托管模式:停止 Forge 不会停止或拥有 Ollama 守护进程,并且某些 Ollama 选项被拒绝。
- 基准数据可能过时:Anthropic 数字在 v0.6.0 中测量,未在 v0.7.0 中重新运行。
- 代理服务器不进行身份验证,管理员需要在网络中信任它。
这个 Agent 与同类方案有什么区别?
Forge 通常与 OpenAI 和 Anthropic API 提供的托管模型进行比较,但它不是像 LangChain 或 AutoGen 这样的编排器。它定位为专门提高工具调用可靠性的层,而不是完整的代理框架。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Forge:自托管 LLM 工具调用的可靠性层 当前 | 49 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 2.3k | 4 天前 | Python | OpenAI API · Claude API |
| little-coder:轻量本地编码代理 | 58 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 2.7k | 1 个月前 | TypeScript | — |
| Functionary:可控工具调用的对话语言模型 | 30 · 缺口较多 | 自托管服务免费 | ★ 1.6k | 3 个月前 | Python | OpenAI API |
| Synapse AI 多智能体编排平台 | 70 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 329 | 2 个月前 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:代理服务器不认证调用者,但提供--backend-api-key用于后端认证;工具调用需用户定义,但无用户确认机制;数据流透明性部分体现(如代理模式说明不压缩历史);敏感数据处理未提及;依赖仅pydantic和httpx,但未提供漏洞扫描证据;外部影响包括代理可启动后端进程,但文档说明停止时卸载Ollama模型;无回滚机制;来源归属明确(作者和许可证)。扣分:用户确认缺失,敏感数据处理未提及,回滚缺失。
证据显示:项目结构清晰,模块划分合理;依赖pydantic和httpx,均为常见库,但未提供版本锁定;错误处理有ForgeError层次,但失败消息质量未详细评估。扣分:依赖可用性未完全验证,失败消息未详细说明。
证据显示:明确目标用户(开发者),场景包括代理服务器、WorkflowRunner、中间件;能力边界清晰(非编排器、非编码工具);触发条件明确(工具调用时应用防护栏);环境适配支持多种后端和Python版本。扣分:无重大扣分,但环境适配细节未完全验证。
证据显示:信息架构清晰(项目结构、文档链接);安装说明详细(pip install);命名稳定(版本0.9.0);示例丰富(快速开始、代理模式);已知限制明确(代理模式不压缩历史);许可证MIT;版本变更日志存在但未详细;维护责任明确(作者)。扣分:命名稳定性因版本升级有破坏性变更而扣分;版本变更日志未详细。
证据显示:输出可用性高(代理模式兼容OpenAI和Anthropic);边际价值明显(提升模型可靠性);成本效益合理(本地模型降低API成本)。扣分:无重大扣分,但成本效益未量化。
证据显示:README中声称的评估结果有链接(Hugging Face数据集),但未提供原始数据;跨来源验证有限;事实与推断区分不明确。扣分:声称的评估结果未完全可追溯,跨来源验证不足。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 代理服务器不认证调用者,部署在不可信网络时需自行添加认证层。
- 敏感数据处理(如API密钥、用户数据)未在文档中明确说明,使用前需自行评估。
- 0.9.0版本有破坏性变更,升级前需阅读迁移指南。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.9.5 v0.9.5: Equivalent dual-auth compatibility
发布说明摘录
[0.9.5] — 2026-08-29 A credential-interoperability release for Forge's direct clients and standalone Proxy. Equivalent representations of one credential can now pass through without weakening Forge's rejection of genuinely distinct credentials. Changed - Equivalent dual-auth headers represent one credential identity. Direct clients and Forge Proxy now accept Authorization plus X-Api-Key when both carry the same normalized token. Same-protocol traffic preserves both headers; cross-protocol traffic emits one canonical target header. Unequal …在 GitHub 查看 ↗ -
v0.9.4 v0.9.4: Anthropic reasoning capture
发布说明摘录
[0.9.4] — 2026-08-26 An Anthropic interoperability release for Forge Proxy and direct Anthropic client usage. Native plaintext thinking returned alongside tool calls now participates in Forge's existing reasoning-replay policy. Added - Anthropic tool-call reasoning is captured consistently. Streamed and non-streamed native thinking content is mapped to ToolCall.reasoning, preferred over the existing visible-text fallback, and exposed through Forge Proxy's OpenAI-compatible responses according to the configured …在 GitHub 查看 ↗ -
v0.9.3 v0.9.3: Proxy command ownership hotfix
发布说明摘录
[0.9.3] — 2026-08-21 A command-ownership hotfix for the standalone Forge Proxy distribution. Proxy request handling, routing, backend behavior, and guardrail policy are unchanged. Fixed - The standalone installer exclusively owns forge-proxy. The forge-guardrails Python package no longer creates a competing global command; Python-managed Proxy execution remains available through python -m forge.proxy, including in the Docker image. - Foreign commands are preserved. Installation and update refuse when an …在 GitHub 查看 ↗
常见问题
Forge 是代理框架吗?
Forge 可以与 Claude Code 一起使用吗?
/v1/messages),因此您可以设置 ANTHROPIC_BASE_URL=http://localhost:8081 和 ANTHROPIC_AUTH_TOKEN=anything 来将 Claude Code 指向本地模型。Forge 会隐藏对话历史吗?
WorkflowRunner 中可用。