☰
Ornith 的 Agent 编码能力凭啥质变?“行为优化层“设计拆给你看
2026/10/30 2:23:16 网站建设 项目流程

Ornith 的 Agent 编码能力凭啥质变?"行为优化层"设计拆给你看

2026 年 8 月,DeepReinforce 发布 Ornith-1.5 系列开源模型,社区反响最强烈的不是"又一个编码模型",而是一种训练范式的转向:模型在训练过程中不仅产出答案,还自己出题、自己设计解题脚手架(scaffold)、自己生成解题轨迹,并全部通过强化学习联合优化——有社区文章将其概括为"不是新模型,是 Agent 编码行为优化层"。本仓库承载的 Ornith-1.5-35B-A3B 正是这一范式的"中杯"落地形态:总参 35B、单 token 仅激活约 3B 的 MoE 模型,却在 Terminal-Bench、SWE-bench、DeepSWE 等 agentic 编码基准上把同规模的 Qwen 3.6-35B 甩开一个身位,甚至越级打赢 30B 稠密模型。本文从模型卡、官方技术博客与仓库权重出发,把"行为优化层"拆开:它到底优化了什么、为什么普通微调学不来、以及这份能力如何落到一个可单卡运行的 GGUF 上。

一、先看证据:35B-A3B 的"质变"数据

讨论设计之前,先摆事实。根据 README.md 中公布的基准结果,Ornith-1.5-35B-A3B 与同量级模型的对比如下:

BenchmarkOrnith-1.5-35B-A3BOrnith-1.0-35B-A3BQwen3.6-35B-A3BGemma-4-31B(稠密)Muse-Glimmer-30B(稠密)
Terminal-Bench 2.1(Terminus-2)67.864.252.542.151.7
Terminal-Bench 2.1(Claude Code)68.562.849.2——
SWE-bench Verified7975.673.45276
SWE-bench Pro59.650.449.535.751.2
SWE-bench Multilingual71.469.367.251.7—
DeepSWE2200——
NL2Repo46.234.629.415.5—
SWE Atlas - QnA39.837.115.5——
GPQA Diamond89.286.28684.383.5
ClawEval72.569.868.748.5—

几个值得单独圈出来的点:

  • 全面压过同架构对手。Terminal-Bench 2.1(Terminus-2 框架)67.8 vs 52.5、SWE-bench Verified 79 vs 73.4、NL2Repo 46.2 vs 29.4、SWE Atlas QnA 39.8 vs 15.5——这不是单项优势,而是全赛道系统性领先,说明差距来自底层能力而非评测运气。
  • DeepSWE 上的"0 → 22"跨越。DeepSWE 是更贴近真实开发的长程 agentic 任务。Ornith-1.0-35B 和 Qwen3.6-35B 都是 0 分,1.5 版本直接拿到 22,而同表的 Qwen3.5-397B 只有 1。这个从"完全解不出"到"能解出两成"的质变,恰恰是行为优化层带来的增量所在。
  • 越级打稠密模型。激活参数仅约 3B,却在 SWE-bench Verified 上超过 76 分的 Muse-Glimmer-30B、52 分的 Gemma-4-31B。社区多篇 16G 显存实测也印证了这一点:Ornith 在代码生成与推理吞吐上相对同参数量模型占优。

二、"行为优化层"不是微调:与普通训练范式的本质区别

要理解"凭啥质变",必须先回答:Ornith 的训练目标函数和普通模型微调到底差在哪。

普通 SFT/RLHF 的隐含假设是:任务分布是固定的、由人工挑选的,解题过程的"编排方式"(该看哪些文件、按什么顺序改、出错后怎么恢复)是外部 agent 框架写死的提示词模板。模型只需要学一件事——在给定输入下输出正确答案。也就是说,行为的"壳"是外部代码,模型的"芯"只负责产出 token。

Ornith-1.0 打破了"壳"的不变性。它的核心创新是 self-scaffolding:把引导解题的脚手架(instructions、工具选择、任务分解策略、编排逻辑)从人工设计的固定模板,变成一个与策略共同进化的可学习对象。每一步强化学习分两阶段进行:先基于任务与上一步的脚手架,让模型提出更优的脚手架;再基于新脚手架与任务,生成解题 rollout。rollout 的奖励同时回传两阶段,于是模型不仅学"如何答对",还学"如何设计一套能诱导自己答对的过程"。

