Raw SDK
Use Fuze with raw OpenAI or Anthropic SDK calls — no framework required.
TypeScript
import { guard } from 'fuze-ai'
import OpenAI from 'openai'
const client = new OpenAI()
const tools = {
search: guard(async (query: string) => {
return await vectorDb.search(query)
}),
send_email: guard(
async (to: string, body: string) => {
return await ses.sendEmail(to, body)
},
{ sideEffect: true, compensate: recallEmail }
),
}
async function handleToolCall(toolCall: any) {
const fn = tools[toolCall.function.name]
const args = JSON.parse(toolCall.function.arguments)
return await fn(...Object.values(args))
}Python
from fuze_ai import guard
from anthropic import Anthropic
client = Anthropic()
@guard
def search(query: str):
return vector_db.search(query)
@guard(side_effect=True, compensate=recall_email)
def send_email(to: str, body: str):
return ses.send_email(to, body)
tools = {"search": search, "send_email": send_email}
def handle_tool_use(tool_use):
fn = tools[tool_use.name]
return fn(**tool_use.input)Batch wrapping
from fuze_ai import guard_all
guarded = guard_all(
{"search": search_fn, "calculate": calc_fn, "send_email": email_fn},
side_effects=["send_email"]
)