Files
semif-agent/config.example.json
T

35 lines
1.5 KiB
JSON

{
"_comment": "Per-machine config. config.json is gitignored; copy this file to config.json and adjust paths. The box (guppy) keeps its own config.json with local paths.",
"tau": 0.6,
"max_reentries": 3,
"queue": {"max_size": 100, "age_rate": 0.01},
"engine": {
"backend": "llamacpp",
"source": "Qwen/Qwen3.5-4B",
"revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
"gguf": "/home/abby/models/Qwen3.5-4B-Q4_K_M.gguf",
"context_tokens": 4096,
"threads": 8
},
"llm": {"base_url": "http://localhost:11434/v1", "model": "qwen3.5:4b"},
"codegen": {
"_comment": "OpenAI-compatible model that writes runnable skill bodies. Larger/slower than the decision or self-assessment model. No max_tokens cap: qwen38-iq3s reasons extensively (~7 min) before emitting the body; reasoning is filtered automatically. timeout is total seconds; idle_warn/idle_timeout surface a silent (wedged) stream in minutes instead of blocking on the total timeout.",
"base_url": "http://localhost:11434/v1",
"model": "qwen38-iq3s",
"timeout": 1200,
"stream": false,
"idle_warn": 60,
"idle_timeout": 180
},
"skill_bodies": "data/skills",
"skills": {
"email": {"cost_budget": 1.0},
"contacts": "data/contacts.json",
"drafts": "data/drafts",
"packages": "data/packages.json"
},
"log": "data/decisions.jsonl",
"trace": "data/runs.jsonl",
"category_registry": "data/categories.json",
"dashboard": {"port": 8765, "host": "0.0.0.0"}
}