create_skill now writes a real predict/act body: the small decision model still authors title + description (engine.generate), then a larger OpenAI-compatible model (default qwen38-iq3s) writes the runnable code against the SKILL.md contract. Bodies persist to data/skills/<cat>/<name>.py, are hot-loaded via importlib, merged into the running tree, and the request re-dispatches to the new leaf. The dashboard decision-flow view shows the title/description with a writing badge while the body is being written. Codegen failure degrades to a navigable stub.
32 lines
1.1 KiB
JSON
32 lines
1.1 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.",
|
|
"base_url": "http://localhost:11434/v1",
|
|
"model": "qwen38-iq3s",
|
|
"timeout": 600
|
|
},
|
|
"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"}
|
|
} |