qwen38-iq3s reasons extensively before emitting the skill body. A max_tokens cap truncated the hidden reasoning (finish_reason: length) leaving content empty, so the body write failed with 'skill body is empty'. Omit max_tokens so the model runs to completion (~7 min); reasoning is filtered automatically since only content is read. Client timeout default raised to 1200s.
32 lines
1.3 KiB
JSON
32 lines
1.3 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 seconds.",
|
|
"base_url": "http://localhost:11434/v1",
|
|
"model": "qwen38-iq3s",
|
|
"timeout": 1200
|
|
},
|
|
"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"}
|
|
} |