straylight: install OpenCode config for local llama.cpp models
Managed /etc/opencode/opencode.json points at straylight:11434 with the router model ids, Laguna as default, Ornith 1.5 9B as small_model, and a vision subagent on Qwen3-VL-8B abliterated.
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# OpenCode pointed at straylight's llama.cpp OpenAI-compatible API.
|
||||
# Managed config lives in /etc/opencode/ (highest OpenCode precedence on Linux).
|
||||
# llama-server is on straylight:11434; MagicDNS resolves that to loopback here.
|
||||
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
llamaBase = "http://straylight:11434/v1";
|
||||
limit = { context = 131072; output = 32768; };
|
||||
text = name: {
|
||||
inherit name limit;
|
||||
modalities = { input = [ "text" ]; output = [ "text" ]; };
|
||||
};
|
||||
vision = name: {
|
||||
inherit name limit;
|
||||
modalities = { input = [ "text" "image" ]; output = [ "text" ]; };
|
||||
};
|
||||
cfg = {
|
||||
"$schema" = "https://opencode.ai/config.json";
|
||||
enabled_providers = [ "llama.cpp" ];
|
||||
model = "llama.cpp/laguna-s-2.1";
|
||||
small_model = "llama.cpp/ornith-1.5-9b-uncensored";
|
||||
provider = {
|
||||
"llama.cpp" = {
|
||||
npm = "@ai-sdk/openai-compatible";
|
||||
name = "llama.cpp (straylight)";
|
||||
options = {
|
||||
baseURL = llamaBase;
|
||||
apiKey = "none";
|
||||
};
|
||||
models = {
|
||||
"laguna-s-2.1" = text "Laguna S 2.1";
|
||||
"qwen3.6-35b-a3b-abliterated" = text "Qwen3.6 35B A3B";
|
||||
"gemma4-26b-a4b-abliterated" = text "Gemma 4 26B A4B";
|
||||
"ornith-1.0-35b" = text "Ornith 1.0 35B";
|
||||
"ornith-1.5-9b-uncensored" = text "Ornith 1.5 9B";
|
||||
"ornith-1.5-35b-a3b" = text "Ornith 1.5 35B MoE";
|
||||
"qwen3.8-27b-uncensored" = text "Qwen3.8 27B";
|
||||
"qwen3-vl-8b-abliterated" = vision "Qwen3-VL 8B";
|
||||
};
|
||||
};
|
||||
};
|
||||
agent = {
|
||||
vision = {
|
||||
description = "Look at images, screenshots, diagrams, UI captures, and other visual artifacts. Use whenever the task needs to see a picture rather than guess from a filename or OCR text.";
|
||||
mode = "subagent";
|
||||
model = "llama.cpp/qwen3-vl-8b-abliterated";
|
||||
color = "accent";
|
||||
permission = {
|
||||
edit = "deny";
|
||||
};
|
||||
prompt = ''
|
||||
You are a vision specialist running on Qwen3-VL-8B (abliterated) via llama.cpp.
|
||||
|
||||
You receive image paths and/or attached images. Describe what is actually in the image.
|
||||
Transcribe visible text. Answer the caller's question about the image. Do not invent UI
|
||||
that is not there. If the image cannot be read, say so and what you would need instead.
|
||||
|
||||
You may read files (including images) and run read-only shell commands. Do not edit the
|
||||
workspace; report findings back to the parent agent.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
environment.etc."opencode/opencode.json".text = builtins.toJSON cfg;
|
||||
}
|
||||
Reference in New Issue
Block a user