Forge:自托管 LLM 工具调用的可靠性层

为自托管的 LLM 工具调用提供可靠性层,通过防护栏提升多步骤智能体工作流的成功率。

Star 数
★ 2.3k
最近更新
4 天前
License
MIT
主语言
Python

30 秒速览

运行形态
命令行工具代码库 / SDK自托管服务
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Python 3.12+Shell / 命令行网络访问
典型场景
使用现有工具(如 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 连接后端。

  1. 使用现有工具(如 opencode、Continue、aider 或 Cline)的开发人员,希望通过 python -m forge.proxy 代理服务器获得防护栏,而无需重写代码。
  2. 构建多步骤智能体工作流的开发人员,通过 WorkflowRunner 和 SlotWorker 管理共享 GPU 推理槽,并支持优先级队列和抢占。
  3. 在本地模型上进行可靠工具调用,但希望避免格式错误(如 Mistral 的 [TOOL_CALLS] 或 Qwen 的 XML)的团队。
  4. 使用 Claude Code 但希望使用本地模型,同时保留 Anthropic Messages API 兼容性的用户,通过代理服务器设置 ANTHROPIC_BASE_URL。
  5. 需要监控模型性能的研究人员,通过评估工具(tests.eval.eval_runner 和 batch_eval)运行标准化场景。
  6. 希望在其自定义编排循环中集成防护栏的工程师,使用 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?

FollowAgents 源码审查 · FARS-2.1
缺口较多
49/ 100 五分制 2.5 / 5
本评测基于 2026年8月11日 的源码;此后该项目发布了 5 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 6/29
可靠稳定 9/14
适用触发 12/18
规范维护 10/18
有效结果 9/13
证据核验 3/8
查看各维度的扣分理由
信任安全6 / 29 · 1.0/5

证据显示:代理服务器不认证调用者,但提供--backend-api-key用于后端认证;工具调用需用户定义,但无用户确认机制;数据流透明性部分体现(如代理模式说明不压缩历史);敏感数据处理未提及;依赖仅pydantic和httpx,但未提供漏洞扫描证据;外部影响包括代理可启动后端进程,但文档说明停止时卸载Ollama模型;无回滚机制;来源归属明确(作者和许可证)。扣分:用户确认缺失,敏感数据处理未提及,回滚缺失。

可靠稳定9 / 14 · 3.2/5

证据显示:项目结构清晰,模块划分合理;依赖pydantic和httpx,均为常见库,但未提供版本锁定;错误处理有ForgeError层次,但失败消息质量未详细评估。扣分:依赖可用性未完全验证,失败消息未详细说明。

适用触发12 / 18 · 3.3/5

证据显示:明确目标用户(开发者),场景包括代理服务器、WorkflowRunner、中间件;能力边界清晰(非编排器、非编码工具);触发条件明确(工具调用时应用防护栏);环境适配支持多种后端和Python版本。扣分:无重大扣分,但环境适配细节未完全验证。

规范维护10 / 18 · 2.8/5

证据显示:信息架构清晰(项目结构、文档链接);安装说明详细(pip install);命名稳定(版本0.9.0);示例丰富(快速开始、代理模式);已知限制明确(代理模式不压缩历史);许可证MIT;版本变更日志存在但未详细;维护责任明确(作者)。扣分:命名稳定性因版本升级有破坏性变更而扣分;版本变更日志未详细。

有效结果9 / 13 · 3.5/5

证据显示:输出可用性高(代理模式兼容OpenAI和Anthropic);边际价值明显(提升模型可靠性);成本效益合理(本地模型降低API成本)。扣分:无重大扣分,但成本效益未量化。

证据核验3 / 8 · 1.9/5

证据显示:README中声称的评估结果有链接(Hugging Face数据集),但未提供原始数据;跨来源验证有限;事实与推断区分不明确。扣分:声称的评估结果未完全可追溯,跨来源验证不足。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 代理服务器不认证调用者,部署在不可信网络时需自行添加认证层。
  • 敏感数据处理(如API密钥、用户数据)未在文档中明确说明,使用前需自行评估。
  • 0.9.0版本有破坏性变更,升级前需阅读迁移指南。
证据充分度:低 评估于 2026年8月11日 审查版本 2f79d1a18967 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. 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 查看 ↗
  2. 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 查看 ↗
  3. 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 不是代理编排器。它在一个智能体循环内部运行,使工具调用可靠;多代理图、DAG 规划器和跨代理协调不在范围内。
Forge 可以与 Claude Code 一起使用吗?
可以。代理服务器实现 Anthropic Messages API (/v1/messages),因此您可以设置 ANTHROPIC_BASE_URL=http://localhost:8081 和 ANTHROPIC_AUTH_TOKEN=anything 来将 Claude Code 指向本地模型。
Forge 会隐藏对话历史吗?
在代理模式下,Forge 从不压缩或删除调用者的历史记录——管理滚动窗口是客户端的责任。上下文压缩仅在 WorkflowRunner 中可用。
支持哪些模型?
任何与后端兼容的模型,例如 Ollama 或 llama-server。建议使用比如 Ministral-3-8B-Instruct 等模型,但 Forge 本身不限制模型。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents