项目简介

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 推理和工具的响应速度,优化用户体验。

安装步骤

  1. 安装 YoMo CLI:

    curl -fsSL https://get.yomo.run | sh

    安装完成后,可以使用 'yomo version' 命令验证安装是否成功。

  2. 启动 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 端点

基本使用方法

  1. 定义工具函数 (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) {
      // ... (工具函数逻辑)
    }
  2. 运行工具函数: 使用 'yomo run -n get-weather' 命令运行工具函数。

  3. 通过 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与计算