Ornith-1.5 再把"出题"也纳入闭环。正如 README.md 所述,1.5 把自改进循环从"脚手架 + rollout 优化"扩展为"任务生成 + 脚手架构建 + 解题 rollout"的联合优化:不再依赖人工挑选的固定任务集,模型持续生成新训练任务、发现有效解题策略、并通过强化学习改进策略。三者被放进同一个 GRPO 循环里互相促进——这就是"行为优化层"的完整含义:出题、编排、解题这三层"行为"不再是 prompt 工程或外部框架的产物,而是被梯度直接优化的对象。

用一句话概括本质区别:普通微调优化的是"答案分布",Ornith 优化的是"行为分布"——包括任务选择行为、过程编排行为与解题行为本身。

三、Agent 任务规划能力从哪里来:三阶段闭环与奖励设计

任务规划能力不是靠堆推理 token 堆出来的,它的来源是三阶段闭环里一套非常具体的奖励函数设计。

出题阶段:奖励"有效、有难度、有新意"

对"问题 q → 脚手架 s → 一组 rollout {τ_i}"的训练样本,任务奖励定义为三项的乘积:

R_task = V(q, s) × D(q, s, {τ_i}) × N(q)
  • V(有效性与可验证性):检查脚手架能否正常运行、高置信解能通过、明显错误解会被判失败、评测与任务描述一致。V 还是硬门控——V = 0时整个任务奖励归零,防止"看起来很困难"的畸形任务骗取奖励。
  • D(前沿难度):用模型自身的 rollout 成功率估计难度。对每个任务采样 N 条 rollout,得到经验成功率 p,然后奖励"接近目标前沿 p*"的任务:D = exp(-(p - p\*)^2 / 2σ²),p* 取 0.2。这个值意味着:任务既要有挑战性,又得保留足够多的成功轨迹供强化学习使用。随着模型变强、某类任务成功率升高,D 自动衰减,出题器被迫转向更难的问题——课程分布随能力自动进化,这是普通固定数据集完全不具备的性质。
  • N(新颖度):N(q) = 1 - max sim(q, q_j),q_j 遍历历史任务缓冲区,防止模型反复生成同一任务的微变体。新颖度排在有效性与难度之后,只负责抑制冗余,不奖励猎奇。

编排与解题阶段:脚手架奖励 + rollout 奖励

脚手架 h 的奖励同样三项相乘:R_harness = C(q, h) × F(h, {τ_i}) × H(h)——分别衡量脚手架与任务描述的对齐度、其奖励是否忠实反映解质量、以及抗奖励黑客(reward hacking)的能力。每条 rollout 则直接由生成的脚手架打分:R_rollout(τ_i) = h(q, τ_i)。问题生成、脚手架生成、解题 rollout三者各自用 GRPO 按自己的奖励优化,在同一自改进循环内联合进步。

防作弊:三层护栏

允许模型自己出题、自己编评测,最危险的就是奖励黑客。官方博客给出了三层防御:

  1. 固定外层信任边界:环境、工具面、测试隔离不可变,模型只能进化"内层策略脚手架"(记忆、错误处理、编排逻辑)。
  2. 确定性监控器:任何读取被保留路径、修改验证脚本、调用工具面之外动作的行为,直接判零奖励并移出 advantage 计算。
  3. 冻结的 LLM 裁判:意图层面的作弊可以完全发生在合法工具面内,此时一个冻结的 LLM judge 作为验证器之上的否决层兜底,而非主奖励。

另外,长 rollout 训练使用 pipeline-RL 异步策略,用随 token 年龄衰减的陈旧度权重w(d_t)(d_t ≤ K1时为 1,K1 < d_t ≤ K2时指数衰减,超过K2直接丢弃)抑制离策略 token 的影响——这是保证三阶段联合训练稳定的工程细节。

四、能力如何落到 Agent 行为上:显式的推理与工具调用

训练范式之外,"行为优化层"在推理侧同样可观测。Ornith-1.5-35B-A3B 是 reasoning 模型:默认输出以<think>…</think>思维块开头,服务端解析后放入独立的reasoning_content字段;同时模型输出结构化<tool_call>块,被解析为标准 OpenAItool_calls。这意味着规划与执行在协议层面就是分离的——下游 agent 框架可以拿到"模型在想什么"和"模型要调什么"两份独立信号,而不是从长文本里盲猜。

README 给出的服务端启动即体现了这一设计:

