跳到正文
O'Reilly Radar·· 1 小时前AI 评分46

按控制层选择编码 harness 而非按厂商

AI 导读

编写代码时应根据所需的控制层来选择编码 harness,而不应仅依据构建厂商进行挑选。文章探讨了在面对众多语言模型和技术选项时,开发者如何通过明确控制需求来优化开发流程。

正文 · 原文

Skip to main content

View all * Data Engineering * Data Warehouse * SQL * Apache Spark * Microsoft SQL Server * MySQL * Kafka * Data Lake * Streaming & Messaging * NoSQL Databases * Relational Databases

View all * Data Science * Pandas * R * MATLAB * SAS * D3 * Power BI * Tableau * Statistics * Exploratory Data Analysis * Data Visualization

View all * AI & ML * Generative AI * Machine Learning * Artificial Intelligence (AI) * Deep Learning * Reinforcement Learning * Natural Language Processing * TensorFlow * Scikit-Learn * Hyperparameter Tuning * MLOps

View all * Programming Languages * Java * JavaScript * Spring * Python * Go * C# * C++ * C * Swift * Rust * Functional Programming

View all * Software Architecture * Object-Oriented * Distributed Systems * Domain-Driven Design * Architectural Patterns

View all * IT/Ops * Kubernetes * Docker * GitHub * Terraform * Continuous Delivery * Continuous Integration * Database Administration * Computer Networking * Operating Systems * IT Certifications

View all * Security * Network Security * Application Security * Incident Response * Zero Trust Model * Disaster Recovery * Penetration Testing / Ethical Hacking * Governance * Malware * Security Architecture * Security Engineering * Security Certifications

View all * Design * Web Design * Graphic Design * Interaction Design * Film & Video * User Experience (UX) * Design Process * Design Tools

View all * Business * Agile * Project Management * Product Management * Marketing * Human Resources * Finance * Team Management * Business Strategy * Digital Transformation * Organizational Leadership

View all * Soft Skills * Professional Communication * Emotional Intelligence * Presentation Skills * Innovation * Critical Thinking * Public Speaking * Collaboration * Personal Productivity * Confidence / Motivation

View all

View all

Search for books, courses, events, and more


  • Explore Skills

Explore Skills

*   Cloud Computing

