开发与工程 llm-tool-callingself-hostedproxy-serverworkflow-runnerollamallama-cppvllm

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

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

FollowAgents 评估 · FARS-2.1
不推荐
49/ 100 五分制 2.5 / 5
1 2 3 4 5 6
1信任安全6 / 29 · 1.0/5

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

2可靠稳定9 / 14 · 3.2/5

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

3适用触发12 / 18 · 3.3/5

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

4规范维护10 / 18 · 2.8/5

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

5有效结果9 / 13 · 3.5/5

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

6证据核验3 / 8 · 1.9/5

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

证据充分度: 评估于 2026年8月11日 审查版本 2f79d1a18967
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:执行前用户确认、敏感信息处理、回滚或恢复路径
使用前请注意
  • 代理服务器不认证调用者,部署在不可信网络时需自行添加认证层。
  • 敏感数据处理(如API密钥、用户数据)未在文档中明确说明,使用前需自行评估。
  • 0.9.0版本有破坏性变更,升级前需阅读迁移指南。
评估证据 [1][2][3][4][5]
查看完整评分方法 →

这个 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_stepsprerequisitesterminal_tool)的 Workflow 对象,并管理完整的生命周期:系统提示、工具执行、上下文压缩(通过 ContextManagerTieredCompact 策略)以及防护栏。Guardrails 外观允许在外部循环中应用防护栏。Forge 支持通过 LlamafileClientOllamaClientOpenAICompatClientVLLMClientAnthropicClient 连接后端。

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

这个 Agent 有哪些优点和局限?

优点
  • 多重防护栏:响应验证、救援解析和重试循环,显著提升自托管模型的工具调用成功率。
  • 三种集成模式:代理服务器、WorkflowRunnerGuardrails 中间件,适用于不同场景。
  • 后端灵活性:支持 OpenAI 兼容端点、Ollama、llama-server、Llamafile、vLLM 和 Anthropic。
  • 包括评估框架(eval_runnerbatch_eval)和 Hugging Face 数据集,用于测量性能。
  • 支持 Anthropic 和 OpenAI API 格式,包括 Claude Code 集成。
局限
  • 需要 Python 3.12+,相比旧版本增加了运行时要求。
  • 代理模式是单次请求,不支持多轮工作流功能,如上下文压缩或步骤强制执行——这些仅在 WorkflowRunner 中可用。
  • 托管模式:停止 Forge 不会停止或拥有 Ollama 守护进程,并且某些 Ollama 选项被拒绝。
  • 基准数据可能过时:Anthropic 数字在 v0.6.0 中测量,未在 v0.7.0 中重新运行。
  • 代理服务器不进行身份验证,管理员需要在网络中信任它。

如何安装或部署这个 Agent?

安装 Forge:pip install forge-guardrailspip 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, ContextManagerTieredCompact。定义一个 Workflow 对象,包含工具和可选的步骤约束,并异步运行 runner.run(workflow, "你的提示")。对于评估,使用 python -m tests.eval.eval_runnerbatch_eval 生成 JSONL 报告。

这个 Agent 与同类方案有什么区别?

Forge 通常与 OpenAI 和 Anthropic API 提供的托管模型进行比较,但它不是像 LangChain 或 AutoGen 这样的编排器。它定位为专门提高工具调用可靠性的层,而不是完整的代理框架。

常见问题

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

对比同类 Agent

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

相关 Agents