Skip to content

alpha.8+: swap llama-server backend for genie-ai-runtime (opt-in then default) #27

Description

@ai-hpc

Goal

Swap GenieClaw's LLM backend from llama-server (llama.cpp) to jllm-server (https://github.com/GeniePod/genie-ai-runtime) — first as opt-in, then as default — once the runtime ships v1.0 (or earlier if parity comes sooner).

genie-ai-runtime is an Orin-tuned C++17 + CUDA inference runtime specifically built to coexist on the 7.6 GB iGPU alongside whisper-server, Piper, DFN, and Home Assistant. It's currently v0.1.0-alpha.1 — code-complete, pending hardware validation.

Tasks

Opt-in (target: GenieClaw alpha.8)

  • New config field: [core] llm_backend = "llama-server" | "genie-ai-runtime", default "llama-server".
  • When llm_backend = "genie-ai-runtime", setup-jetson.sh audits that /opt/jllm/bin/jllm-server exists and the jllm-server.service unit is enabled.
  • LlmClient HTTP shape: confirm /v1/chat/completions (jllm) and /completion (llama) can both be served behind the same Rust client, or add a thin shim.
  • Document the swap procedure in doc/llm-backend-swap.md.
  • Test cycle on the Jetson: run a week of voice cycles against jllm with the latency banner (Print first-voice-reply latency banner at startup #19) recording first-reply times for A/B against llama.

Default flip (target: genie-ai-runtime v1.0)

  • Flip the llm_backend default to "genie-ai-runtime" in deploy/config/geniepod.toml.
  • setup-jetson.sh's [5/6] Checking llama.cpp block becomes a fallback check; primary is jllm.
  • Update README.md alpha.X verification block with the new backend's measured numbers.
  • CHANGELOG entry describing the swap and how to opt back into llama-server.

Acceptance

  • Either backend can be selected via config alone — no rebuild of genie-core required.
  • First-reply latency banner numbers on jllm are ≤ llama on the same model + prompt set.
  • Memory budget audit (per doc/workflow/prompt.md §7) shows the swap freed iGPU vs llama (this is the whole reason genie-ai-runtime exists).

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions