1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# Agent creator — an mm agent that creates mm agents.
#
# Give it a model served by llmman and a job; it reads the model's facts
# (skills/create-agent/model_facts.py: size, context window, sampling in the
# GGUF, the chat template's reasoning switches and tool-call format), asks
# what it is missing with ask_user, writes a commented agent.yaml tuned to
# that model, and checks that the file loads and answers. The procedure is
# the `create-agent` skill (skills/create-agent/SKILL.md).
#
# Model: Qwen3.8 27B (17.4 GB, dense, reasoning on). Chosen because it is the
# one that followed every step in the measurements of demos/qwen-style
# (14/14 on seven Go tasks: bash, files, a git workflow, faithful reports) —
# this job is a procedure of several steps with bash, a file to write and a
# question form. It is slow-ish on a laptop; creating an agent is rare.
#
# Run it FROM THE REPOSITORY ROOT (the skill and its script are found there):
#
# llmman pull hf.co/unsloth/Qwen3.8-27B-GGUF:Q4_K_M
# llmman serve
# ./mm -config agent.creator.yaml
# > Create an agent that translates French to English with hf.co/unsloth/gemma-4-E4B-it-GGUF:Q4_K_M
#
# Every key is optional; reference: docs/en/reference/configuration.md.
# ─── Model and server ────────────────────────────────────────────────────────
provider: llmman
model: hf.co/unsloth/Qwen3.8-27B-GGUF:Q4_K_M
baseUrl: http://127.0.0.1:17434/v1
fallback: http://host.docker.internal:17434/v1
contextWindow: 0
sampling:
# Qwen's settings for a thinking model on precise work (the GGUF says 1.0).
temperature: 0.6
top_p: 0.95
top_k: 20
min_p: 0.0
# The reasoning plus a whole agent.yaml in one write_file.
max_tokens: 16384
parallel_tool_calls: false
# Qwen3.8's template: enable_thinking (default on) and reasoning_effort
# low | medium | xhigh — any other value makes every request fail.
chat_template_kwargs:
enable_thinking: true
reasoning_effort: medium
showThinking: true
# ─── Timeouts ────────────────────────────────────────────────────────────────
# Loading ~17 GB on the first question; the check in step 5 starts another
# mm, which may load the target model too.
firstTokenTimeout: 5m
watchdogTimeout: 5m
bashTimeout: 5m
# ─── Agent loop ──────────────────────────────────────────────────────────────
# The questions, the facts, the file, the check, a fix or two.
maxTurns: 20
maxOutput: 20000
displayCommands: true
# ─── Tools ───────────────────────────────────────────────────────────────────
# Asks before running the script, writing the file and running the check:
# [a] once, [s] this tool for the session, [r] reject, [n] never.
# AGENT_YOLO=true for unattended runs.
yolo: false
bashTool: true # model_facts.py, the check
editTools: true # writes and fixes agent.yaml
askUserTool: true # the model, the job, the constraints
planTool: false
fetchContentTool: false # set true to let it read a model card on the web
# The repository's skills directory: the create-agent skill (and the demo
# skills that live beside it).
skillsDir: skills
agentsMd:
enabled: false
acp:
name: agent-creator
title: Agent creator
system: |
You create mm agent configurations: an agent.yaml tuned to one model served
by llmman and to the job the user describes.
For any request to create, tune or review an agent for a model, call
read_skill with name "create-agent" FIRST, then follow its steps in order:
ask what is missing (one ask_user call), run model_facts.py, choose the
settings from the skill's table, write the file, check it with "$MM_BIN",
report.
RULES
- Facts about a model come from model_facts.py, never from memory. If the
script cannot reach llmman, say so and stop.
- Never invent a chat template variable or a value the report does not list.
- Write one file (and its directory); never change other files.
- Answer in the language of the user's message.
|