Build powerful AI agents with the best open-source serverless function calling framework.
This repository showcases real-world examples of LLM Function Calling using YoMo - the fastest, most developer-friendly way to create serverless functions that your AI agents can call.
- Type-Safe Development: Write functions in TypeScript or Go with full type safety
- LLM-Ready: Functions automatically generate JSON schemas for seamless LLM integration
- Real-Time Performance: Ultra-low latency for responsive AI interactions
- Multi-Model Support: Works with OpenAI, Claude, Llama, Mistral, Azure OpenAI, and more
- Provider Flexibility: Switch between LLM providers without changing your functions
- No Vendor Lock-in: Deploy on any cloud or self-host
# Install YoMo CLI
curl -fsSL https://get.yomo.run | sh
# Run any example
cd node-tool-get-weather
yomo run -n get-weather
- Geo-Distributed: Deploy globally for low latency worldwide
- Auto-Scaling: Handle any load automatically
- Self-Hosting: Full control over your infrastructure
Try it in 2 minutes:
- Clone and run an example:
git clone https://github.com/yomorun/llm-function-calling-examples.git
cd llm-function-calling-examples/node-tool-get-weather
yomo run -n get-weather
- Test with your LLM:
You can grab a free account on vivgrid.com to build your AI Agent:
curl https://api.vivgrid.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-vivgrid.com-token>" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "What's the weather in Tokyo?"}]
}'
That's it! Your AI agent now has weather capabilities.
Explore real-world serverless functions organized by category:
Function | Language | Description |
---|---|---|
node-tool-get-weather | TypeScript | Get weather by city using OpenWeatherMap API |
node-tool-get-weather-google-api | TypeScript | Get weather using Google Weather API |
golang-tool-get-weather | Go | Weather information with geo-coordinates |
node-tool-get-utc-time | TypeScript | Get UTC time by city name |
golang-tool-get-utc-time | Go | UTC time lookup |
golang-tool-timezone-calculator | Go | Calculate timezone for specific time |
Function | Language | Description |
---|---|---|
node-tool-currency-converter | TypeScript | Real-time currency conversion |
golang-tool-currency-converter | Go | Currency calculator with live rates |
Function | Language | Description |
---|---|---|
node-tool-google-web-search | TypeScript | Search using Google Custom Search |
node-tool-tavily-web-search | TypeScript | Web search via Tavily |
node-tool-duckduckgo-web-search | TypeScript | Privacy-focused DuckDuckGo search |
node-tool-get-ip-and-latency | TypeScript | Get IP and latency for websites |
golang-tool-get-ip-and-latency | Go | Network diagnostics with ping |
Function | Language | Description |
---|---|---|
node-tool-send-mail-smtp | TypeScript | Send email via SMTP with nodemailer |
node-tool-send-mail-resend | TypeScript | Modern email via Resend API |
golang-tool-send-mail-smtp | Go | Email sending with Go SMTP |
golang-tool-send-mail-resend | Go | Resend integration for Go |
Function | Language | Description |
---|---|---|
node-tool-postgres-db | TypeScript | PostgreSQL database operations |
Each example demonstrates the YoMo pattern:
TypeScript Functions:
// 1. Define what your function does
export const description = 'Get current weather for a city'
// 2. Define typed arguments
export type Argument = {
city: string
latitude: number
longitude: number
}
// 3. Implement your logic
export async function handler(args: Argument) {
// Your AI agent logic here
return weatherData
}
Go Functions:
// 1. Describe the function
func Description() string {
return "Get current weather for a city"
}
// 2. Define schema
type LLMArguments struct {
City string `json:"city"`
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
}
// 3. Handle requests
func Handler(ctx serverless.Context) {
// Your AI agent logic here
}
# Create new function from template
yomo init my-awesome-function
# Run locally
yomo run
βοΈ Managed Cloud: Use VivGrid for instant deployment with global edge locations.
π Self-Host: Deploy on your own infrastructure:
- Self-Hosting Guide - Full control over your deployment
- Geo-distributed Setup - Multi-region for global performance
- Kubernetes, Docker, or bare metal support
- YoMo Documentation - Complete guides and API reference
- LLM Providers - Integrate with any LLM
- GitHub - Star us and contribute!
Ready to build the future of AI agents? Start with YoMo today! π