[{"data":1,"prerenderedAt":273},["ShallowReactive",2],{"\u002Fblog\u002Fmodel-harness-decoupling\u002F:en":3,"\u002Fblog\u002Fmodel-harness-decoupling\u002F-surround:en":169,"blog-all-posts:en":170},{"id":4,"title":5,"author":6,"body":10,"date":151,"description":152,"extension":153,"image":154,"locale":155,"meta":156,"minRead":157,"navigation":158,"original":159,"path":160,"pinned":159,"seo":161,"source":162,"sourceUrl":23,"stem":163,"tags":164,"updated":154,"__hash__":168},"blog\u002Fblog\u002Fmodel-harness-decoupling.en.md","The First-Party Harness Isn't Always the Best Answer: In the Open-Model Era, Pick Your Model and Harness Separately",{"name":7,"avatar":8},"Chen Dahuang",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":142},"minimark",[13,28,31,34,39,42,45,49,52,55,71,74,78,81,84,92,96,99,105,111,117,123,129,133,136],[14,15,16],"blockquote",{},[17,18,19,20,27],"p",{},"The core argument first appeared on ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fx.com\u002Frealchendahuang\u002Fstatus\u002F2093890559874388141",[25],"nofollow","X","; this is the full-length version, with a positioning map of five harnesses.",[17,29,30],{},"Most people's first instinct when picking a coding agent is perfectly natural: Claude → Claude Code; GPT → Codex; GLM → ZCode; DeepSeek → DeepSeek's own harness, obviously.",[17,32,33],{},"And the instinct is entirely sound. A first party's biggest advantage is knowing its own model best.",[35,36,38],"h2",{"id":37},"the-first-party-advantage-is-real","The First-Party Advantage Is Real",[17,40,41],{},"What prompts the model likes, which tool-schema design is most stable, how to organize long context, what new capabilities a release adds, where it most easily trips — the first party usually knows all of this before third parties do.",[17,43,44],{},"So for products like Claude Code and Codex, where model and harness iterate together over the long term, the first-party combo is often the strongest version of the answer. I won't argue with that.",[35,46,48],{"id":47},"but-training-a-model-and-building-a-harness-are-two-different-kinds-of-engineering","But Training a Model and Building a Harness Are Two Different Kinds of Engineering",[17,50,51],{},"Once you get to open models like DeepSeek and GLM, things get interesting — because training a good model and building a good harness are two completely different kinds of engineering.",[17,53,54],{},"Once a coding agent actually runs, a mass of non-model problems appears:",[56,57,58,62,65,68],"ul",{},[59,60,61],"li",{},"How files get read, how code gets edited",[59,63,64],{},"How the agent loop is controlled, how context is compressed",[59,66,67],{},"How cache is exploited, how tool-call failures recover",[59,69,70],{},"How subagents are scheduled, how permissions are managed",[17,72,73],{},"How well those are done directly determines whether the same model ends up feeling good to use. The same model in a different harness can be a night-and-day experience.",[35,75,77],{"id":76},"the-bigger-problem-models-update-too-fast","The Bigger Problem: Models Update Too Fast",[17,79,80],{},"Today GLM is on top; next month DeepSeek may ship an even stronger Flash; a while later another model catches up.",[17,82,83],{},"If your whole coding workflow is bound to one first-party product, switching models often means switching tools and habits too. Months of tuned configs, memories, and workflows get bulldozed.",[17,85,86,87,91],{},"That's exactly where third-party harnesses earn their keep: ",[88,89,90],"strong",{},"you can lock in the tools, skills, MCP servers, permissions, and workflows you know, and swap only the model underneath."," Run DeepSeek today, GLM tomorrow, something else the day after — your working environment doesn't get rebuilt from scratch.",[35,93,95],{"id":94},"a-positioning-map-of-five-harnesses","A Positioning Map of Five Harnesses",[17,97,98],{},"Where the mainstream five sit, based on my experience as of late August 2026:",[17,100,101,104],{},[88,102,103],{},"Pi",": minimalist philosophy; the harness interferes with the model as little as possible. Light, fast, low token overhead, extremely malleable. Best as the foundation for your own long-term agent — simple, clean, endlessly hackable.",[17,106,107,110],{},[88,108,109],{},"OMP",": keeps stacking heavy coding capabilities on Pi — LSP, Debugger, Browser, AST — like fitting the agent with a full IDE. Best for genuinely heavy coding and complex repo navigation.",[17,112,113,116],{},[88,114,115],{},"DeepSeek Harness",": goes furthest — Everything is Plugin. Agent loop, tools, permissions, presets, and UI all come apart and recombine. Best for tinkering with agent architecture, presets, multi-agent setups, and next-gen runtimes. Try PTC mode more — faster and more token-efficient.",[17,118,119,122],{},[88,120,121],{},"OpenCode",": the most balanced of the bunch — open source, many providers, big ecosystem, mature Client\u002FServer, desktop app, and subagents. Best for anyone wanting a mature, general-purpose, multi-model coding agent.",[17,124,125,128],{},[88,126,127],{},"Command Code",": a completely different route — it loves covering for the model. Bad tool-call arguments get fixed locally; duplicate file reads get deduplicated; long sessions keep a stable prefix to raise cache hits; when context is about to blow up it compacts. Applied to workhorse models like DeepSeek V4 Flash or GLM-5.3 Flash, this gets maximum value: the weaker the model, the more the harness picks up the slack.",[35,130,132],{"id":131},"how-i-choose","How I Choose",[17,134,135],{},"If I only care about long-term malleability, I still prefer Pi. But if today you asked me to put DeepSeek V4 Flash or GLM-5.3 to serious work, I'd genuinely give Command Code a taste — the model-and-harness pairing is configured per task, not per camp.",[17,137,138,139],{},"In the open-model era, the model and the harness are fully separable choices. ",[88,140,141],{},"Stop asking \"whose model should I pair with whose tool,\" and start asking \"in which harness does this model do its best work.\"",{"title":143,"searchDepth":144,"depth":144,"links":145},"",2,[146,147,148,149,150],{"id":37,"depth":144,"text":38},{"id":47,"depth":144,"text":48},{"id":76,"depth":144,"text":77},{"id":94,"depth":144,"text":95},{"id":131,"depth":144,"text":132},"2026-09-09","Using Claude? Go Claude Code. In the open-model era that instinct deserves an upgrade. The first-party advantage is real, but training a good model and building a good harness are two different kinds of engineering — here's why models and harnesses are now separable choices, plus a positioning map of five harnesses.","md",null,"en",{},8,true,false,"\u002Fblog\u002Fmodel-harness-decoupling",{"title":5,"description":152},"x","blog\u002Fmodel-harness-decoupling.en",[165,166,167],"AI Agent","Harness","Tool selection","FZU1j0v8WX9m8q_2_2WI6nNTrDujRCa0VYRJ0nJTI0Q",[154,154],[171,178,187,196,203,210,212,219,227,233,240,249,256,264],{"path":172,"title":173,"description":174,"date":175,"minRead":176,"tags":177},"\u002Fblog\u002Fagent-harness-selection","After tinkering with Pi Agent, OMP, Codex, and ZCode, why I finally chose OpenCode + OpenChamber","A retrospective on choosing an Agent Harness: three criteria — GUI experience, vendor lock-in, and freedom for secondary development — ruled out Pi Agent, OMP, Codex, and ZCode, and finally settled on the OpenCode core + OpenChamber interface.","2026-08-06",6,[165,167],{"path":179,"title":180,"description":181,"date":182,"minRead":176,"tags":183},"\u002Fblog\u002Fcloudflare-broke-stack","2026 indie dev best practices: the Cloudflare \"broke-ass all-in-one\" stack","The zero-cost tech stack for indie developers: Codex for writing code, GitHub for version control, Stripe for payments, TanStack Start for frontend, Hono + Workers for backend, D1 for database, R2 for storage, KV for caching — all running on Cloudflare.","2026-06-15",[184,185,186],"Cloudflare","Indie development","Tech stack",{"path":188,"title":189,"description":190,"date":191,"minRead":176,"tags":192},"\u002Fblog\u002Fdeepseek-api-web-search","DeepSeek's API has built-in web search — freeload the official search via the Responses API","DeepSeek built web search straight into the API: call deepseek-v4-flash through the Responses interface and declare the web_search tool. No third-party search engine integration, no search API key required.","2026-08-05",[193,194,195],"DeepSeek","API","AI tools",{"path":197,"title":198,"description":199,"date":191,"minRead":200,"tags":201},"\u002Fblog\u002Fdeepseek-v4-flash-review","DeepSeek V4 Flash stable release, hands-on: cheap, fast, 1M context, built-in search","A few days deep-diving the stable DeepSeek V4 Flash release: aggressively cheap, lightning fast, 1M context, official built-in web search, fully open source. The one weakness is multimodality — but you can patch it by combining other models.",7,[193,202,195],"Model review",{"path":204,"title":205,"description":206,"date":182,"minRead":157,"tags":207},"\u002Fblog\u002Ffree-cloudflare","How free users can squeeze Cloudflare dry — how far does the free tier actually get you?","Cloudflare's free tier can carry an entire personal internet infrastructure: DNS, CDN, Pages, Workers, KV, D1, R2, email, Tunnel, AI Gateway and more.",[184,208,209],"Free tier","Deployment",{"path":160,"title":5,"description":152,"date":151,"minRead":157,"tags":211},[165,166,167],{"path":213,"title":214,"description":215,"date":151,"minRead":157,"tags":216},"\u002Fblog\u002Fopencode-productive-stack","Stable, Fast, Productive, Cheap: My AI Coding Stack, Documented","OpenCode + OpenChamber + two DeepSeek V4 Flash subscriptions: 15 projects running code simultaneously and the quota barely moved. The full configuration laid out — context pruning, layered memory, desktop automation, and the \"stick with the original pairing\" lesson.",[121,217,218],"AI Coding","Configuration",{"path":220,"title":221,"description":222,"date":223,"minRead":224,"tags":225},"\u002Fblog\u002Fproduct-faxin-principle","The founding-intention principle: why indie developers must learn to let go","Why do you set out? Who do you set out for? Which problem are you actually trying to solve? A product's sharpness comes from what you dare to cut.","2026-06-20",10,[226,185],"Product thinking",{"path":228,"title":229,"description":230,"date":223,"minRead":157,"tags":231},"\u002Fblog\u002Fproduct-pain-vs-itch","Don't get carried away when users say \"that's awesome\": pain points vs. itch points","Verbal approval is worth nothing. There's only one hard standard for judging demand: what the user is willing to pay.",[226,232],"Demand judgment",{"path":234,"title":235,"description":236,"date":175,"minRead":237,"tags":238},"\u002Fblog\u002Fqwen-vision-for-deepseek","Giving DeepSeek multimodality: the Qwen-3.7-Flash vision approach","DeepSeek V4 Flash has no multimodality — what do you do for image understanding? After surveying the market, the most cost-effective option right now is Qwen-3.7-Flash: recognizing an image costs almost nothing, and pairing it with V4 Flash patches the gap.",5,[193,239,202],"Multimodality",{"path":241,"title":242,"description":243,"date":244,"minRead":245,"tags":246},"\u002Fblog\u002Fsub-store-cloudflare","I moved my proxy subscription aggregation to Cloudflare","Merge multiple proxy services plus your own nodes into one single subscription, with routing rules configured server-side — clients just subscribe.","2026-06-28",4,[184,247,248],"Circumvention","Open-source project",{"path":250,"title":251,"description":252,"date":151,"minRead":200,"tags":253},"\u002Fblog\u002Ftui-cognitive-bandwidth","TUI Is Killing Your Cognitive Bandwidth: Time to Shatter the \"Geek Filter\" in AI Coding","A pile of AI coding agents are rushing to ship TUIs, stuffing interaction back into the 1980s terminal paradigm and calling it \"immersive\" and \"respectful of programmers.\" This piece breaks down the three mechanisms by which TUI systematically lowers your cognitive bandwidth — and why Web UI is the right answer.",[217,254,255],"Interaction design","Essay",{"path":257,"title":258,"description":259,"date":260,"minRead":176,"tags":261},"\u002Fblog\u002Fvalue-not-external","Debating whether something has value is itself worthless","Our value is not defined by anyone. In the age of AI, how should we understand ourselves?","2026-06-18",[262,263],"AI thinking","Humanistic essay",{"path":265,"title":266,"description":267,"date":268,"minRead":269,"tags":270},"\u002Fblog\u002Fx-growth-1000-followers","Gained 1000+ followers in a little over a day — here's what I did","In June I ran my X account seriously and gained 1000+ followers in a little over a day. This post records what I did and the feedback I got.","2026-06-16",12,[271,272],"X operations","Content growth",1789752313110]