同一个任务,换个模型接着跑?AI Agent 正在拆掉「Harness」和「模型」之间的墙

故事开场:一个开发者今天在 GitHub 上刷到的东西

今天的热门榜上,一个叫 Cindy 的开源项目涨势很猛:makecindy/cindy,发布没多久就冲到了 1.2k+ Star(GitHub 链接:makecindy/cindy)。

它的 README 第一句话就是那句很自信的广告语——“Consider it done”,想到,就能做到。

但真正让我刷了三遍 README 的,是它藏在广告语底下的那个技术概念。Cindy 号称自己能把 Claude Code 和 Codex 两套 Agent “Harness” 收进来,让模型和 Harness 自由组合、同一个任务进行到一半还能随时切换模型,而工作现场(workspace)、记忆、Skill 和工具全程连续。

这听起来像是往 Agent 里塞了个"热插拔"的插槽。

顺着这条线往下挖,同一天上榜的另一个项目把这种"把 Agent 工程化、可编排"的思路推向了运维侧:FlawlessWilliam-Lu-stack/Flawless,857 Star),一个把"发现问题 → 收集证据 → 生成预演 → 人工授权 → 执行变更 → 恢复验证"串成可审计闭环的 AI 原生 SRE 控制面

两个项目,一个管"开发",一个管"运维",但底层是同一个信号:AI 社区的目光,已经从"训练更大的模型",转向"怎么把模型装进可靠、可编排、可持续的系统里"。

这一篇,我们就只深挖这一件事——Harness 与模型解耦,到底在技术上解了什么。


一、先搞清楚一个被滥用得严重的词:Harness 是什么

很多人以为 Harness = 模型。其实是两回事。

  • 模型(Model):是那颗"大脑",负责推理、理解、生成。它输入 token,输出 token。
  • Harness(缰绳):是把大脑"骑"起来干活的那套工程结构——它负责调用工具、读写文件、管理上下文窗口、执行命令、在卡住时重试、把一次漫长的任务拆成多轮 LLM 调用。

Claude Code 是一套 Harness,Codex 是另一套 Harness。它们的核心引擎逻辑(如何规划、如何用工具、如何容错)是各自的实现,模型只是被塞进去"供能"的那一层。

Cindy 干的事情,就是把"供能层"抽出来,做成一个自由插拔的接口。官方文档写得很直白:“Models and harnesses mix freely and can switch mid-task while your workspace, memory, skills and tools stay continuous.”(模型与 Harness 自由组合、任务中可随时切换,同时工作区/记忆/Skill/工具保持连续)——出处:makecindy/cindy README

这一个"连续性"承诺,是技术上最难、也最值钱的部分。


二、为什么说"切换模型而不丢上下文"很难

如果只是"换个 API 地址",那太容易了,一天就能写完。难的是切换时怎么保住状态

一个长任务跑到底,通常有几种状态必须跨切换存活:

  1. Workspace(工作现场):改了一半的文件、跑了一半的测试、临时生成的中间产物。
  2. Memory(记忆):这次会话里用户纠正过的习惯、踩过的坑、约定过的规范。
  3. Skill(能力包):已经"教"给 Agent 的那套操作方法,最好一次教会、处处复用。
  4. 工具调用图:当前执行到哪一步、哪个子任务在等哪个模块的返回。

如果切换模型意味着把上面这些东西全部扒掉重来,那"切换"就只是营销话术——本质是冷启动一个全新任务,之前的进度全归零。

所以真正要实现"热切换",Harness 层必须把上面四类状态显式地建模、持久化、跟模型无关地存下来。模型只负责"当下这一步怎么想",长期的"我们进行到哪了",由 Harness 负责记账。这也解释了为什么 Cindy 在 README 里反复强调 Memory / Skill / Automation / 跨 Harness 共享——因为在它的架构里,这些不是附加功能,而是"可切换"这个承诺成立的前提。

