Skip to content

An agent
you can embed.

One JS client. One Rust runtime. Stream, tools and MCP — without standing up your own orchestration.

js rs $ npm install @sveda-ai/core

Client. Runtime. Stream. MCP.

Infrastructure, not a chatbot.

Replace orchestration glue with a JS client, a Rust runtime, and a stream protocol.

JS client

Install @sveda-ai/core. Sessions, stream, and frontend tools — any host that can run JS.

package.json

"@sveda-ai/core": "^0.1"

SvedaClient →

Rust runtime

sveda-server beside the host — agent loop, catalog, MCP. Not in your request cycle.

SVEDA-SERVER :8787

POST /sveda/embed/token

POST /sveda/stream

GET /sveda/health

Stream lifecycle

Tokens, tools, MCP events. One pipe from turn to the client.

USER
TOOL
MODEL
ANSWER
search_code packages/core08:21:14
deepseek-v4-flash 20008:21:15
Stream helddone

Failover

Ordered model list. One key path if a provider drops.

FAILOVER PATH primary live
  • Flash Responseslive
  • Flash Anthropicstandby
  • DeepSeek V4 Procatalog

Fallback not required. Stream held.

The problem with rolling your own agent

You want a copilot in the product. Instead you are managing pipes.

Orchestration repos

Control plane, workers, prompt router. Weeks before a client ships.

Eval glue

Harnesses and replay live in a different repo from the product.

MCP wiring

Each server is a custom client, a session, and a pile of headers.

Model lock-in

Swap a provider and you rewrite the stream, the tools, and the UI.

How it works

JS client, Rust runtime, stream, MCP — one attach path.

Embed token

Each visitor gets a scoped token. Auth stays on your host.

KA

Kirill A.

visitor_id

PREFERENCES

Client tools
Embed token

Runtime scan

sveda-server checks models, tools, and host MCP before the first token.

SCAN: deepseek-v4-flash

Responses

live

Anthropic

standby

Pro

catalog

One prompt, one client

The host sends a turn. Sveda fans it into tools, MCP, and the model.

session.send

"Ship a copilot into the product."

stream

text.delta → tool.call → message.end

Automatic failover

If the primary model drops, the ordered list continues the stream.

Primary: DeepSeek V4 Flash (Responses)

timeout — fallback Flash Anthropic

Stream resumed 200

sveda --models

CATALOG

  • DeepSeek V4 Flash Default stream. Responses protocol. responses live
  • Flash Anthropic Builtin failover. Same model, Anthropic path. anthropic live
  • DeepSeek V4 Pro Heavier reasoning. Same runtime catalog. responses live
  • Custom endpoint Any Responses or Anthropic URL in settings. catalog live
  • Failover chain Ordered list. Stream continues if a provider drops. list live

sveda --mcp

TOOLS

Connectors and tools. Not feature bullets.

search_code

Query the workspace index.

read_code_file

Open a file the runtime already indexed.

spawn_tasks

Parallel work in one stream.

search_agent_tools

Discover deferred MCP tools.

client tools

Register handlers on SvedaClient.

host MCP

HTTP MCP from the embed token.

MCP

  • host http
  • client tools js
  • index search_code

sveda --delta

SPEED

Custom agent

6-8 weeks

  • Orchestration repo + eval harness
  • Glue for tools, MCP, streaming
  • Prompt router, keys, failover by hand

Sveda

1 evening

  • @sveda-ai/core + sveda-server
  • Stream protocol + host MCP
  • Models, failover, admin included

FAQ

What is Sveda?

Sveda is an embeddable agent: a universal JavaScript client (@sveda-ai/core), an independent Rust runtime (sveda-server), a stream protocol, and MCP — without standing up your own orchestration.

Do I replace my app?

No. sveda-server sits beside the host. Your routes, auth, and deploy stay yours. The JS client talks to the runtime over HTTP and the stream protocol.

Which models can I use?

DeepSeek V4 Flash and Pro are first-class. The catalog also takes custom Responses or Anthropic endpoints, plus an ordered failover list.

Do I need a separate agent orchestrator?

No. The agent loop, tools, and host MCP run inside sveda-server. Register frontend tools on SvedaClient instead of wiring a new control plane.

How do I connect the SDK from my backend?

Mint a sveda_embed_ token on the server, then open JS chat or an iframe. Numbered guides cover PHP, Laravel, Python (Flask, Django, FastAPI), Node (Express, Nest, Next), Ruby, Go, Java, and .NET. Without a framework, use static HTML plus a tiny POST /sveda/session — or curl locally.

Do I need a web framework?

No. Framework packages are wrappers. A static page, an iframe, or a few lines of HTTP still mint the same origin, token, expires_in JSON.