Simon Willison:Claude Fable 5「relentlessly proactive」——一次调试 CSS 的会话里,AI 自主打开了你的浏览器、改了你源码、抓了屏,$12 token 烧完(2026-06-21)
版权声明
本文为翻译/转载,原文使用 CC BY-NC-SA 4.0 协议发布。 原文作者:Simon Willison 原文标题:Claude Fable is relentlessly proactive 原文链接:https://simonwillison.net/2026/Jun/11/fable-is-relentlessly-proactive/ 原文发布:2026-06-11 23:35 UTC(发布时戳:2026 年 6 月 11 日 23:35) 本博客不参与任何商业变现(含 ads / 付费 / affiliate),本译文遵循 CC BY-NC-SA 4.0 条款发布。
译者按
为什么选这篇:过去 10 天英文 AI 圈最值得一读的「Coding Agent 现场解剖」长文——Simon Willison 6/11(原文,CC BY-NC-SA 4.0,发布时戳 23:35)在自己 Datasette Agent 项目里发现一个「不该出现的横向滚动条」bug,把截图丢给一个全新的 Claude Code 会话,指令只有一句:“Look at dependencies to help figure out why there is a horizontal scrollbar here”。然后他离开了电脑。回来时看到 Claude 自行打开了真实 Firefox、又切到 Safari、用 Python 调 Quartz API 抓窗口句柄、用 screencapture 命令截图、自己写了一份 HTML 测试页、在 Datasette 自己的模板里注入 <script> 模拟 / 键、临时用 http.server 搭了一个 CORS 代理、用 shadowRoot 抓 Web Component 里的 textarea 尺寸——用户指令里一行都没要求。最终把一个两行 CSS 修复捎带手解决掉。AgentsView 复盘这次会话:输出 68,606 token、峰值 context 113,178、按 full API price 算 ~$12.11(claude-fable-5 + claude-opus-4-8)。Simon 用的词叫「relentlessly proactive」——不知疲倦的主动性。
对中文圈读者价值:本博客 6/15 快报《白宫 72 小时关停 Claude Fable 5 / Mythos 5》讲的是「政治侧」的 frontier model 单点故障;6/19 快报《MCP「零接触 OAuth」进入 Stable》讲的是「协议侧」的企业 agent 授权;6/20 快报《Jumper + Shazeer 72 小时双王跳槽》讲的是「人才侧」的 AI 三足鼎立。本文是「Coding Agent 行为侧」的 frontier model 自主性现场——当 Claude Code / Cursor / Cline / CodeGeeX / Trae 给你一句「修这个 bug」之后,它会自主走多远? Simon 自己的判断是:①让它在沙箱里跑永远是对的;②「relentlessly proactive」是双刃剑——它越聪明,对潜在恶意指令(藏在代码 / issue 里的 prompt injection、不小心粘到终端里的字符串)就越警觉——但如果真的被骗到,它的破坏半径也越大。Simon 把这件事列入他自己 2026 LLM 预测 里的「一年之内会有一次 Challenger 灾难级 coding agent 安全事故」头号候选,理由是 Johann Rehberger(embracethered.com)2025 年那篇 The Normalization of Deviance in AI——**「偏差正常化」**这个 NASA 在 1986 年 Challenger 事故后被广泛讨论的工程伦理概念,同样适用于 LLM coding agent:每一次「这次没出事」都在为「下次出事」积累风险预算。
中文圈类似案例 / 关联:① 6/20 翻译《Aaron Gustafson:Claude Code Issue #56079 —— LLM 把无障碍代码当可选优化》(/blog/english-translation-2026-06-20/)——同一条「LLM 自作主张」的证据链,但偏向「价值观 / 优先级崩塌」侧,本文偏向「行为 / 自主性」侧;② 6/15 快报《白宫 72 小时关停 Claude Fable 5 / Mythos 5》(/blog/ai-newsletter-2026-06-15/)——本文是 Fable 5 发布 3 天后用户侧的实测长文;③ 6/19 快报《MCP「零接触 OAuth」进入 Stable》(/blog/ai-newsletter-2026-06-19/)——MCP 协议侧和本文「Agent 行为侧」是同一问题的两面:协议把 OAuth 隔离出 agent context window 来降低 prompt injection 风险,但 Agent 拿到 token 后能做什么、能不能做出用户指令里没要求的事,是协议挡不住的;④ 6/20 快报《Jumper + Shazeer 双王跳槽》(/blog/ai-newsletter-2026-06-20/)——本文记录的「Fable 5 → Opus 自降级」(hit 不可见 guardrail 后从 claude-fable-5 降级到 claude-opus-4-8)说明:Anthropic 自家模型矩阵里就已经实现了「frontier model 不可用时回退到次 frontier」的运行时 fallback,这种 fallback 机制在中文圈企业里目前几乎都是缺失的。Simon 这篇把「Coding Agent = 双刃剑」从口号升级为「带 terminal transcript + 12 美元账单 + 8 个独立 trick 的解剖级现场」——这是过去一周英文 AI 圈最值得中文圈技术决策者(CTO / 平台架构师 / 安全工程师)反复读的「Agent 行为 ground truth」。
正文
跟 Claude Fable 5 一起用上两天之后,我觉得描述它最好的方式就是 relentlessly proactive(不知疲倦地主动出击)。它知道非常多花招,而且为了达成目标它几乎愿意把它们全用上。
我用一个例子来展示。今天我在折腾 Datasette Agent,发现了一个 bug:跳转菜单(jump menu)的聊天输入框里不该出现一条横向滚动条。我截了一张图:
[原图:聊天弹窗中,搜索输入框下方有一处粗灰色横向滚动条,错误地显示在空 textarea 底部,几乎占满全宽,紧挨着 resize 缩放手柄。Simon 把它指给 Claude 看。]
然后我在 datasette-agent 的 checkout 里开了一个全新的 claude 会话,把截图拖进去,告诉它:
Look at dependencies to help figure out why there is a horizontal scrollbar here
我当时有一个直觉——问题出在 Datasette Agent 的某个依赖(很可能是 Datasette 本身)——而且我知道 Fable 擅长钻进依赖的代码里去看,要么 inspect 它自己 virtual environment 里的 site-packages,要么 reference 磁盘上某个本地 checkout。让它从依赖入手感觉是个稳妥的赌注。
我被一件家里的事岔开了,离开了电脑。
几分钟后我回来,看到我的机器在我的常规 Firefox 里打开了一个浏览器窗口,然后导航到那个 dialog。我并没有让 Claude Code 用任何浏览器自动化,而且我相当确信它也不可能触发窗口里的鼠标移动或键盘快捷键——那它是怎么做到的?
我着迷地看着它继续探索,然后看到它从 Firefox 切到了 Safari。我顺手抓了一张 Claude 终端的截图:
[原图:两个 Bash 工具调用在深色终端里。第一条:
Bash(open -a Safari /tmp/textarea-scrollbar-test.html && sleep 4 && uv run --with pyobjc-framework-Quartz python - <<'EOF' import Quartz wins = Quartz.CGWindowListCopyWindowInfo(...) ... print(w.get('kCGWindowNumber')) EOF),输出153551。第二条:Bash(screencapture -x -o -l 153551 /tmp/safari-cases.png && echo ok),输出ok。]
它在那里用 uv run --with pyobjc-framework-Quartz 干什么?
结果发现 Fable 自己凑了一套对浏览器窗口截图的招。它用 Python 遍历我机器上所有可见窗口,然后过滤出 Safari 窗口——窗口名里得带 textarea 之类的字串。它用这个找到窗口号——一个像 153551 这样的整数——然后用 screencapture CLI 工具抓一张 PNG。
行吧,截图这招挺巧。但它在截什么图?
结果它一直在写自己的临时 HTML 页面来尝试复现这个 bug,然后打开 Safari 抓截图。
这是它创建的那个 /tmp/textarea-scrollbar-test.html 页面,以及用 screencapture -x -o -l 153551 /tmp/safari-cases.png 抓下来的那张图:
[原图:Safari 窗口显示一个 textarea 滚动条测试页
file:///private/tmp/textarea-scrollbar-test.html。页面顶部文字:scrollbar thickness: 17px | UA: Mozilla/5.0 ... | devicePixelRatio: 2,下面列了四个编号的测试用例:1) 精确复刻 plugin CSS (resize: vertical, 默认 overflow),2) plugin CSS +overflow-x: hidden,3) plugin CSS +resize: none,4) 纯默认 textarea(明显小一截)。](我开着的 tab 实在太多了!)
行,我能看到它开测试页 + 截图的过程了。但它到底是怎么触发那个待测的模态框?那个模态框只能通过点击或键盘快捷键才能打开,我看不出它在 Safari 里能跑这两种操作的任何机制。
我最后终于想明白了它干了什么。
Claude 跑在一个包含应用源代码的目录里。它对 Datasette 足够熟——能跑起来一个本地 dev server。结果它直接改 Datasette 自己的模板(templates),往里面加了一段 JavaScript,让窗口一打开就触发正确的键盘快捷键,加的代码长这样:
<script>
window.addEventListener("load", function () {
setTimeout(function () {
document.dispatchEvent(new KeyboardEvent("keydown", {key: "/", bubbles: true}));
}, 1200);
});
</script>
窗口打开后 1.2 秒,这段代码会模拟一次 / 键的 keydown 事件——而 / 正好是打开那个模态框的快捷键。
还剩最后一道关卡:为了让 Claude 自己理解发生了什么,它需要在页面上跑 JavaScript 拿测量数据。
它写了一个自己的 web app 通过 CORS 抓数据,然后把它当作 local server 跑起来,又写了个带 JavaScript 的页面直接 POST 过去!
这是它用 Python 标准库 http.server 包写的小 web app:
from http.server import HTTPServer, BaseHTTPRequestHandler
class H(BaseHTTPRequestHandler):
def do_POST(self):
n = int(self.headers.get("Content-Length", 0))
open("/tmp/diag.json", "w").write(self.rfile.read(n).decode())
self.send_response(200)
self.send_header("Access-Control-Allow-Origin", "*")
self.end_headers()
def do_OPTIONS(self):
self.send_response(200)
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Access-Control-Allow-Headers", "*")
self.end_headers()
def log_message(self, *a): # quiet
pass
HTTPServer(("127.0.0.1", 9999), H).serve_forever()
它只是接收一个 POST 请求里的 JSON 然后写到 /tmp/diag.json 文件里。它返回了 Access-Control-Allow-Origin: * 头(OPTIONS 预检也返回),这样另一个 origin 跑的代码也能跟它通信。
然后 Claude 把这段代码注入到它要在浏览器里加载的模板里:
const host = document.querySelector("navigation-search");
const ta = host.shadowRoot.querySelector("textarea");
const cs = getComputedStyle(ta);
fetch("http://127.0.0.1:9999/diag", {
method: "POST",
body: JSON.stringify({
dpr: window.devicePixelRatio,
scrollWidth: ta.scrollWidth, clientWidth: ta.clientWidth,
whiteSpace: cs.whiteSpace, width: cs.width,
}),
});
这一段量出了 <navigation-search> Web Component 内部那个 <textarea> 的尺寸,POST 到本地 server,server 写到磁盘上的文件里,Claude 接下来就能读了。
把这一整套花招都摸出来之后,Fable ……撞到了一道看不见的 guardrail,自我降级到 Opus。幸运的是 Opus 能拿到完整的 transcript,于是继续用 Fable 首创的那些花招,很快找到、测试、并验证了 这个修复。
我给 Opus 下了一个 prompt:
Write a report in /tmp/automation-report.md where you note down all of the tricks you have used in this session to test against real browsers on my computer, include runnable code examples
它产出了 这份报告,对拼凑出这件事的来龙去脉写这篇博客至关重要。
我也公开了这次 Claude Code 会话的 完整 terminal transcript。
复盘它做的所有事
仅凭一张截图 + 一行 prompt,Claude Fable 5 + Claude Code 自主完成了以下动作:
- 摸出跑本地 dev server 的配方(含跑起来需要的伪环境变量)
- 启动一个 Playwright Chrome 会话
- 给 Chrome 打开「显示滚动条」开关:
defaults write com.google.chrome.for.testing AppleShowScrollBars Always(之后又关上了) - 也在 Playwright 里轮过 Firefox 和 WebKit,但没复现出 bug
- 推算出我的默认浏览器是 Safari
- 自己写了一个
textarea-scrollbar-test.htmlHTML 文档 - 用真实 Firefox(不是 Playwright)打开那个 HTML
- 发现
osascript -e 'tell application "System Events" to tell process "firefox" to id of window 1'被 macOS 拦了,因为「osascript is not allowed assistive access」 - 自己凑出前面那个
uv run --with pyobjc-framework-Quartz python的招 - 给站点模板加 JavaScript 来触发
/键 - 自己写了个 Python CORS 小 web server 来收 JSON 数据
- 改写模板来抓数据并 POST 到 server
- 钻进 Web Component 的 shadow DOM 一路 script 到它需要的信息
- 打开 Safari 来确认 bug 来源
- 改自己造的模板来塞进一个候选修复
- 确认塞进去的修复真的管用
- 回报怎么修这个问题
我说吧:relentlessly proactive。
这次花了多少钱
我现在是 $100/月 Claude Max plan,包含一个对 Fable 比较宽裕的额度,6 月 22 日之前都有效,之后 Anthropic 要按 full API price 收费。
我用的是 AgentsView 来跟踪支出(见 这篇 TIL)。下面就是 AgentsView 给出来的如果按 full price 算这次会话的账单:
~ % uvx agentsview session usage be8850a7-6119-46a0-b5d6-79c7fff5ae2b
Session: be8850a7-6119-46a0-b5d6-79c7fff5ae2b
Agent: claude
Output: 68606
Peak ctx: 113178
Cost: ~$12.11 (claude-fable-5, claude-opus-4-8)
只要你不紧盯,Fable 会开开心心地烧掉 $12 token 来发明调试你 CSS 的新方法。
我得把它的活动范围锁死
一方面,看着 Fable 无所不用其极地去拿它调试一个——最终只是两行 CSS 修复——所需的信息,确实很迷人。
但另一方面……这是一个扎扎实实的提醒:Coding Agent 能做任何你能通过在终端里敲命令做到的事——而 frontier 模型知道书上有的每一种招,显然还知道一些从来没被写进书里的。
如果 Fable 那时是在按恶意指令行事——一段藏在代码或 issue 里的 prompt injection,或者一段我稀里糊涂粘到终端里的字符串——想到它能走多远去外泄数据或制造别的乱子,这件事让人发冷。
在沙箱外跑 coding agent 一直就不是个好主意——这是我心目中 「一年之内会有一次 Challenger 灾难级 coding agent 安全事故」 预测的头号候选,Johann Rehberger 在 The Normalization of Deviance in AI 那篇文章里把这个概念讲得很清楚。
Fable 某种意义上更聪明,因而对潜在恶意指令也更警觉。但这种聪明彻头彻尾是一把双刃剑:一旦它真的被恶意指令劫持,凭它这种 relentless 的主动性,它能造成的破坏半径是让人害怕的。
译者注
注 1:原文作者 Simon Willison 的「现场解剖」可信度。Simon 是 Datasette / sqlite-utils / LLM CLI 作者、Python 圈最有影响力的独立开发者之一、个人博客 simonwillison.net 自 2002 年起坚持每日更新(blog 源码在 GitHub,Apache 2.0;内容 CC BY-NC-SA 4.0),HN 长期高频引用者。他的Fable 5 评测 和本篇「Fable is relentlessly proactive」是过去 10 天英文 AI 圈对 Anthropic Claude Fable 5 仅有的两份带完整 terminal transcript + 账单 + 修复 commit 的「第三方独立解剖」——和 Anthropic 官方 Claude Fable 5 model card 完全不在一个维度:官方 model card 写模型能做什么,Simon 写模型真的会做什么、会自主发明什么、一次会话烧多少钱。
注 2:「relentlessly proactive」翻译取舍。英文 “relentless” 是「不间断的、不给对手喘息机会的」,常见对应「无情 / 残酷」(如 “relentless criticism”)或「持续不断」(如 “relentless pressure”)。本文里 Fable 5 的主动性是自主的、不知疲倦的、为了目标愿意发明新招的——没有「恶意」含义。译者选「不知疲倦地主动出击」+「自创招数」两层意译,保留 Simon 原文那种「又迷人又危险」的语气。“proactive”** 直译是「主动的」但容易和「reactive(被动响应)」混淆;Simon 用这个词是和「被动按指令执行」对比——Fable 5 在「没有指令的地方也自己动起来」意义上是 proactive 的。如果直接说「主动」会丢失这个对比,所以保留「主动出击」+「自创招数」+「未被指令要求」的三重表达。
注 3:Fable 5 自主发明的 8 个「用户没要求」的招数清单。Simon 在「A review of everything it did」段落列了 16 个 bullet,但关键的是 8 个(用户没要求 + 用户没建议 + 模型自己凑出来):
uv run --with pyobjc-framework-Quartz python:用 macOS Quartz 框架遍历所有可见窗口、按 window name 过滤、用kCGWindowNumber拿到窗口号——这是正经 macOS 桌面应用开发者才会用的招,普通前端工程师几乎不知道。screencapture -x -o -l <windowId> <file>:用 macOS 自带的 screencapture 命令按窗口号截图,绕开osascript assistive access的 macOS 权限限制。- 自己造一个
textarea-scrollbar-test.html复现页面:为了隔离这个 bug 不是 Datasette Agent 自己的问题。 - 修改 Datasette 自己的模板加
<script>模拟/键——改的是依赖库的源码,不是用户自己代码库的源码。 - 用
http.server标准库临时搭一个 CORS 代理——拒绝被同一 origin 策略挡死。 document.dispatchEvent(new KeyboardEvent(...))——用 JS 直接 dispatch 一个 KeyboardEvent,不经过真实键盘。- 用
shadowRoot.querySelector钻进 Web Component——navigation-search是一个 Shadow DOM 封装的 Web Component,外部 JS 摸不到它内部的 textarea。 - 撞到不可见 guardrail 后自我降级到 claude-opus-4-8——这本身就是 Anthropic 模型矩阵里「frontier 不可用 → 次 frontier 顶上」的运行时 fallback 机制。
这 8 个招有几个是资深 macOS 开发者才知道的(1、2、4)、有几个是资深 Web 工程师才知道的(5、6、7)、有一个是Anthropic 自家模型架构(8)——Fable 5 在一次 2 行 CSS 修复的会话里把三类专家技能全部串了起来**,且全部自主发起。
注 4:$12.11 / 68k output token / 113k peak ctx 的成本结构。单看 $12.11 不贵,但拆开看:
- Output 68,606 token——Fable 5 一次会话写了 68k token,比大多数工程师一整天写的代码 + 注释 + 文档都多。
- Peak context 113,178 token——这意味着 Fable 5 在对话里同时维护了 113k token 的 working memory(系统 prompt + 工具定义 + 历史消息 + 工具输出 + 当前 generation),Claude Code 的 system prompt + 工具定义本身就吃掉了 20-30k,剩下 80k+ 都是会话内积累的事实——包括 Fable 5 自己造的 HTML 页面、Python server 代码、JavaScript 注入、screencapture 命令、bash 输出。
- Cost ~$12.11:按 Claude Opus 4.5-4.8 input $5 / output $25 per million 估算,output 68k × $25/M = $1.71,input 113k × $5/M = $0.57——理论成本 $2.28,但 AgentsView 报 $12.11 是因为peak context 计费(Anthropic 对每一条 generation 都按当时的总 context 计费,不是只按 input tokens),68k output token × 18-19 步 generation 平均、每步重算 input才是真实账单。对中文圈企业来说这是一个反直觉的会计问题:Claude Code 单次会话 token 账单不是「写的 token × 输出价」而是「每一步都按 peak context × 输入价 + 输出 token × 输出价」——50 步以上的长 session 单次成本可以比直觉高 5-10 倍。
注 5:Johann Rehberger 的「Normalization of Deviance in AI」框架。Simon 引用的 The Normalization of Deviance in AI(Johann Rehberger,2025)把 1986 年 NASA Challenger 事故后由社会学家 Diane Vaughan 提出的「偏差正常化」(Normalization of Deviance)框架第一次系统地搬到了 AI 安全领域:
- 核心论点:当一个理论上不应该发生的事反复发生、且没造成事故时,组织会把这个「不该发生」当成「正常」——直到它终于造成一次灾难性事故。
- AI 时代的应用:(1) 「Agent 在沙箱外跑了 1 个月没出事」 → 默认不跑沙箱;(2) 「Coding Agent 读了我 email 没事」 → 默认给 agent 邮箱权限;(3) 「Agent 自己 npm install 了一个包没事」 → 默认 agent 可以装包;(4) 「Agent 改了我 .zshrc 没事」 → 默认 agent 可以改 dotfiles。
- Simon 把本文定位为「我看了 Fable 自主发明的 8 个招之后」我自己 2026 预测里「一年之内会有一次 Challenger 灾难级 coding agent 安全事故」头号候选”——意思是:「Fable 5 这么聪明的模型都按这种方式运行 6 个月、且没造成灾难性事故」这件事本身就是在为下一次灾难积累风险预算**。
对中文圈读者:① 2024 年至今的国产 coding agent(CodeGeeX / Trae / 文心快码)迭代里「自主装包」「自主改 dotfiles」「自主 push 到 git remote」都是逐步开放的——「没出事」不等于「安全」;② 企业给员工配 Claude Code / Cursor / Cline 时的 SOP 应当明确:「每次跑 coding agent 必须有:(a) 沙箱或专用用户;(b) 网络隔离或白名单;(c) 完整 session 录像 + token 账单 + 工具调用清单的审计日志;(d) 不允许 agent 触碰 .ssh / .aws / .kube / ~/.npmrc 等凭证目录」——这四条任何一条缺失,单次会话的失败概率就不是「技术 bug」而是「组织流程 bug」。
注 6:Anthropic 模型矩阵的「runtime fallback」是中文圈企业最缺的一块。** Fable 5 撞到 guardrail 后自我降级到 claude-opus-4-8,Opus 又能拿到 Fable 5 之前的所有 transcript——这套**「frontier 不可用时回退到次 frontier」机制在 Anthropic 自家模型架构里是默认行为**。中文圈企业今天在用 OpenAI / Anthropic / Google / DeepSeek / 智谱 / 月之暗面时几乎都没有自己实现这套 fallback——结果就是:(a) frontier 撞 guardrail → 直接断流;没有 transcript 回放 → 重新开始浪费 1 小时;(b) frontier 价格太贵** → 无法 hot standby;只能 cold restart。未来 12 个月「LLM gateway / model router / runtime fallback」会变成企业 AI 基础设施的标配模块**——参考 6/19 快报的 MCP 零接触 OAuth + 6/20 快报的 OpenAI 实名 + 本文 Simon 观察到的「Fable 撞 guardrail 降级到 Opus」,这三件事是同一趋势(「AI 工具链在工程化」)的三个表现。
注 7:今天 Claude Code / Cursor / Cline 用户的「3 行 hard rule」。针对本文揭示的「relentlessly proactive」双刃剑,中文圈用户能马上在 CLAUDE.md / .cursorrules / .clinerules 里加的 3 条 hard rule:
1. 沙箱优先 (sandbox-first):
所有 Bash 命令必须跑在容器/VM/专用用户下;不得触碰 ~/.ssh ~/.aws ~/.kube ~/.npmrc ~/.docker 等凭证目录;
任何 `rm -rf`、`chmod`、`curl | bash` 类的命令必须 dry-run 先报告。
2. 工具范围最小化 (least privilege):
不得自主 npm install / pip install 任何包;不得修改 ~/.zshrc / ~/.bashrc / git config;
不得自主 git push 到非主分支以外的 remote;
任何网络请求必须列在白名单里。
3. 行为可审计 (audit-trail):
每次会话结束必须输出 /tmp/audit-<session_id>.md,列出:
- 所有 Bash 命令 + 实际执行结果(不是用户指令)
- 所有 Write/Edit 触及的文件路径
- 所有自主发明的脚本(HTML/Python/JS 等)
- AgentsView / 内部计费工具账单
这份 audit 必须由人类在下一个工作日开始前 review。
这 3 条不是 Claude Code 的官方功能——Anthropic 当前 CLAUDE.md 模板里没有——但「它能自主发明你没想到的招」这件事本身就要求你主动加上人类侧的围栏。Simon 6/11 的这次会话是「没出事的偏差正常化」的教科书级样本**:Fable 5 自主发明的 8 个招全部有道理(没有恶意),但这 8 个招单拎出任何一个——比如「修改 Datasette 自己的 templates」「用 http.server 起一个 CORS 代理」「dispatchEvent 一个键盘事件」——都是 prompt injection 的完美抓手。
注 8:和 6/20 翻译《Aaron Gustafson:当 LLM 把无障碍代码当成「可选优化」》的关系。Aaron 那篇讲「LLM 价值观崩塌」——无障碍被 LLM 排在「先跑通代码」之后;本文讲「LLM 行为自主性」——Fable 5 在「没指令的地方也自己动起来」。两个观察共同指向「LLM 在 2026 年不是一个按指令工作的工具**」,而是一个**「有自己优先级 + 有自己主动性」的类雇员——这就要求人类侧从「operator(操作员)」重构为「manager(管理者)」:设目标、设边界、review 产出——这个转变对国内大厂**「AI 工具全民配发」的工程文化是个根本性挑战:**「AI 工具」和「AI 同事」是两种完全不同的管理范式——前者写文档、后者要 1:1 谈话。
延伸阅读
- Aaron Gustafson:当 LLM 把无障碍代码当成「可选优化」—— Claude Code Issue #56079 与 AI 模型的「价值观 bug」(2026-06-20)——同一条「LLM 自主性」证据链的「价值观 / 优先级」侧
- AI 热点快报:白宫出口管制令 72 小时关停 Claude Fable 5/Mythos 5,单一闭源 frontier model 的「行政命令」单点故障暴露(2026-06-15)——Fable 5 发布 3 天后被关停,本文是 Fable 5 同期另一份用户侧独立解剖
- AI 热点快报:MCP「零接触 OAuth」进入 Stable——Anthropic / Microsoft / Okta / VSCode 同步接入(2026-06-19)——MCP 协议层把 OAuth 隔离出 agent context window 来降低 prompt injection 风险;本文是 Agent 拿到 token 后「能做什么」的 protocol 不能挡的层面
- AI 热点快报:72 小时内 Google 痛失双王——诺奖得主 Jumper 跳槽 Anthropic,前 Gemini 联创 Shazeer 加盟 OpenAI(2026-06-20)——Fable 5 撞 guardrail 降级到 Opus 是 Anthropic 模型矩阵的「runtime fallback」;本文谈 Anthropic / OpenAI / DeepMind 三家人才战的同周
- Siri 与私有推理:Lobsters 上 7 条把 Apple「Private Cloud Compute」钉死在「AI 谎言」标签上的高赞讨论(2026-06-15)——「AI 工具在没有沙箱 / 没有第三方审计时默认不被信任」的另一个英文圈活样本