桃子桃子快讯
返回首页
开源

Qwen 27B 自主开发 C99 编译器,耗时近半年

社区开发者用自建 Agent 框架驱动 Qwen 3.6/3.8 27B,完成可生成 x64 ELF 的 C99 编译器…

2026.08.25 · 周二3 分钟阅读

社区开发者 Naiw80 在 Reddit r/LocalLLaMA 分享了一项耗时近半年的实验:使用自建的 Agent 编排框架,让 Qwen 3.6/3.8 27B 模型自主完成一款可生成 x64 ELF 可执行文件的 C99 编译器。相关代码已开源在 GitHub(Na1w/tc)。

项目背景

作者从 3 月底开始接触 Qwen 3.6 27B 模型,发现其在工具调用方面表现稳定,不会像多数同尺寸模型那样在多轮交互中跑偏。基于这一观察,他搭建了一个具备自我纠错能力的 Agent 框架,并内置了重复检测、空白回答识别等机制。Qwen 3.8 发布当天,他将模型升级至 3.8 27B。

多智能体架构

框架采用严格的角色分工,包含:

  • 规划者(planner):拆解任务、制定步骤
  • 编码者(coder):负责具体代码生成
  • 调试者(debugger):定位并修复错误
  • 研究员(researcher):查阅资料以补充预训练知识
  • 验证子智能体(validator):独立校验输出

各角色聚焦自身任务,独立完成规划、重排与执行。模型被要求「先研究再执行」,而非直接依赖预训练知识,从而降低幻觉风险。

硬件配置方面,主推理节点采用 Tesla P100 + RTX 4070 跑 Qwen 模型,推理速度约 13–14 tok/s、prefill 约 250 token/s;另一台机器的 Intel Arc B580 运行 Gemma4 12B 作为验证器。

关键挑战

  • 上下文管理:作者使用 llama.cpp 作为推理引擎且未启用 context-shift,因此编排器自身的上下文压缩与剪枝策略至关重要。早期方案常因 KV cache 被反复重建而陷入「6–7 分钟 prefill 后才生成下一轮 tool call」的循环,前 3 周未能找到好的解法。
  • x86 指令生成:模型在编写机器码时倾向于「幻觉」操作码而非查阅资料。最终通过强化 coder/debugger 的系统提示(鼓励调用 libcapstone 等反汇编工具)才得以改善,这部分也是整个项目耗时最久的环节。

结果与意义

单次最长连续运行约 1 周,前后历经约 6 周密集迭代。作者表示,这可能是他目前所见该模型完成的最复杂项目。该案例说明:在合适的 Agent 编排下,27B 级别的开源权重模型也能胜任编译器级别的大型代码工程任务。

信源