Skip to content

API Reference

The main viber package exports the following:

import {
// Core classes
Agent,
Space,
// Tool utilities
tool,
// Streaming
streamText,
generateText,
// Types
type Message,
type Tool,
type AgentConfig,
type SpaceConfig,
} from 'viber';

The primary class for creating AI agents.

new Agent(config: AgentConfig)
PropertyTypeRequiredDescription
namestringAgent identifier
modelstringLLM model (e.g., openai:gpt-4o)
systemPromptstringAgent instructions
toolsTool[]Available tools
temperaturenumberCreativity (0-1)
maxTokensnumberResponse limit

Stream a text response.

const result = await agent.streamText({
messages: Message[],
onToolCall?: (call) => void,
});

Generate a complete text response (non-streaming).

const result = await agent.generateText({
messages: Message[],
});

Workspace management for organizing artifacts and history.

new Space(config: SpaceConfig)
MethodReturnsDescription
saveArtifact(name, content)Promise<void>Save an artifact
readArtifact(name)Promise<string>Read an artifact
listArtifacts()Promise<string[]>List all artifacts
getHistory()Promise<Message[]>Get conversation history
clearHistory()Promise<void>Clear history

Define a tool for agents.

const myTool = tool({
name: string,
description: string,
parameters: ZodSchema,
execute: (params) => Promise<any>,
});

import { useAgent, useChat, useAgentStore } from 'viber/react';
import { createAgentStore, createChatStore, agentStore } from 'viber/svelte';
import { streamToResponse } from 'viber/server';