项目简介
YoMo (又名 Yogurt Mocha) 是一个开源的 LLM Function Calling 框架,旨在帮助开发者构建可伸缩、低延迟的 AI Agent 后端。它提供了一套完整的解决方案,用于注册和执行工具函数,并与 LLM 客户端进行高效通信,从而赋能新一代 AI 应用。
主要功能点
- 低延迟 MCP 服务器: 基于 QUIC 协议,保证 AI Agent 与 MCP 服务器之间更快的通信速度。
- 安全增强: 默认应用 TLS v1.3 加密,确保 AI Agent 通信的安全性。
- 强类型语言支持: 支持 TypeScript 和 Go,构建更健壮的 AI Agent,提升开发效率和代码质量。
- Serverless DevOps: 简化 LLM 工具的开发、部署和运维流程,降低运营成本。
- 地理分布式架构: 支持全球分布式部署,加速 AI 推理和工具的响应速度,优化用户体验。
安装步骤
-
安装 YoMo CLI:
curl -fsSL https://get.yomo.run | sh安装完成后,可以使用 'yomo version' 命令验证安装是否成功。
-
启动 YoMo 服务器:
- 创建配置文件 'my-agent.yaml' (示例配置如下)。
- 使用命令 'yomo serve -c my-agent.yaml' 启动服务器。
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与 MCP 服务器建立连接。以下是基于 'my-agent.yaml' 示例配置生成的 MCP 服务器配置信息(JSON 格式):
{ "server_name": "my-agent", "command": "yomo serve", "args": [ "-c", "my-agent.yaml" ], "description": "启动 YoMo MCP 服务器,配置文件为 my-agent.yaml", "notes": { "server_name": "服务器名称,与配置文件中的 name 字段一致", "command": "启动服务器的命令,通常为 'yomo serve'", "args": "命令参数,'-c my-agent.yaml' 指定配置文件路径", "description": "对该服务器配置的描述信息", "notes": "其他配置说明" } }
'my-agent.yaml' 配置文件示例:
name: my-agent # 服务器名称 host: 0.0.0.0 # 监听地址 port: 9000 # 监听端口 auth: # 认证配置 type: token # 认证类型为 token token: SECRET_TOKEN # 认证 token bridge: # 桥接配置 (AI 相关) ai: server: # AI 服务配置 addr: 0.0.0.0:9000 # OpenAI API 兼容端点地址 provider: vllm # 使用的 LLM 提供商 providers: # LLM 提供商配置 vllm: # vllm 提供商 api_endpoint: http://127.0.0.1:8000/v1 # vllm API 端点 model: meta-llama/Llama-4-Scout-17B-16E-Instruct # 使用的模型 ollama: # ollama 提供商 api_endpoint: http://localhost:11434 # ollama API 端点
基本使用方法
-
定义工具函数 (Function Calling): 使用 TypeScript 或 Go 编写类型安全的工具函数,例如天气查询函数 'get-weather.ts'。
export const description = 'Get the current weather for 'city'' export type Argument = { city: string; } export async function handler(args: Argument) { // ... (工具函数逻辑) } -
运行工具函数: 使用 'yomo run -n get-weather' 命令运行工具函数。
-
通过 HTTP 接口与 LLM 交互: 使用 'curl' 或其他 HTTP 客户端向 YoMo 服务器的 OpenAI 兼容端点发送请求,进行对话交互并触发 Function Calling。
curl http://127.0.0.1:9000/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer SECRET_TOKEN" \ -d '{ "messages": [ { "role": "user", "content": "今天亚拉河畔公园环路适合远足吗?我应该穿什么?" } ], "stream": false }'服务器会根据用户输入,智能调用注册的工具函数(例如 'get-weather'),并将结果返回给 LLM,最终生成包含天气信息的回复。
更多示例
请参考 Servereless LLM Function Calling Examples 获取更多使用案例和灵感。
信息
分类
AI与计算