badsectoracula
Joined 17 years ago
Joined 17 years ago
[0] https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash-1017
However there is a bug somewhere between my instructions and the model - i think it is the jinja template, though i'm not sure as i haven't actually looked too deep into it - that in some cases make my last message be sent repeatedly to the model after each tool call, making the model think that i'm getting impatient or something :-P. When i notice it, i tell the model that this is some harness bug and it can ignore the repeated messages, which it does.
It seems to happen when i stop it while it is thinking after a tool call but i'm not certain. I try to stop it while some tool call is in process so it cancels the call as that seems to avoid the issue. Restarting llama-server also seems to make the issue go away so it might be a llama.cpp bug, but TBH i haven't found a clear repro case aside from it happening when i interrupt it while it is thinking. I think it is more common when the context is close to full, or at least i mainly remember it happening when i've been using a session for some time (i.e. not in fresh sessions, which does make reproducing it a bit harder).
In any case, the model itself seems to deal with all the above fine (and accepts the bug explanation for repeated messages), it is the rest of the stack that can show an issue with interrupting it (but even that is relatively rare).
llama-server --model Qwen3.8-27B-UD-Q4_K_XL.gguf --ctx-size 131072 --parallel 1 --cache-type-k q8_0 --cache-type-v q8_0 --host 0.0.0.0 --port 8080 --spec-type draft-dflash --spec-draft-model dflash-Qwen3.8-27B-Q4_0.gguf --spec-draft-n-max 3 --spec-draft-type-k q8_0 --spec-draft-type-v q8_0 --mmproj mmproj-BF16.gguf --no-mmproj-offload --image-min-tokens 2048 --reasoning-preserve
It just barely fits in my RX 7900 XTX's 24GB of VRAM (TBH i'm not sure if dflash is much better than MTP - which is included as part of the GGUF - and MTP saves ~1GB of VRAM). I'm using Linux with Xorg/Window Maker as my DE so it uses no VRAM at all (Qt-based stuff - and i guess modern Gtk too - tend to use some VRAM for themselves, even opening Kate shows up in amdgpu_top :-P). The above gives me on average ~50 tokens/sec generation (drops to about 35 when the context is close to full) and ~700 tokens/sec prompt processing, which while not particularly speedy is fine for agentic stuff as i just give the AI a task and leave it in the background doing things. To save some VRAM i run the multimodal projector for vision on the CPU (the --no-mmproj-offload) and only one task is ever executed at the same time (--parallel 1). Also the kvcache is quantized to q8_0 - supposedly this makes the model a bit dumber, though the extra VRAM needed for the full f16 kvcache makes it more than ten times slower :-P (and AFAIK dense models like the 27B aren't as affected by it as MoE models are).
I'm using Pi[1] (a slightly older version that i've had remain offline and disabled the telemetry) for now (will replace it at some point since i'm not a fan of the ~500MB dependency tree, the almost-dark patterns for online access/telemetry and the increasingly worrying push for the devs' services, but i do like how it approaches compaction and that for the most part it doesn't need any handholding when some error happens - which is ideal for "let the AI do something and check it some time later").
It is running inside a container so it doesn't get any access to my real stuff (mainly to avoid the LLM making any mess - of which it sometimes does in the container, but well, it is contained :-P). In the container Pi gives the LLM some basic tools - read, write, edit and bash - and the last one is basically used to do most of the work (i've also made a bunch of tools the LLM can use via the CLI).
[0] https://huggingface.co/unsloth/Qwen3.8-27B-GGUF/blob/main/Qw...
[1] https://pi.dev/
Every role but the verifier is the same
underlying model, called in a fresh context
and coordinating through a shared workspace on disk:
<ws>/task.md - the problem statement
<ws>/plan.md - the manager’s overarching plan
<ws>/tasks.json - a debug mirror of the task list
<ws>/notes.md - curated ideas / findings / partial proofs
<ws>/solution.py - the current solution
Then they describe how there is a ping-pong between manager and worker with fresh context for the worker, but i wonder, is that part or even the worker really necessary?My use of Qwen 3.8 27B (which is the only model i use almost since it came out) is really doing something very similar to the above where first a task is described, a `PLAN.md` file is made with the (current) plan and tasks are either in the plan file or in a separate issue tracker the LLM has access to via a CLI tool, a `STATUS.md` that tracks the current status and a `GOTCHAS.md` file for writing down various notes/tidbits/gotchas (TBH this is largely because Qwen 3.8 27B does want to note down stuff anyway so it mainly acts as an attractor for not writing its notes down in the other two places :-P).
There isn't any real harness driving this, i just give it a task, tell it how it'll be handled and off it goes. I guess i'm playing the "role" of the harness there as i tell it to not go and do everything in one go :-P but i never bother with fresh contexts, Pi's "rolling" approach to compaction (i.e. summarizing the older messages to make space while keeping the recent messages as-is) make it almost a non-issue.
I have considered making it a planning tool, though as some tool it can use via the CLI (it is running in a container), not a harness - but at the same time it feels like it can do the same thing with the `PLAN.md`/`STATUS.md`/`GOTCHAS.md` triplet. The only thing the tool would help with is to provide a UI for me to check what it's currently doing, but even then i usually just stop it and ask it directly :-P then tell it to continue.
Perhaps at some point i'll make some custom benchmark with stuff that are vaguely similar to what i work on and try a bunch of different approaches. It is something i want to do anyway to see how and if Qwen4 27B (whenever that comes it) is an improvement over 3.8.
My point wasn't that you can use agents for all feedback, but for the given case of testing your readme file's instructions (the article's title even mentions it is about the readme file) you can certainly use agents for that.