For my first post, I’m sharing a letter @NVIDIA signed on why open models matter.
AI will transform every industry, power every company, and be built by every country.
Open models strengthen safety and cybersecurity, accelerate innovation and diffusion, and enable sovereignty.
The world needs both frontier closed models and frontier open models.
https://t.co/AUKzoQ5Ikb
前些天 X 上还一堆人讨论要不要看 AI 生成的代码,现在《Clean Code》作者鲍勃大叔都说:“我不看 AI 写的代码”
他的原话是,这是他能利用 AI 生产力的唯一方式。人类读代码太慢了,如果还逐行审查,就丧失了用 AI 的意义。
但不看不等于不管。他的做法是给 AI Agent 设置层层关卡:单元测试、Gherkin 测试(一种用接近自然语言描述软件行为的测试格式)、QA 流程、代码质量指标、变异测试(故意往代码里塞小错误,看测试能不能抓住)、测试覆盖率,等等。
他在今年早些时候还公开了自己的具体实践:一套四个 Agent 组成的流水线,分别负责需求规格化、编码、重构和架构审查,每个阶段都比上一个阶段更形式化,需要的人工干预也更少。他同时还会看测试覆盖率、依赖结构、圈复杂度、模块大小这些指标,从指标推断代码质量,而不是从代码本身。
【注:圈复杂度(Cyclomatic Complexity)衡量代码中独立执行路径的数量,数字越大说明逻辑越复杂,越难维护和测试。】
当 AI 生成代码的速度远超人类阅读代码的速度,代码审查的形态也在跟着改变。以前的核心能力是读代码、写代码,现在可能正在变成写测试、定约束、设指标。鲍勃大叔过去几十年一直在推测试驱动开发(TDD),现在 AI 时代高质量的测试覆盖反而比代码更有价值。
他今年在 O'Reilly 上开了一门课,叫《AI Agents for Clean Code》,也在自己的 Clean Coders 平台推出了新系列《Clean AI: Agentic Discipline》。主旨一样:AI Agent 不是不需要纪律,是需要不同的纪律。
如果你的codex也老是这样,不妨试着把下面的skill发给它!
安装方法:新建文件夹 ~/.codex/skills/configure-local-proxy/,在里面新建 SKILL.md,粘贴以下内容;重启 Codex 后生效。
---
name: configure-local-proxy
description: Detect the active local proxy application's HTTP/SOCKS port and create or update `.codex/.env` with HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, and NO_PROXY. Use when a user asks to configure Codex or a workspace to use their local proxy, asks to find their proxy port, or supplies this proxy-environment-variable workflow.
---
# Configure Local Proxy
Detect the port first; never assume the example port is active.
## Workflow
1. Inspect existing `HTTP_PROXY`, `HTTPS_PROXY`, and `ALL_PROXY` environment variables.
2. Identify running local proxy clients, such as Clash/Mihomo, v2ray/Xray, sing-box, NekoRay, or Shadowsocks.
3. Read the application's active configuration and extract a usable local proxy port. Prefer `mixed-port` when present; otherwise use the HTTP `port` for HTTP(S) variables and the SOCKS port for `ALL_PROXY`. If the process exposes listeners, use them only when accessible without elevated privileges.
4. If no port can be determined safely, report that result and request the user's port. Do not create a guessed configuration.
5. Preserve unrelated lines in an existing workspace `.codex/.env`; add or replace only these values:
```dotenv
HTTP_PROXY="http://127.0.0.1:<port>"
HTTPS_PROXY="http://127.0.0.1:<port>"
ALL_PROXY="socks5h://127.0.0.1:<port>"
NO_PROXY="localhost,127.0.0.1,::1"