Cloud Computing

    *   [Microsoft Azure](https://www.oreilly.com/search/skills/microsoft-azure/)
    *   [Amazon Web Services (AWS)](https://www.oreilly.com/search/skills/amazon-web-services-aws/)
    *   [Google Cloud](https://www.oreilly.com/search/skills/google-cloud/)
    *   [Cloud Migration](https://www.oreilly.com/search/skills/cloud-migration/)
    *   [Cloud Deployment](https://www.oreilly.com/search/skills/cloud-deployment/)
    *   [Cloud Platforms](https://www.oreilly.com/search/skills/cloud-platforms/)

Back

*   Data Engineering

Data Engineering

    *   [Data Warehouse](https://www.oreilly.com/search/skills/data-warehouse/)
    *   [SQL](https://www.oreilly.com/search/skills/sql/)
    *   [Apache Spark](https://www.oreilly.com/search/skills/apache-spark/)
    *   [Microsoft SQL Server](https://www.oreilly.com/search/skills/microsoft-sql-server/)
    *   [MySQL](https://www.oreilly.com/search/skills/mysql/)
    *   [Kafka](https://www.oreilly.com/search/skills/kafka/)
    *   [Data Lake](https://www.oreilly.com/search/skills/data-lake/)
    *   [Streaming & Messaging](https://www.oreilly.com/search/skills/streaming-messaging/)
    *   [NoSQL Databases](https://www.oreilly.com/search/skills/nosql-databases/)
    *   [Relational Databases](https://www.oreilly.com/search/skills/relational-databases/)

Back

*   Data Science

Data Science

    *   [Pandas](https://www.oreilly.com/search/topics/pandas/)
    *   [R](https://www.oreilly.com/search/topics/r/)
    *   [MATLAB](https://www.oreilly.com/search/topics/matlab/)
    *   [SAS](https://www.oreilly.com/search/topics/sas/)
    *   [D3](https://www.oreilly.com/search/topics/d3/)
    *   [Power BI](https://www.oreilly.com/search/topics/power-bi/)
    *   [Tableau](https://www.oreilly.com/search/topics/tableau/)
    *   [Statistics](https://www.oreilly.com/search/topics/statistics/)
    *   [Exploratory Data Analysis](https://www.oreilly.com/search/topics/exploratory-data-analysis/)
    *   [Data Visualization](https://www.oreilly.com/search/topics/data-visualization/)

Back

*   AI & ML

AI & ML

    *   [Generative AI](https://www.oreilly.com/search/skills/generative-ai/)
    *   [Machine Learning](https://www.oreilly.com/search/skills/machine-learning/)
    *   [Artificial Intelligence (AI)](https://www.oreilly.com/search/skills/artificial-intelligence-ai/)
    *   [Deep Learning](https://www.oreilly.com/search/skills/deep-learning/)
    *   [Reinforcement Learning](https://www.oreilly.com/search/skills/reinforcement-learning/)
    *   [Natural Language Processing](https://www.oreilly.com/search/skills/natural-language-processing/)
    *   [TensorFlow](https://www.oreilly.com/search/skills/tensorflow/)
    *   [Scikit-Learn](https://www.oreilly.com/search/skills/scikit-learn/)
    *   [Hyperparameter Tuning](https://www.oreilly.com/search/skills/hyperparameter-tuning/)
    *   [MLOps](https://www.oreilly.com/search/skills/mlops/)

Back

*   Programming Languages

Programming Languages

    *   [Java](https://www.oreilly.com/search/skills/java/)
    *   [JavaScript](https://www.oreilly.com/search/skills/javascript/)
    *   [Spring](https://www.oreilly.com/search/skills/spring/)
    *   [Python](https://www.oreilly.com/search/skills/python/)
    *   [Go](https://www.oreilly.com/search/skills/go/)
    *   [C#](https://www.oreilly.com/search/skills/c-sharp/)
    *   [C++](https://www.oreilly.com/search/skills/c-plus-plus/)
    *   [C](https://www.oreilly.com/search/skills/c/)
    *   [Swift](https://www.oreilly.com/search/skills/swift/)
    *   [Rust](https://www.oreilly.com/search/skills/rust/)
    *   [Functional Programming](https://www.oreilly.com/search/skills/functional-programming/)

Back

*   Software Architecture

Software Architecture

    *   [Object-Oriented](https://www.oreilly.com/search/skills/object-oriented-architecture/)
    *   [Distributed Systems](https://www.oreilly.com/search/skills/distributed-systems/)
    *   [Domain-Driven Design](https://www.oreilly.com/search/skills/domain-driven-design/)
    *   [Architectural Patterns](https://www.oreilly.com/search/skills/architectural-patterns/)

Back

*   IT/Ops

IT/Ops

    *   [Kubernetes](https://www.oreilly.com/search/topics/kubernetes/)
    *   [Docker](https://www.oreilly.com/search/topics/docker/)
    *   [GitHub](https://www.oreilly.com/search/topics/github/)
    *   [Terraform](https://www.oreilly.com/search/topics/terraform/)
    *   [Continuous Delivery](https://www.oreilly.com/search/topics/continuous-delivery/)
    *   [Continuous Integration](https://www.oreilly.com/search/topics/continuous-integration/)
    *   [Database Administration](https://www.oreilly.com/search/topics/database-administration/)
    *   [Computer Networking](https://www.oreilly.com/search/topics/computer-networking/)
    *   [Operating Systems](https://www.oreilly.com/search/topics/operating-systems/)
    *   [IT Certifications](https://www.oreilly.com/search/topics/it-certifications/)

Back

*   Security

Security

    *   [Network Security](https://www.oreilly.com/search/skills/network-security/)
    *   [Application Security](https://www.oreilly.com/search/skills/application-security/)
    *   [Incident Response](https://www.oreilly.com/search/skills/incident-response/)
    *   [Zero Trust Model](https://www.oreilly.com/search/skills/zero-trust-model/)
    *   [Disaster Recovery](https://www.oreilly.com/search/skills/disaster-recovery/)
    *   [Penetration Testing / Ethical Hacking](https://www.oreilly.com/search/skills/penetration-testing-ethical-hacking/)
    *   [Governance](https://www.oreilly.com/search/skills/governance/)
    *   [Malware](https://www.oreilly.com/search/skills/malware/)
    *   [Security Architecture](https://www.oreilly.com/search/skills/security-architecture/)
    *   [Security Engineering](https://www.oreilly.com/search/skills/security-engineering/)
    *   [Security Certifications](https://www.oreilly.com/search/skills/security-certifications/)

Back

*   Design

Design

    *   [Web Design](https://www.oreilly.com/search/skills/web-design/)
    *   [Graphic Design](https://www.oreilly.com/search/skills/graphic-design/)
    *   [Interaction Design](https://www.oreilly.com/search/skills/interaction-design/)
    *   [Film & Video](https://www.oreilly.com/search/skills/film-video/)
    *   [User Experience (UX)](https://www.oreilly.com/search/skills/user-experience-ux/)
    *   [Design Process](https://www.oreilly.com/search/skills/design-process/)
    *   [Design Tools](https://www.oreilly.com/search/skills/design-tools/)

Back

*   Business

Business

    *   [Agile](https://www.oreilly.com/search/skills/agile/)
    *   [Project Management](https://www.oreilly.com/search/skills/project-management/)
    *   [Product Management](https://www.oreilly.com/search/skills/product-management/)
    *   [Marketing](https://www.oreilly.com/search/skills/marketing/)
    *   [Human Resources](https://www.oreilly.com/search/skills/human-resources/)
    *   [Finance](https://www.oreilly.com/search/skills/finance/)
    *   [Team Management](https://www.oreilly.com/search/skills/team-management/)
    *   [Business Strategy](https://www.oreilly.com/search/skills/business-strategy/)
    *   [Digital Transformation](https://www.oreilly.com/search/skills/digital-transformation/)
    *   [Organizational Leadership](https://www.oreilly.com/search/skills/organizational-leadership/)

Back

*   Soft Skills

Soft Skills

    *   [Professional Communication](https://www.oreilly.com/search/skills/professional-communication/)
    *   [Emotional Intelligence](https://www.oreilly.com/search/skills/emotional-intelligence/)
    *   [Presentation Skills](https://www.oreilly.com/search/skills/presentation-skills/)
    *   [Innovation](https://www.oreilly.com/search/skills/innovation/)
    *   [Critical Thinking](https://www.oreilly.com/search/skills/critical-thinking/)
    *   [Public Speaking](https://www.oreilly.com/search/skills/public-speaking/)
    *   [Collaboration](https://www.oreilly.com/search/skills/collaboration/)
    *   [Personal Productivity](https://www.oreilly.com/search/skills/personal-productivity/)
    *   [Confidence / Motivation](https://www.oreilly.com/search/skills/confidence-motivation/)

Back

Back

  • Platform

Platform

*   [All features](https://www.oreilly.com/online-learning/features.html)
*   [Verifiable skills](https://www.oreilly.com/online-learning/verifiable-skills.html)
*   [Academies](https://www.oreilly.com/online-learning/academies.html)
*   [Courses](https://www.oreilly.com/online-learning/courses.html)
*   [Certifications](https://www.oreilly.com/online-learning/feature-certification.html)
*   [Interactive learning](https://www.oreilly.com/online-learning/intro-interactive-learning.html)
*   [Live events](https://www.oreilly.com/online-learning/live-events.html)
*   [Virtual conferences](https://www.oreilly.com/products/superstreams.html)
*   [Answers](https://www.oreilly.com/online-learning/feature-answers.html)
*   [Insights reporting](https://www.oreilly.com/online-learning/insights-dashboard.html)

Back


Search for books, courses, events, and more

Toggle dark mode

AI & MLBusinessDataInnovationResearchSecurity

Try the O’Reilly learning platform

With the O’Reilly learning platform, you get the resources and guidance to keep your skills sharp and stay ahead. Try it free for up to 14 days.

Start trial

Try a course for free

Join a live online event on the O’Reilly platform to learn from the experts shaping tech.

See what’s coming soon

Get the Radar Trends newsletter

Your email

Country

Subscribe

Please read our privacy policy.

Thank you for subscribing to the O’Reilly Radar Trends to Watch newsletter.

Radar>Topics>AI & ML

Choose Your Coding Harness by What You Need to Control—Not by Who Built It

Image 1: Nicole Königstein By Nicole KoenigsteinNovember 6, 2026 • 9 minute read

Share

CloseLinkedInXFacebookThreadsBlueskyReddit

Remember back in 2019, when you had only a handful of language models to choose from, all with limited context windows? That world is gone, and it feels like a forgotten past. Today, flagship providers and open source projects compete across model families, sizes, capabilities, and deployment options. Coding harnesses seem to be heading in the same direction.

On the surface, Claude Code, Codex, Pi, DeepSeek Harness, and the other coding harnesses all seem to do the same thing: help you build software with models. Look closer, though, and each one gives you control over different parts of the harness. What can the model see and change? How does it use tools? Where does it run, and what happens when it fails? So instead of asking which coding harness is best overall, ask:

Which layers of the harness do you need to control?

Thanks for all the harnesses! Now what?

Choosing a coding harness isn’t only about which model writes the best code. You’re also choosing what the harness provides, what you can change, and what you must build yourself. If it doesn’t give you verification, durable state, repair routing, or an enforced execution boundary, those responsibilities stay with you. You remain accountable for the workflow’s reliability and governance.

In general, each harness has a center of gravity: a layer that gives you the most direct control. The following table is a deliberately high-level overview of where that center sits. It’s not a feature matrix, and the boundaries overlap in practice. Claude Code can also run noninteractively and inside sandboxes, Codex also reads repository instructions, and all of them are changing quickly. The point is to show where each harness gives you leverage by default, and where the engineering work is likely to stay with you.

Table 1. Where each coding harness puts its primary control

Harness Primary control You shape You likely build
Claude Code Inside the run Instructions, skills, subagents, hooks Outer lifecycle policy
Codex Around execution Sandbox, approvals, scope, output Cross-run orchestration
Pi The loop itself Tools, context, state, hand-offs Most defaults
DeepSeek Across plug-ins Composable runtime components Gaps in your plug-in set

Read the table as a map, not a ranking. A harness that hands you more control also hands you more to build, and a harness that does more out of the box decides more on your behalf. Which trade-off is right depends on which layer your project actually needs to own.

Claude Code: Control inside the run

Claude Code buys you detailed control over how implementation unfolds. CLAUDE.md provides standing instructions, skills add task-specific playbooks, subagents divide the work, and hooks intercept actions before and after tool calls. Unlike a permission rule that simply refuses an operation, a hook can explain the refusal or immediately return a compiler or policy failure to the agent.

These controls let you steer the coding loop extensively, but they operate within Claude Code’s existing lifecycle. If you need to control the outer lifecycle itself, you need another layer.

Codex: Control through separation

Codex buys you separation between a coding task and its execution environment. A noninteractive codex exec run can work on a narrow task in a specified repository, under an OS-enforced sandbox, and return a schema-constrained result.

This is useful for independent verification. You can give Codex a clean checkout, exclude the builder’s instructions, restrict writable paths, and run separate reviews for code quality, test gaps, persistence, or user-visible behavior. The sandbox depends on the operating system, but it moves scope enforcement out of the prompt and into the execution boundary.

Pi: Control over the loop

Pi buys you control over the coding loop itself. Its tools, commands, event handlers, context, models, and session state can be extended or replaced. This lets you decide which steps remain agentic and which follow deterministic policy.

For example, a local defect can return to implementation, a repeated defect can force replanning, and conflicting findings can trigger a recheck or human review. Pi can also run agents inside this lifecycle, so it’s more than a deterministic orchestrator. For my example below, I used its programmability to make the outer decisions deterministic—that was my design choice, not Pi’s definition.

DeepSeek’s harness: Control through composition

DeepSeek’s harness is useful when you want to swap out whole parts of the harness rather than steer or wrap them. Tools, sessions, lifecycle behavior, verification, and governance are all composable plug-ins, and so is the loop itself. That lets you replace one component without rebuilding the rest.

The trade-off is that your control is only as good as the plug-ins you compose. Where Pi gives you a minimal core to build on, DeepSeek’s harness gives you a set of parts to assemble.

A practical example

Let me give you the problem I was actually trying to solve: migrating a legacy Python 2.7 application reliably, without changing years of accumulated behavior or corrupting its persisted data. Getting the code to run on Python 3 was only one part of it. I also needed to preserve behavior, verify the data across both runtimes, control what the coding agents could change, and decide what should happen when a test or verification step failed.

So I approached the choice of coding harnesses from a very different perspective. Instead of asking which one was best, I asked what each one would buy me in terms of control, isolation, and lifecycle management. The answer led me to use more than one:

  • Claude Code built the port because I wanted internal steering, specialized skills, hooks, and a factory of implementation and review subagents.
  • Codex verified it in isolated runs because I wanted an independent model context, clean workspaces, constrained writes, and structured findings.
  • Pi owned the outer lifecycle because I wanted durable state, evidence validation, bounded repairs, replanning rules, and human escalation.
  • Frozen acceptance, including Playwright and Python 2/3 differential checks, ran outside the agents so neither the builder nor the verifier could redefine success.

I didn’t use DeepSeek’s Harness here because I wanted a very small outer lifecycle I could read end to end, not because it can’t do the job. To first check whether this setup would actually make a difference, I built a small Python 2 application with the same kinds of traps as the real migration. I then compared the composed setup with a single Claude Code session, in which Claude could verify and test its own code.

Interestingly, both setups passed all 25 hidden behavior tests. Yet the single-session setup silently collapsed two distinct Python 2 dictionary keys, the Unicode u’é’ and byte string ‘é’, into one Python 3 string. After the data was saved, one entry was permanently lost. The single-session setup also changed a Python 2 Unicode value into bytes without documenting it.

The test suite missed it. Claude’s own tests missed it. Hundreds of recorded behavior comparisons missed it. Even my hand-written reference port had the same hole.

But what happened next was even more interesting. Two isolated Codex verifiers independently reproduced the defect. Claude didn’t simply accept the finding; it contested it. Pi then launched a fresh Codex run that received only the finding and Claude’s argument. The independent recheck upheld the finding, and Claude accepted it. Pi routed the defect into a bounded repair, and the next verification round confirmed that both keys and their original types now survived.

It’s also ironic because models are often criticized for being sycophantic. They apologize and rewrite working code the moment you ask, “Are you sure?” Here, the opposite happened. Claude contested a defect that two independent verifiers had reproduced. Its session context contained its own implementation history and passing tests, all of which supported the patch. A fresh verifier context broke that self-reinforcing frame. Independent verification matters not because the second model is automatically right, but because it’s not anchored to the same history.

The important point is that no individual harness deserves all the credit. The better result came from combining the controls I needed: internal steering, independent execution, frozen behavioral evidence, and deterministic lifecycle policy.

How to choose your coding harness

When choosing a coding harness, start with the level of control you need and how much of the remaining harness you are prepared to engineer yourself. A useful comparison could begin with questions like these:

  • Do I want to configure an existing coding loop, extend it, or replace parts of it?
  • Can I control tools, context, memory, and model selection at the level my project requires?
  • Where are permissions, allow lists, and policies enforced: in instructions, application logic, or the operating system?
  • Can I intercept actions and lifecycle events before and after they happen?
  • How much of the orchestration, state management, and session lifecycle can I change or orchestrate?
  • What does the harness expose for observability, verification, and structured evidence?
  • Which reliability and governance controls does the harness provide, and which ones remain mine to build?
  • Can the harness work with other tools and harnesses if my requirements cross several control layers?

These are some examples to get you started, not an exhaustive checklist. The questions that matter for you will also depend on what you’re building, how much autonomy you’re willing to give the coding agent, and what you remain accountable for when it fails.

Your answers may lead you to Claude Code, Codex, Pi, DeepSeek’s harness, or another coding harness entirely. In the end, the developer’s name only tells you who packaged the runtime, not where your guarantees live. Whether you settle on one harness or orchestrate several, the principle is the same: Choose the tool by the boundary of control it gives you, and ask whether you want the agent to define the terms of its own success.

Post topics: AI & ML

Follow us

About O'Reilly

Support

International

Download the O'Reilly App

Take O'Reilly with you and learn anywhere, anytime on your phone and tablet.

  • Image 2: Apple app store
  • Image 3: Google play store

Image 4: O'Reilly home

Do not sell or share my personal information.

© 2026, O'Reilly Media, Inc. All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.

来源:O'Reilly Radar · oreilly.com