Skip to content
This page was translated from the Chinese original, which has changed since — it may be out of date. The Chinese version is authoritative. View the Chinese original →

Quickstart In development ​

Launch your first Kova Agent in 5 minutes.

5 minEstimated time
3Install methods
ZeroExternal dependencies

Prerequisites

Docker or Rust 1.93+ (either) · Lurus API KeyAPI KeyA secret credential for accessing the API, much like a password. Each Key can have its own quota and permissions.Learn more → (how to get one) · 8 GB+ RAM (recommended) · basic terminal knowledge. About 5 minutes.

Install

Install Kova

Docker (recommended), a prebuilt binary, or build from source — pick whichever you prefer.

Choose an installation method
docker run -d \
  --name kova \
  -p 8080:8080 \
  -v kova-data:/data \
  -e LURUS_API_KEY=sk-your-key \
  ghcr.io/hanmahong5-arch/kova:latest

Download prebuilt binaries from GitHub Releases:

PlatformFile
Linux x86_64kova-linux-amd64
macOS (Apple Silicon)kova-darwin-arm64
macOS (Intel)kova-darwin-amd64
Windowskova-windows-amd64.exe

Rust version requirement

Kova requires Rust 1.93+ (Edition 2024). We recommend managing your toolchain with rustup.

Configure

Configuration

Create a configuration file kova.toml:

toml
[server]
port = 8080
data_dir = "./data"

[llm]
# 通过 Lurus API 接入所有模型
provider = "openai-compatible"
base_url = "https://hub.lurus.cn/v1"
api_key = "sk-your-lurus-key"
default_model = "deepseek-chat"

[wal]
# WAL 持久化配置
enabled = true
sync_mode = "normal"  # "normal" | "full" (每次写入 fsync)

[security]
# 可选:启用 WAL 加密
# encrypt = true
# encrypt_algorithm = "aes-256-gcm"

Get started

Launch your first Agent

Use REST, the Rust SDK, or the CLI to create an Agent, send a task, and stream its execution.

Once it’s running, pick the integration method you’re comfortable with to create and run your first Agent (see the API Reference for the full endpoint list).


Workflow

Create a workflow

A workflow chains multiple steps into an ordered execution pipeline (steps pass values to each other via template variables — see the example below):

bash
curl -X POST http://localhost:8080/api/v1/workflows \
  -H "Content-Type: application/json" \
  -d '{ "name": "content-pipeline", "steps": [
    { "name": "research", "agent": "researcher", "prompt": "研究主题:{{input.topic}}" },
    { "name": "write", "agent": "writer", "prompt": "基于研究报告撰写博客:\n{{steps.research.output}}" },
    { "name": "review", "agent": "editor", "prompt": "审校并优化:\n{{steps.write.output}}" }
  ] }'

# 触发
curl -X POST http://localhost:8080/api/v1/workflows/content-pipeline/run \
  -H "Content-Type: application/json" -d '{"input": {"topic": "边缘计算与 AI 推理"}}'

Persistence

Verify persistence

Kill the process, and after a restart the task automatically resumes from the WAL checkpoint.

Test Kova’s crash-recovery capability:

  1. Start a long-running task

    bash
    kova agent run researcher "写一份 5000 字的深度报告"
  2. While the task is running, forcibly terminate the process

    bash
    kill -9 $(pgrep kova)
  3. Restart Kova

    bash
    ./kova serve
  4. Check the task status — it resumes automatically from the checkpoint

    bash
    kova task status

Why recovery works

Every step writes to the WALWALWrite-Ahead Log. Every state change is written to the log before it executes, ensuring recovery from the log after a crash.Learn more → (with a CRC32 checksum) before it executes. When the process crashes, any step that wasn’t confirmed complete is replayed from the checkpoint after restart — no re-calling the LLM, no lost progress. See Core Concepts for details.

Next steps ​

Next steps

Powered by Lurus Technologies