Sandbox
@yomorun/yomo

Serverless agent framework for LLM tools

YoMo is a Rust framework for building LLM agents that call tools through a serverless runtime. It combines a server, a CLI, and tool execution pieces so you can define a function, run it, and serve it through the same system.

1,924 stars147 forksRustUpdated 7d ago
Who it's for

Builders who want to ship agent apps with serverless tools and low-latency deployment.

What it delivers

You can build agent tools once and run them through a managed serverless runtime instead of wiring everything by hand.

What it does

Serverless LLM tools

Deploy and manage LLM tools or skills through the YoMo runtime.

Function calling runtime

Connect an agent to tools through the framework’s chat and tool endpoints.

Geo-distributed architecture

Place inference and tools closer to users for faster responses.

TLS-secured transport

Encrypt agent communications with TLS v1.3 by design.

CLI workflow

Use `yomo serve`, `yomo init`, and `yomo run` to start the server and launch tools.

How to get it

  1. 1Run
    curl -fsSL https://get.yomo.run | sh
  2. 2Verify the installation
    yomo --version
  3. 3Use Ollama as the LLM provider
    ollama pull ornith
  4. 4Launch the server
    yomo serve
  5. 5Run
    yomo init
  6. 6Finished, now, let's run it
    yomo run -n get-weather ./app

README

YoMo codecov

YoMo is an open-source LLM Function Calling Framework for building scalable and ultra-fast AI Agents. 💚 We care about: Empowering Exceptional Customer Experiences in the Age of AI

We believe that seamless and responsive AI interactions are key to delivering outstanding customer experiences. YoMo is built with this principle at its core, focusing on speed, reliability, and scalability.

🌶 Features

Features
⚡️Serverless LLM ToolsDeploy and Manage LLM Tools / Skills seamlessly.
🔐Enhanced SecurityTLS v1.3 encryption is applied to every data packet by design, ensuring robust security for your AI agent communications.
📸Effortless Agents DevOpsStreamline the entire lifecycle of your LLM tools, from development to deployment. Significantly reduces operational overhead, allowing you to focus exclusively on creating innovative AI agent functionalities.
🌎Geo-Distributed ArchitectureBring AI inference and tools closer to your users with our globally distributed architecture, resulting in significantly faster response times and a superior user experience for your AI agents.

🚀 Getting Started

Let's build a simple AI agent with LLM Function Calling to provide weather information:

Step 1. Install CLI

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

Verify the installation:

yomo --version

Step 2. Start the server

Use Ollama as the LLM provider:

ollama pull ornith

Launch the server:

yomo serve

You can also use the --config flag to specify a custom coniguration yaml file.

Step 3. Implement the LLM Function Calling

yomo init

Finished, now, let's run it:

yomo run -n get-weather ./app

Done, let's have a try

curl http://127.0.0.1:9001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
  "messages": [
    {
      "role": "user",
      "content": "I am going for a hike on the Yarra Bend Park Loop. What should I wear?"
    }
  ]
}'

You'll receive a helpful response like this:

Yarra Bend Park is on the Yarra River and gets misty/foggy when it overflows from its channel into the park—this typically occurs on damp autumns around November. Today's conditions are mild, warm, dry, with no fog expected today but a chance of light rain or drizzle possible tomorrow afternoon.

**Clothing for your hike:**
- **Base/mid-layer:** A long-sleeve top is enough. If it gets chilly at the river bank (a 2°C drop is possible), add a fleece mid-layer rather than relying on just an autumn outer shell.
- **Pants:** Jeans are okay if you want them, but light hiking pants or athletic wear are more comfortable and dry faster.
- **Footwear:** You'll be on forest trails around the Yarra River—sturdy sneakers will do for the loop today. If there's rain tomorrow afternoon, bring a pair of boots.
- **Rain gear:** Carry an umbrella just in case you get caught on the trail after the rain passes this weekend.

**Don't worry about mosquitoes this month.** They arrive in March/April when it gets hot and dry—and that's right around the time summer solstice fog starts forming (June). In November, no mosquitoes at all.

Explore More Examples

Check out our Servereless LLM Function Calling Examples for more use cases and inspiration.

📚 Documentation

Read more about YoMo on yomo.run.

🎯 Focuses on Geo-distributed AI Inference Infra

It’s no secret that today’s users want instant AI inference, every AI application is more powerful when it response quickly. But, currently, when we talk about distribution, it represents distribution in data center. The AI model is far away from their users from all over the world.

If an application can be deployed anywhere close to their end users, solve the problem, this is Geo-distributed System Architecture:

yomo geo-distributed system

🦸 Contributing

First off, thank you for considering making contributions. It's people like you that make YoMo better. There are many ways in which you can participate in the project, for example:

  • File a bug report. Be sure to include information like what version of YoMo you are using, what your operating system is, and steps to recreate the bug.
  • Suggest a new feature.
  • Read our contributing guidelines to learn about what types of contributions we are looking for.
  • We have also adopted a code of conduct that we expect project participants to adhere to.

Devleopment

  • Build

    cargo build --release
    
    ./target/release/yomo --help
    
  • Use Ollama as the LLM provider:

    ollama pull ornith
    
  • Run YoMo server:

    ./target/release/yomo serve
    
  • Initialize a Serverless LLM Tool project:

    ./target/release/yomo init
    

    then edit ./app/src/app.ts in the project.

  • Run YoMo serverless tool:

    ./target/release/yomo run --name get-weather ./app
    
  • Send a request to the LLM agent:

    curl \
      --request POST \
      --url http://127.0.0.1:9001/v1/chat/completions \
      --header 'Content-Type: application/json' \
      --data '{
        "messages": [
            {
                "role": "user",
                "content": "How is the weather in London?"
            }
          ]
        }'
    
  • Send a request to the serverless function directly:

    curl \
      --request POST \
      --url http://127.0.0.1:9001/tool/get-weather \
      --header 'Content-Type: application/json' \
      --data '{
        "args":"{\"city\":\"London\"}"
      }'
    

License

Apache License 2.0

Files in the repo

Repository payload7 top-level entries
  • .github
  • certs
  • serverless
  • src
  • .gitignore
  • Cargo.toml
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More frameworks & sdks

HKUDS/nanobotFrameworks & SDKs

Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps

48k
microsoft/
SkillOpt
microsoft/SkillOptFrameworks & SDKs

SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.

17k
omnigent-ai/omnigentFrameworks & SDKs

Omnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents — swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.

9.8k
kyegomez/
OpenMythos
kyegomez/OpenMythosFrameworks & SDKs

A theoretical reconstruction of the Claude Mythos architecture, built from first principles using the available research literature.

15k
D4Vinci/ScraplingFrameworks & SDKs

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

80k