antoinezambelli/forge
A Python framework for self-hosted LLM tool-calling and multi-step agentic workflows
解决的问题
Forge 为自托管 LLM 工具调用提供可靠性层。它解决了本地模型(尤其是 8B 参数左右的小型模型)在执行工具时表现出的不稳定问题,这些问题通常表现为输出格式错误、工具选择错误或无法遵循结构化工作流。
工作原理
Forge 实现了一套位于 LLM 和应用程序之间的护栏(guardrails)栈。它可以通过三种方式使用:
- Proxy Server:一个即插即用的代理,支持 OpenAI 和 Anthropic API。它透明地拦截请求并应用护栏,允许现有工具(如 aider 或 Claude Code)在无需更改代码的情况下使用本地模型。
- WorkflowRunner:一个用于定义工具和结构化智能体循环的高级框架,管理从系统提示词到上下文压缩的完整生命周期。
- Guardrails Middleware:一组可组合的工具,可以集成到现有的自定义编排循环中。
关键技术机制包括:
- Rescue Parsing:从非规范格式(例如 XML 或带围栏的 JSON)中提取结构化的工具调用,并将其转换为标准模式。
- Response Validation:在工具调用到达客户端之前,根据定义的规范进行检查。
- Retry Loops:通过对模型进行纠正性“提示(nudges)”,自动重试失败的推理。
- Synthetic
respondTool:强制模型使用特定的工具进行文本响应,防止在生成文本和调用工具之间产生常见的混淆。
适用对象
使用自托管 LLM(通过 Ollama、vLLM、llama.cpp 等)构建智能体应用程序的开发者,他们需要工具调用的生产级可靠性,而无需切换到庞大的前沿模型。
亮点
- 显著的性能提升:在评估套件中,将 8B 本地模型的可靠性从个位数提升到了 84%。
- 广泛的后端支持:兼容 Ollama、llama-server、Llamafile、vLLM 和 Anthropic。
- 零重写集成:代理模式允许在不修改源代码的情况下增强现有的 AI 编码工具链。
- 上下文管理:包括用于高效管理 Token 预算的分层压缩策略。