vllm serve ornith-ai/Ornith-1.5-35B-A3B \ --host 0.0.0.0 --port 8000 \ --tensor-parallel-size 2 \ --max-model-len 262144 \ --gpu-memory-utilization 0.90 \ --enable-prefix-caching \ --enable-auto-tool-choice --tool-call-parser qwen3_xml \ --reasoning-parser qwen3 \ --trust-remote-code

配合 OpenAI 兼容端点,OpenCode、Hermes、OpenClaw 等编码 CLI 只需设置OPENAI_BASE_URL指向本地服务即可获得完整的多步任务规划能力。社区在 16GB Mac Mini 上的实测也反复印证同一结论:这个模型能自主完成模块设计、多步应用开发、错误修复与代码优化,与"检索答案拼接"的传统 RAG 用法是两种物种。

五、把行为优化层跑起来:本仓库的 GGUF 实操

本仓库是 Ornith-1.5-35B-A3B 的 GGUF 量化版,包含五种精度与一个多模态投影器:

Ornith-1.5-35B-BF16.gguf # 近原精度(bf16,约 70GB 权重) Ornith-1.5-35B-Q8_0.gguf # 8-bit 量化 Ornith-1.5-35B-Q6_K.gguf # 6-bit 量化 Ornith-1.5-35B-Q5_K_M.gguf # 5-bit 量化(K-M 混合) Ornith-1.5-35B-Q4_K_M.gguf # 4-bit 量化(K-M 混合,小显存首选) mmproj-Ornith-1.5-35B-BF16.gguf # 多模态投影器

单卡部署最省事的路径是 llama.cpp 的 OpenAI 兼容服务(README 中同时给出的 Ollama / Atomic.chat 用法本质相同):

llama-server -hf ornith-ai/Ornith-1.5-35B-A3B-GGUF --port 8000 -c 262144

随后任意 OpenAI 兼容客户端即可调用,注意区分两个字段:

from openai import OpenAI client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY") resp = client.chat.completions.create( model="Ornith-1.5-35B-A3B", messages=[{"role": "user", "content": "修复这个仓库里 CI 失败的测试"}], temperature=0.6, top_p=0.95, max_tokens=8192, ) msg = resp.choices[0].message print("reasoning:", getattr(msg, "reasoning_content", None)) # <think> 轨迹 print("answer:", msg.content)

量化取舍方面,社区实测建议:小显存(16G 级)用 Q4_K_M,兼顾精度与吞吐;追求接近原版质量且显存充裕选 Q8_0 或 BF16。256K 上下文是 agentic 任务的重要资产,若需要更长窗口,README 给出了通过 config 的rope_scaling启用 YaRN 将窗口扩展到约 1M token 的方案。

六、对 Agentic 编码赛道的启示

把 Ornith-1.5-35B-A3B 放回赛道语境,它传递了三个明确的信号:

第一,训练信号正在从"结果"迁移到"过程"。当 SWE-bench Verified 这类结果级基准被刷到饱和,DeepSWE、Frontier-Bench 等过程级长程任务成为新的标尺,而"0 分起步"的赛道恰恰奖励那些把编排行为训练进参数、而非写死在提示词里的方法。行为优化层让"怎么干活"成为可梯度优化的对象,这是其他靠 SFT 堆语料或靠外部 harness 打补丁的模型难以复制的。

第二,数据瓶颈的解除方式变了。前沿难度奖励让训练课程随模型能力自动推进,出题器永远瞄准"当前会 20%"的任务——这比人工策划数据集的边际效率高得多,也解释了社区"自己出题自己练"的直观概括。数据不再是消耗品,而是模型自己可以再生的训练资产。

第三,本地化 agentic 成为现实。激活 3B 参数、GGUF 量化后单卡甚至 16G 显存可跑,配合 OpenAI 兼容协议与现成 agent 框架,隐私敏感或离线场景第一次能以低成本获得"会自己干活"的编码智能。行为优化层不再只属于云端前沿模型,而是下沉到了开发者桌面。

当然,也要保持冷静:DeepSWE 22 分、Frontier-Bench 5.1 分说明长程自主任务仍是开阔的战场;HLE(with tools)33.4 与 397B 旗舰的 56.1 之间也还有明显代差。行为优化层证明了方向的正确性,但"端到端自我改进"才刚刚把第一个闭环跑通——接下来的竞争,比的正是谁把这个闭环转得更快、更稳、更抗作弊。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询