Cindy 的仓库结构也印证了这一点:它是一个 pnpm monorepo,桌面端走 Electron(apps/desktop)、移动端走 Expo / React Native(apps/mobile),而模型供应商、鉴权、device-link、agent 编排这些"跨端共享能力"全部下沉到 packages/*,并专门用一个 cindy-protocol 子模块跟服务端约定线协议。工具二进制(claude-code / codex / ripgrep)根本不入库,由 pnpm install 按平台自动拉取——整套架构刻意让"工具"和"主程序"保持解耦。详见:cindy 仓库目录说明


三、把 Agent 做进生产闭环:Flawless 的"可审计"路线

如果说 Cindy 解决的是"一个 Agent 内部怎么解耦",那 Flawless 解决的,是一个 Agent 系统怎么放进生产变更流程还让人敢用

它是给 Kubernetes 和云基础设施用的 AI 原生 SRE 控制面。关键不在"能修",而在"可审计地修"。它把整条链路明确切成可独立观测的阶段:

  • 报警 / 事件进来 → 收集证据(而不是直接下结论)
  • 生成**预演(dry-run)**方案 → 进 人工授权 闸门
  • 通过后才执行变更 → 执行后做恢复验证(proof it recovered)
  • 最后把整件事沉淀成经验,喂回系统

这里面有个工程细节值得单独拎出来:它在 LLM 诊断之后加了一层"确定性 fallback"。根据它的 release notes,3.2.17 版本专门修掉了"LLM 响应后卡死"的问题——LLM 响应、动作归一化、Skill 路由被拆成独立可观测的阶段,路由跑在 asyncio 事件循环之外、带自己的硬超时,当 LLM 不给力时,兜底的是一个有界的、确定性的、不需要推理的错误处理路径。出处:Flawless README (Release Notes)

这套思路翻译成人话就是:AI 可以当"大脑",但"心跳"必须是确定的逻辑。你把赌注押在模型永远聪明,系统早晚会在某个凌晨三点的故障里把你的信心赔光。


四、为什么"开源"在这件事上突然变得这么关键

今天 Hacker News 上有个讨论的标题本身就说明问题:《Open source AI is the path forward》。虽然业界对"到底该开源到什么程度"一直吵,但如果只看工具链这一层,开源的吸引力是技术性的、具体的:

  • 能审计:Agent 是要在你的机器上、拿你的真实文件、跑你登录过的应用干活的。闭源意味着你要把"执行权"交给一个你无法检查的黑盒。Cindy 直接把这个当成卖点:“audit, fork, extend”(出处:cindy README 的 “Yours to shape” 一节)。安全性和可控性,是 Agent 场景把它推到台前的第一驱动力,不是情怀。
  • 能改写容错逻辑:Flawless 之所以敢把 Agent 塞进 SRE 变更流程,是因为它把"悲观兜底"写成了开源代码,任何人可以核对故障时到底走哪条路径。
  • 能续命:模型会迭代,OpenAI 换接口、换价格、换版本是常态。当你的 Agent 把"接哪个模型"从核心逻辑里拆出来之后,开源社区可以随时补上新的适配层,而不是被单一供应商绑架。

这也是为什么我们看到越来越多的开源 Agent 项目在刻意做"供应商无关"的抽象。Cindy 接模型的姿势很有代表性:你可以登录官方服务(按量扣减)、可以一键授权你已有的 Claude Code / Codex 套餐(不重复付费)、也可以连自己的 API key 或本地模型

而"接自己的 key"这件事,在真实落地时几乎绕不开一个现实问题:直接从境外模型厂商拉流量,网络和成本两头都不舒服。很多团队会选一个自带国内网络直连、按量计费的中转来把各家模型接口"透明转发"成统一格式。像 https://www.likeai520.cc 这类 API 中转服务,做的就是这件事——在你自己的应用里,把 Codex、Claude 这些模型的调用收敛到一个统一入口,省去自己维护多套鉴权和网络通道的麻烦。对玩开源 Agent、又不想折腾基础设施的开发者来说,这是把"接 key"从工程问题变成配置问题的常见手段。本质都是同一件事:把模型当作可替换的资源,而不是架构的耦合点。


五、放平心态看:这一步到底踩得多深?

冷静下来,今天这两个项目都还年轻。

Cindy 的 README 自己都标注了"插件市场正在打造(in the making)"、“Skill 跨团队分发正在打造”;它最强的那句"热切换"承诺,真正的难点在服务端编排和同时多 agent 的并行 review 场景——这部分恰恰是最需要时间验证的部分(cindy README)。Flawless 也明确带了 PolyForm 非商业授权,想拿进商业闭源产品里要单独谈。

但从工程方向上看,信号已经非常清楚:Agent 的第一性原理,正在从"模型多聪明",切换成"系统多稳、多可编排、多不绑死供应商"。

模型是那个每天在变的变数,而 Harness、SRE 闭环、状态持久化、可审计的 fallback——这些才是真正会沉淀成"工程资产"的部分。聪明的团队已经在给自己做"模型无关"的准备了:抽象的接口、可替换的适配层、随时能换的 key 通道。

下一个阶段的竞争,不是比谁的模型更强,而是比谁的系统能在模型更强之前,先活下来


数据来源:GitHub Trending(github.com/trending)、makecindy/cindyWilliam-Lu-stack/Flawless 公开仓库信息整理,发布于 2026-07-31。文中所有项目信息以其官方仓库为准。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