Astra for Coding: Why Are We Doing This Again?

Astra for Coding: Why Are We Doing This Again?

Astra 编程:我们为什么又要折腾这个?

Armin Ronacher’s Thoughts and Writings blog archive projects travel talks about Astra for Coding: Why Are We Doing This Again? written on September 07, 2026. Armin Ronacher 的博客归档项目旅行随笔,关于《Astra 编程:我们为什么又要折腾这个?》,写于 2026 年 9 月 7 日。

I’m more and more convinced that all of AI engineering is Neijuan (内卷, meaning curl inwards). In China it describes a system that demands ever more effort and competition without improving output. The way in which it sometimes shows up in the West is the 996 nonsense. The English term for Neijuan is “Involution” from the book Agricultural Involution. Agricultural involution describes the intensification of farming that raises productivity per square meter while leaving productivity per head unchanged. That’s how I feel about AI right now. 我越来越确信,整个 AI 工程领域都在“内卷”(Neijuan)。在中国,这个词描述的是一种要求投入更多努力和竞争,却无法提升产出的系统。在西方,这种现象有时表现为“996”式的荒谬。内卷的英文对应词是“Involution”,源自《农业内卷化》(Agricultural Involution)一书。农业内卷化描述的是一种农业集约化过程:它提高了单位面积的生产力,却没能改变人均生产力。这就是我目前对 AI 的感受。

Which brings me to GPT 6 Astra. Astra is by all accounts an incredibly impressive model. There is really not much I can say against this. It’s amazing at computer use, understands images and complex topics, and it’s relentless in its pursuit of completion. It is absolutely impressive; these types of models are going to change the world in one form or another. But at least for the moment I don’t know how to work with it for actual software engineering. Since that got quite a bit of attention on Twitter, I figured I might summarize my thoughts and just share what kind of code comes out of this thing. 这就引出了 GPT 6 Astra。无论从哪个角度看,Astra 都是一个令人印象深刻的模型。我真的没什么可反驳的。它在计算机操作方面表现惊人,能理解图像和复杂主题,并且在追求任务完成度上锲而不舍。它确实非常了不起;这类模型迟早会以某种形式改变世界。但至少目前,我不知道该如何用它来进行实际的软件工程。既然这在 Twitter 上引起了不少关注,我想我应该总结一下我的想法,并分享一下这玩意儿到底能写出什么样的代码。

My Slop Factory

我的“垃圾代码工厂”

“Armin, you should run a software factory!” I’ve heard that a few times now, so I figured I might celebrate the release of it by running a little software factory over the weekend. If everybody builds slop 3D games, then I should do something useful with it. My software factory was intentionally set up to let the model decide the how of the workflow entirely. It was free to manage its own context and could maintain its own records in an agent-notes folder. Then it spun off subagents to work on stuff. The goal? What if we had a Python with virtual threads and lexical scoping. And well, I burned a full reset’s worth of ChatGPT tokens on this which appears to be around 4 billion tokens. 35 hours later, the factory has delivered absolutely nothing of value and also not taught me anything about how to operate a better one. “Armin,你应该开个软件工厂!”我听过好几次这种建议了,所以我想趁着它发布,周末试着运行一个小型的软件工厂来庆祝一下。如果大家都在造垃圾 3D 游戏,那我就该用它做点有用的事。我的软件工厂被刻意设置为让模型完全决定工作流的“如何执行”。它拥有管理自身上下文的自由,并能在 agent-notes 文件夹中维护自己的记录。然后,它会分派子代理去处理任务。目标是什么?如果我们能拥有一个支持虚拟线程和词法作用域的 Python 会怎样?结果呢,我为此烧掉了相当于一次完整重置的 ChatGPT Token,大约是 40 亿个 Token。35 小时后,这个工厂没产出任何有价值的东西,也没教会我如何更好地操作它。

But it produced a lot of code and input prompts, and so there is stuff I was able to study. And well, it shows behavior that I’m not used to with Sol and earlier OpenAI models. I have since encountered the same issues with regular programming with Astra, so it’s not a result of just the factory. I think I’m suspecting something is going “wrong” in the training process. The model is greatly rewarded for succeeding on long-horizon tasks, but presumably there is very little punishing going on for “shitty code.” The apparent result is that Astra is amazing at producing 3D stuff and it can keep going for a very long time, coming up with its own work in the process. I had it do quite a bit of reverse engineering of my robot vacuum in ways that were quite impressive. So it’s definitely cool! 但它确实产生了很多代码和输入提示词,所以我还是能从中研究出一些东西。它表现出了一些我以前在 Sol 或更早期的 OpenAI 模型中没见过的行为。后来我在用 Astra 进行常规编程时也遇到了同样的问题,所以这不仅仅是工厂模式的问题。我怀疑训练过程中出了点“差错”。模型在完成长周期任务时会获得巨大奖励,但推测它在写出“烂代码”时受到的惩罚极少。显而易见的结果是,Astra 在生成 3D 内容方面表现惊人,并且能长时间持续工作,过程中还能自己给自己找活干。我曾让它对我家的扫地机器人进行逆向工程,效果相当令人印象深刻。所以,它确实很酷!

Codegolf Tool Calls

代码高尔夫式的工具调用

The first issue I have with Astra comes from the type of code that it uses for tool calls. Codex increasingly has been relying on “just bash” to do more and more operations. For a few versions now the original Codex harness just uses sed and other tools to read files. You just usually can’t see them because Codex parses the bash commands and hides them if it recognizes them. But Astra … really loves Python? That is not much of a surprise because even older OpenAI models had a tendency to sometimes use on-demand Python code to read and manipulate files at times, but Astra does it really quite excessively for me. 我对 Astra 的第一个不满来自于它进行工具调用时所使用的代码类型。Codex 越来越依赖“纯 Bash”来执行越来越多的操作。几个版本以来,原始的 Codex 框架一直使用 sed 和其他工具来读取文件。你通常看不到这些,因为 Codex 会解析 Bash 命令,并在识别出它们时将其隐藏。但 Astra……它真的很喜欢 Python?这并不令人惊讶,因为即使是更早的 OpenAI 模型有时也会倾向于使用按需生成的 Python 代码来读取和操作文件,但对我来说,Astra 使用得实在太频繁了。

Now here is an important disclaimer: this project is very meta here because I worked on the CPython interpreter. But I can assure you that I have seen this model do weird Python things even in TypeScript code in Pi. But I have the most evidence of odd code from when I had the thing work over the weekend with zero oversight from my slop factory. That it writes Python is not interesting; the type of Python is interesting, and I collected some outputs for you to gloss over. 这里有一个重要的免责声明:这个项目非常“元”(meta),因为我本人曾参与过 CPython 解释器的开发。但我可以向你保证,我甚至在 Pi 的 TypeScript 代码中也见过这个模型写出奇怪的 Python 代码。不过,我手头关于这种怪异代码最直接的证据,来自于我周末让它在我的“垃圾工厂”里无人监管地工作时产生的产物。它写 Python 并不稀奇,稀奇的是它写的那种 Python,我收集了一些输出供大家浏览。

Python string splicing to edit C code

用 Python 字符串拼接来编辑 C 代码

In the Codex harness I found multiple cases where subagents resorted fully to manual string manipulation with Python instead of using the patch tool. 在 Codex 框架中,我发现了多个子代理完全诉诸于 Python 手动字符串操作,而不是使用 patch 工具的案例。

(Code snippet omitted for brevity) (代码片段略)