使用 MCP 和 Bifrost 让 AI 工作流可预测 🔥
Source: Dev.to
LLM 开发与对生产级网关的需求
LLM 开发迅速超出简单实验的范畴。如今,AI 系统不再只是文本生成器;它们是完整的生产应用,能够与 API、数据库、文件以及内部服务协同工作。模型上下文协议(Model Context Protocol,MCP) 已成为统一模型与工具、基础设施交互的标准。
但随着复杂度的提升,出现了新的问题:可管理性。MCP 服务器、工具和集成越多,模型行为就越难预测——工具选择、操作顺序、成本以及结果的稳定性都会受到影响。
生产级 LLM 网关登场
Bifrost MCP Gateway 与 Code Mode 的组合,将 MCP 从实验性的集成层转变为可管理、可扩展且可预测的基础设施。编排从提示工程转向代码,使 LLM 能专注于其最擅长的——推理和决策——而不是“ juggling ”工具。
当基于 LLM 的系统超出实验阶段时,工具和集成的管理变得至关重要。MCP 为文件、数据库、API 和内部服务提供统一标准,便于在工作流之间连接和复用能力。在大型生产环境中,模型往往会花费大量资源去弄清哪些工具可用,而不是解决实际问题。
带有 Code Mode 的 Bifrost 集中管理工具,将编排从提示转为代码,降低 token 使用量,加快执行速度,并使结果可预测。由此形成的架构可管理、安全且具备可扩展性。
启用 Code Mode in Bifrost
- 打开 MCP Gateway 选项卡。
- 编辑客户端。
- 为客户端启用 Code Mode。
- 保存。
💎 Star Bifrost ☆
⚙️ Bifrost 与代码模式如何将 LLM 转变为受管基础设施
在构建可投入生产的 AI 工作流时,管理跨多个 MCP 服务器的数十种工具很容易让人不堪重负。代码模式通过仅公开三个元工具来改变 LLM 与 MCP 工具的交互方式:
listToolFilesreadToolFileexecuteToolCode
这种极简接口保持模型上下文轻量且可预测,所有编排工作都在安全的执行沙箱中完成。
好处
- 降低 token 使用量 – 模型生成代码,而不是反复描述工具调用。
- 降低延迟 – 编排在代码中完成,而不是通过多次往返请求。
- 确定性输出 – 执行在具有固定环境的沙箱中进行。
- 完全控制与可调试性 – 开发者可以检查并调试生成的代码。
示例:Bifrost 沙箱中的 TypeScript 工作流
const results = await youtube.search({ query: "LLM", maxResults: 10 });
const titles = results.items.map(item => item.snippet.title);
return { titles, count: titles.length };
模型专注于推理和输出生成,而网关则安全地处理工具执行。
规模化工具管理
随着 AI 项目的扩展,模型需要交互的工具、API 和数据源数量可能会急剧增加。如果没有集中式的 LLM 网关,每个模型都必须独立发现并编排这些资源,导致:
- 行为不可预测
- 延迟高
- 令牌使用过多
集中式网关可以解决这些问题。例如,通过单一的 Bifrost 端点列出可用的 MCP 工具,只需如下操作:
# List available MCP tools via Bifrost Gateway
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
这可以降低复杂度,最小化延迟,并实现高效的扩展。
使用代码模式管理复杂工作流
如果没有标准,模型可能在每一次交互中收到所有工具定义,需要解析庞大的模式并做临时决策。这会导致延迟增加、令牌消耗升高以及不可预测性。
使用 Bifrost 的代码模式,模型可以:
- 列出可用工具。
- 只读取它需要的定义。
- 在安全的沙箱中执行代码。
// List all available MCP tool files
const tools = await listToolFiles();
// Read a specific tool definition
const youtubeTool = await readToolFile('youtube.ts');
// Execute a workflow using the tool
const results = await executeToolCode(async () => {
const searchResults = await youtubeTool.search({ query: "AI news", maxResults: 5 });
const titles = searchResults.items.map(item => item.snippet.title);
return { titles, count: titles.length };
});
console.log("Found", results.count, "videos:", results.titles);
模型不再需要手动处理每个工具;它能够发现、加载并可预测地编排这些工具。MCP 与类似 Bifrost 的网关结合后,可将复杂的多步骤工作流转化为可管理、确定性的过程。
Bifrost 中的默认无状态工具调用模式
- POST
/v1/chat/completions→ LLM 返回工具调用建议(未执行)。 - 您的应用 审核工具调用 → 应用安全规则,必要时获取用户批准。
- POST
/v1/mcp/tool/execute→ 明确执行已批准的工具调用。 - POST
/v1/chat/completions→ 使用工具结果继续对话。
保证
- 不会意外调用外部服务的 API。
- 不会误删或误改数据。
- 所有工具操作都有完整审计日志。
- 对敏感操作进行人工监督。
如果您对项目有任何疑问,我们的支持团队很乐意在评论区或论坛中为您解答。
Discord 频道
您可以在以下位置找到更多项目资料:
感谢阅读本文!