The model is the wind in your sails: it can carry you across an ocean or leave you becalmed. You cannot order the wind — you can only work with what it gives you.
⛵
Part 2 of 3
The Sail Trim (the prompt)
Trimming and setting the sail.
How you trim and set the sail is how you control the average wind of the LLM. A well-set prompt shapes raw model output into useful drive; a badly-set sail flaps, stalls and gets you nowhere.
🚢
Part 3 of 3
The Boat (the harness)
Rudder, hulls, anchors, navigation lights.
The harness is how you build the boat itself: the rudder to steer, hulls for stability, the anchor to hold position, navigation lights so you are seen in regulated waters. It is what keeps your course safe and on the right side of the shipping lanes.
The point: no amount of clever sail trimming (prompting) makes up for a boat with no rudder (harnessing). Start with the harness, then craft the prompt — and if you want both at once, craft your harness in four questions.
Eighteen pieces of practical advice on choosing and using AI harnesses — the wrappers that give models hands. We build, deploy and maintain this site with Hermes, and we run DeepSeek Harness and Claude Code alongside it. This is what we’ve learned from real use, not theory.
The harness is the wrapper: it gives the AI hands — a terminal, file access, memory and skills. The model inside does the thinking. Choose a harness that can run the models you want: Hermes and DeepSeek Harness are model-agnostic, so you can swap brains freely; Claude Code works best with Anthropic models; Codex with OpenAI’s. Start from the model you trust, then pick the wrapper that carries it.
Terminal-first coding agents (Claude Code, Codex) excel at editing code and running builds. Everything-is-a-plugin frameworks (DeepSeek Harness) let you assemble your own workflow and even drive other harnesses as sub-agents. Multi-platform assistants (Hermes) follow you across terminal, desktop and messaging apps, with memory and skills that persist. Keep more than one — use each where it is strongest.
Choosing03
Check the licence before you trust it with your work
The advice
Hermes is MIT-licensed open source. DeepSeek Harness is MIT open source too — a developer preview since August 2026, still changing fast. Claude Code and Codex are closed source. Open source means you can read exactly what the harness does with your files, your terminal and your data. If a tool is closed, the vendor’s privacy policy is your only guarantee.
Choosing04
Treat developer previews like moving targets
The advice
New harnesses — DeepSeek Harness among them — iterate weekly and break compatibility between releases. Fine for learning and experiments. For production work, pin versions, keep a stable fallback harness, and test before upgrading.
Setting up05
Secrets live in .env, never in the repo
The advice
API keys belong in a local .env file that is gitignored — never in source code, never pasted into a chat, never committed. If a key leaks, rotate it immediately: generate a new one and delete the old.
Give the harness only the access the job needs: one project folder, not the whole machine; the tools it will actually use. Start read-only where possible, then widen deliberately. Run risky experiments in a sandbox, not on your real files.
AGENTS.md, CLAUDE.md and similar context files teach the harness your rules, style and workflow at the start of every session — no repeating yourself. Save reusable procedures as skills so they load only when needed. Keep both lean: bloated rules degrade output.
An agent with no context defaults to the statistical middle of its training data: generic, low-value output. Give it the background, constraints and goals up front — the five-layer context framework is the structured way to do it.
Treat the harness like a capable but inexperienced intern: break the job into steps, set quality standards for each, iterate on what comes back, and integrate the work into your real workflow. Raw, unmanaged task dumps are the fast route to the trough of disappointment.
Start a new session for each task instead of letting one conversation carry everything. Execution history, logs and state crammed into a single context window dilute the model’s attention and trap it in retry loops — context rot.
Models default to agreeing with you — training rewards agreeableness. Embed explicit pushback rules in your instructions, and route important analysis to a second, different model for an unbiased cross-check.
Agents can fake completion — pulling an old file from email history or reporting success without the permissions to do the work. Check the artifacts yourself: the file exists, the command ran, the output is real.
When the agent says the tests pass, run them. When it says the build works, build it. Independent verification is the only verification that counts — regression-pair after every fix so nothing quietly breaks.
The summary is what the agent wants you to believe; the tool call log is what it actually did. Review the commands it ran, the files it touched, the approvals it requested. Harnesses record this — make a habit of reading it.
Checking the work15
Use a different model as judge
The advice
A judge built from the same model shares the actor’s blind spots — it will wave through the same mistakes. Use a top-tier model from a different family for audits, in a fresh context window.
Prompt text loses enforcement power over long sessions — it degrades. Put safety in the infrastructure: strict API permissions, validators at the action boundary, deterministic circuit breakers that halt violations regardless of what the prompt says.
Approving every micro-action trains you to click OK blindly, which destroys the safety benefit. Let the agent walk through reversible two-way doors on its own; keep humans on irreversible one-way doors: sending external emails, spending money.
Agents infer authorisation from the conversation. Classify actions into risk tiers — read-only, reversible write, external action, high-risk — and gate the top tiers behind hard policy, not politeness.