别写 Markdown 了——用 HTML 和 Claude Code 交流

别写 Markdown 了——用 HTML 和 Claude Code 交流

Markdown 一直是 Agent 跟我们沟通时最常用的文件格式。简单,跨平台,有一定的富文本能力,而且方便你手动编辑。Claude 甚至学会了在 Markdown 里用 ASCII 画图,画得还挺 ...

OpenSpec:先对齐规范再写代码,别让 AI 猜你的需求

OpenSpec:先对齐规范再写代码,别让 AI 猜你的需求

OpenSpec 是一个面向 AI 编码助手的规范驱动开发(SDD)框架。它通过一层轻量级的规范文件,让你和 AI 在生成代码之前就先对齐需求、设计和任务。该项目在 GitHub 拥有 45.8k s ...

重试、退避,以及延迟图里的幽灵

LLM 调用的重试逻辑是那种你以为很显然,直到它差点搞挂一个服务的事情。模型 API 返回的 429 不等同于缓存查询返回的 429。模型生成异常变慢导致 30 秒后超时,不等同于网络抖动。把它们当一 ...

流式响应:在不毁掉 UX 的前提下

从外面看,流式输出很简单:token 到达,你追加,用户阅读。等到第一次有不完整的 JSON 块在渲染中途到达,或者代码块开了头但闭合的反引号四秒后才到,你才会理解为什么团队把流式输出当成 UX 问题 ...

LLM 应用的追踪:当什么都没崩时,该记什么日志

传统应用出问题时会崩溃。LLM 应用出问题时会返回一个自信的错误答案,并把成功计数器加 1。你标准的可观测性栈——指标、trace、异常追踪——会告诉你请求在 1.2 秒内完成,其余什么也不报告,而用 ...

像版本化代码那样版本化 Prompt

LLM 项目的生命周期是:有人写了一个能用的 prompt,另一个人把它复制进代码库,第三个人改了一个词,四个月后没人能复现大家都一致同意是最好的那一版。Prompt 是代码,但多数团队最多把它当配置 ...

Token 经济学:便宜模型反而更贵的时候

一个答对率 80% 的便宜模型,比答对率 95% 的高端模型更贵——只要你把重试、升级、和便宜模型塞满的人工审查队列算进去。每个人原则上都明白这一点,几乎没人第一次就把成本算对,因为便宜模型的账单是具 ...

测试 LLM 应用:当输出非确定性时

用确定性代码库的测试范式去测 LLM 应用,结果是周末挂、周一过的 flaky 测试。同样的输入,模型输出在多次调用之间并不稳定;即便温度为零,模型本身也会更新带来漂移。快照测试一直在响,没人再读;精 ...

缓存 LLM 响应:不只是按 prompt 哈希

每个人给 LLM 应用加的第一个缓存,都是把 prompt 哈希映射到响应的键值存储。开发环境里命中率看起来还行,生产里令人失望,因为真实用户用十四种不同方式问同一个问题,而 SHA 哈希把它们当成不 ...

LLM 安全:没人提醒过你的威胁

LLM 应用的安全思考卡在 prompt injection 上,因为这个最戏剧。戏剧的一般不是危险的。真正攻陷生产 LLM 应用的威胁要安静得多,也没什么聪明的代号:通过 tool 调用做数据外渗、 ...