拆解 Dex Horthy:No Vibes Allowed 背后的上下文工程方法论
不靠“vibe”写代码如何让 AI Agent 攻克复杂代码库写在开始笔者平时使用 Codex、Claude Code、Pi 等编码 Agent 工具时总会遇到同一个问题简单场景可以胜任但在复杂业务背景下Agent 编码很难达到想要的结果——经常出现失忆、幻觉、注意力不集中、过度设计等问题导致代码不得不返工。因此想参考技术大佬面对这些问题时是怎么决策的。视频来自YouTube AI Engineer的 Vibes Allowed: Solving Hard Problems in Complex Codebases演讲者Dexter Horthy是一位美国科技创业者、软件工程师主要活跃在 AI Agent和开发者工具领域。 他的主要身份HumanLayer 创始人兼 CEO曾任 Replicated 高管/工程负责人相关职位AI Agent 社区的活跃人物文章概要AI 在新项目中往往表现不错但进入历史悠久、关系复杂的代码库后很容易制造返工与技术债。问题不只在模型能力更在于上下文错误、缺失、噪声和失败对话都会影响 Agent 的下一步选择。Dex 提出用 intentional compaction有意压缩、subagent子代理和 Research–Plan–Implement 工作流让 Agent 尽可能始终处于高质量上下文中。一、背景AI 让我们写得更多还是返工得更多AI 确实能快速生成代码搭一个新页面、写一段脚本、补一个简单接口通常都能很快交付看起来不错的结果。但一旦放进真实且复杂的工程环境情况可能迅速恶化没有找到真正应该修改的文件理解了局部代码却误判了系统整体的数据流重复实现代码库中已有的能力为了完成当前任务绕开既有架构生成的代码暂时能运行却增加了后续维护成本开发者不得不反复解释、纠正和返工。slop看似交付实则返工演讲开头引用了一项针对约 10 万名开发者的调查结论是AI 让团队交付了更多代码但其中相当一部分工作是在重做前一周交付的低质量内容。这类产出被称为slop它不只是“写得不好看的代码”还包括没有充分理解代码库便生成的修改看似完成任务、实际上需要持续返工的实现导致 codebase churn代码库反复变动的低质量产出不符合既有架构与约束的代码。Greenfield 与 BrownfieldGreenfieldBrownfield codebase定义从零开始的新项目持续演进多年的既有系统特点历史约束少、代码规模小模型容易掌握全局大量历史设计、分散在多模块的业务规则、不明显的调用关系、兼容性约束、隐含约定与技术债AI 可以很好地完成一个新的小型项目但如果让它进入一个已有十年历史的 Java 代码库结果可能完全不同。本次分享要解决的核心问题如何让今天的模型在复杂棕地代码库中解决真正困难的问题同时减少 slop 和返工二、结果从“不好用”到 23 倍吞吐量Dex 坦言他第一次使用 Claude Code 时并没有留下特别深刻的印象认可产品体验、也能看出进步但不认为足以改变软件开发方式。后来他所在的三人团队花了八周时间重新设计工作流带来了约23 倍的吞吐量提升——交付速度快到不得不改变协作方式甚至重新设计整个软件开发流程。团队逐渐收敛出的目标让 AI 能在 brownfield codebase 中工作让 AI 能解决复杂问题尽量避免 slop维持团队的 mental alignment心智对齐尽可能把有意义的工作交给 AI发挥 token 的杠杆价值。整场分享把整套实践概括为Advanced context engineering for coding agents面向编码代理的高级上下文工程三、分析真正的痛点不是模型不会写而是上下文一团乱1. 最典型的情况纠正循环大多数人使用 coding agent 时都会经历下面的循环提出需求 ↓ Agent 给出错误实现 ↓ 指出错误并补充说明 ↓ Agent 再次修改 ↓ 发现新的错误 ↓ 继续纠正直到上下文耗尽或开发者放弃看起来是在“逐步逼近正确答案”但实际只会越来越乱。问题在于它能否记得自己搜过哪些文件、运行过哪些命令、采用过哪些错误假设、用户如何否定了这些假设答案往往是不能——上下文已经脏了只能重新开个窗口保留原任务和已确认的事实丢弃无效探索再从正确方向重新开始。但直接重启也有代价新的 Agent 必须重新搜索代码、理解调用关系、定位文件。于是提出了intentional compaction有意压缩。2. 上下文压缩的核心概念Context EngineeringLLM 是stateless无状态的。Dex 曾把 LLM 类比为 pure function——虽然输出具有非确定性严格来说不是纯函数但确实可以视为无状态的。对 coding agent 来说每一步都可能面临很多选择接下来读哪个文件是否继续搜索应该调用哪个工具其中可能同时存在数百个合理选择和数百个错误选择。影响模型下一步输出的核心信息完全来自当前对话中已有的内容。因此更高质量的上下文 Token ⟶ 更高概率的正确输出 Token \text{更高质量的上下文 Token} \longrightarrow \text{更高概率的正确输出 Token}更高质量的上下文Token⟶更高概率的正确输出Token上下文工程就是优化输入的 token让结果更接近正确。怎么定义“正确的输入”从 4 个方面切入维度含义Correctness正确性上下文中的事实必须正确Completeness完整性必须包含解决任务所需的关键文件、调用关系和约束Size大小上下文应尽可能精简避免噪声占用有限空间Trajectory轨迹对话历史应该尽量呈现正确、稳定的推进方向这 4 点不可能同时满足——正确性、完整性、轨迹都满足时上下文就不可能短了。所以要尽可能舍弃部分上下文、保留关键正确的信息但不能压缩得太短。短而错误的上下文并不好正确但略长的上下文也可能优于精简却缺失关键约束的上下文。3. 不要在错误的轨迹上继续争论假设对话一直是Agent做出一个错误修改 → 用户指出错误 Agent再次做出错误修改 → 用户再次指出错误 Agent又一次做出错误修改 → 用户继续指出错误从人类视角看我们是在耐心地纠正模型但从模型视角看当前上下文展示的连续模式是模型犯错 → 用户批评 → 模型犯错 → 用户批评。模型可能继续生成最符合这段对话轨迹的内容——再做错一件事让用户继续纠正。这并不意味着模型真的拥有这种意图而是说明对话历史不仅记录事实也在塑造后续输出的统计轨迹。因此一旦对话长期陷入“生成—否定—再生成—再否定”最合理的处理方式可能不是继续争论而是提取已确认的正确事实删除错误假设与无效探索启动新的上下文从正确轨迹重新开始。4. 模型会随着上下文变长而变得愚蠢以 Claude Code 为例上下文窗口大约为 168,000 tokens其中一部分还要为输出和压缩预留。问题是模型智力并不会等到上下文完全耗尽才下降注意力会被不断分散。Dex 给出的经验性判断对某些复杂任务而言上下文使用到约 40% 附近时就可能开始出现 diminishing returns边际收益递减。为什么模型智商会下降上下文不断增长 ↓ 噪声和历史信息不断累积 ↓ 模型定位关键事实的难度提高 ↓ 复杂任务更早出现性能衰减这是最常见的上下文杀手搜索和定位文件理解代码流编辑文件的过程测试输出构建输出MCP 工具返回的大量 JSON。如果 coding agent 配置了太多 MCP 工具并让它们持续向上下文中注入垃圾Agent 甚至可能从任务一开始就站在垃圾堆里。所以工具越多不一定越强——不能转化为有效决策的信息只是在消耗上下文预算。四、解决三个方法方法一Intentional Compaction有意压缩什么是有意压缩无论当前任务是否已经跑偏都主动让 Agent 将现有上下文压缩成一份 Markdown 文档随后拿着这份上下文开始新的工作区域——相当于给 Agent 一个清晰的背景、目标、规范。旧上下文 ├── 文件搜索记录 ├── 完整文件内容 ├── 构建与测试输出 ├── 错误尝试 └── 已确认事实 │ ▼ Intentional Compaction │ ▼ 压缩后的 Markdown ├── 当前任务 ├── 已确认结论 ├── 关键文件与行号 ├── 相关代码流 └── 下一步工作 │ ▼ 新 Agent 直接继续这样新 Agent 不必重新进行所有搜索也不必继承旧上下文中的大量噪声。一份好的压缩结果应该包含什么当前究竟在解决什么问题哪些文件与问题直接相关相关代码位于哪些行哪些代码流与当前任务有关。可直接使用的模板# 当前任务 描述需要解决的问题。 ## 已确认事实 - 已经通过代码验证的事实 - 当前系统的相关行为 - 不能违反的现有约束 ## 关键位置 - path/to/file-a: 与问题相关的代码位置 - path/to/file-b: 调用方或依赖位置 ## 相关代码流 说明请求、数据或状态如何经过相关模块。 ## 当前进度 - 已完成 - 待完成 ## 下一步 给出下一阶段应处理的具体事项。人工审核压缩最关键的不在于短而在于正确。压缩并不会自动保证正确——如果旧上下文中已经存在误解模型可能把误解一并写入摘要未经审核便交给新 Agent只是把错误从长上下文迁移到了短上下文。所以必须人工审核才能拿到正确的交接文档。方法二Subagent——它是上下文隔离器提到 subagent子代理我们会下意识地按岗位创建角色来并行执行、加快开发效率比如前端/后端/QA/数据科学子代理。Dex 纠正了这一点Subagents are not for anthropomorphizing roles. They are for controlling context.子代理不是为了把角色拟人化而是为了控制上下文。正确的用途假设主 Agent 正在解决一个复杂问题但需要先了解某个功能在大型代码库中如何工作主 Agent 可以创建一个独立的子上下文主 Agent │ ├── 任务实现当前功能 │ └── 派生子 Agent 查清楚这个功能在代码库中是如何实现的子 Agent 可以在自己的上下文中完成高消耗工作搜索大量文件、阅读完整代码、追踪调用链、理解代码库结构、排除不相关模块。然后它不把所有过程原样传回主 Agent只返回一个精简结论目标逻辑位于某文件关键入口是某函数相关调用关系如下主 Agent 接下来只需阅读这个文件。主 Agent 因此不必承担搜索过程中产生的上下文负担可以直接读取最相关的文件并开始工作。子代理的本质从上下文工程角度看子代理是一个“信息漏斗”大量代码与搜索结果 │ ▼ 子 Agent 隔离处理 │ ▼ 少量、高密度、任务相关的信息 │ ▼ 主 Agent它就是一个上下文隔离器防止主 Agent 被垃圾污染。但使用子代理也需要注意返回结果的正确定性。方法三Frequent Intentional Compaction频繁有意压缩单次压缩只能解决某一个节点上的上下文膨胀。Dex 进一步提出不要等上下文被垃圾堆满了才开始压缩。压缩不再是异常处理动作而是开发流程的一部分开发者要有意且主动地压缩。与其让一个 Agent 在同一个对话中完成理解代码库 → 设计方案 → 修改代码 → 运行测试不如在不同阶段之间主动建立边界每个阶段只保留下一阶段需要的信息。这就引出了整场演讲最重要的工作流Research → Plan → Implement五、实践三阶段工作流 Research、Plan、Implement阶段一Research目标理解系统如何工作找到真正相关的文件理清代码流保持客观不急于提出修改方案。这一阶段可能需要大量搜索和阅读也因此很容易产生大量上下文。合理的做法是让研究过程独立运行最后输出一份高密度的研究文档。可直接使用的模板# Research目标问题 ## 系统当前行为 说明相关功能目前如何运行。 ## 关键文件 - path/to/file-a - path/to/file-b ## 代码流 入口 → 中间处理 → 数据写入或输出 ## 与问题直接相关的事实 - 事实一 - 事实二 ## 尚未确认的问题 - 待确认事项一 - 待确认事项二阶段二Plan在理解代码结构后就可以开始规划怎么开发了务必澄清所有需求。plan Outline the exact steps —— 列出准确的步骤。阶段三Implement规划清楚之后就可以开发然后再验收。三个阶段是怎么连接的每个阶段都拿到正确的输入、工作并产生正确的结果Research 上下文 ├── 大量搜索 ├── 阅读代码 └── 输出压缩后的研究结论 │ ▼ Plan 上下文 ├── 使用研究结论 └── 输出明确实施步骤 │ ▼ Implement 上下文 ├── 使用研究结论与计划 └── 聚焦代码修改每一次阶段切换都可以成为一次intentional compaction。六、总结长期任务或复杂项目中怎么用 AI Coding为什么 AI 在复杂代码库里容易制造 slop因为它经常需要同时承担四类工作搜索代码理解系统设计方案编写并验证代码。如果所有过程都发生在同一个上下文里模型需要一边处理当前任务一边背负所有历史搜索、错误输出和工具结果。随着上下文增长它做出错误下一步选择的概率也会提高。Dex 的方案可以概括为复杂任务 │ ├── 用 subagent 隔离高消耗搜索 ├── 用 intentional compaction 提炼有效信息 ├── 用 Research 建立客观理解 ├── 用 Plan 固化下一步路径 └── 用 Implement 聚焦执行其本质很简单在开发中不断保持输入的正确和简洁。

相关新闻

基于Wio-SX1262与XIAO ESP32S3的LoRa物联网开发与Meshtastic实战

基于Wio-SX1262与XIAO ESP32S3的LoRa物联网开发与Meshtastic实战

1. 项目缘起:为什么是Wio-SX1262与XIAO ESP32S3的组合?最近在捣鼓一些需要远距离、低功耗通信的物联网项目,比如环境传感器网络或者去中心化的设备间通信,LoRa技术自然就成了首选。但市面上很多LoRa模块要么是裸模块,需…

2026/8/3 2:15:52 阅读更多 →
MATLAB K-means图像分割:从原理到工程实现的快速方案

MATLAB K-means图像分割:从原理到工程实现的快速方案

如果你正在处理图像,比如想把一张照片中的前景和背景分开,或者想把医学影像中的不同组织区域自动划分出来,你可能会立刻想到那些复杂的深度学习模型,比如 U-Net。但很多时候,我们手头没有海量的标注数据,或…

2026/8/3 2:15:52 阅读更多 →
OpenAI Codex Token优化实战:65%成本削减的提示工程与后处理技巧

OpenAI Codex Token优化实战:65%成本削减的提示工程与后处理技巧

在实际使用 OpenAI Codex 这类大型语言模型进行代码生成或文本补全时,开发者最直接的痛点之一就是高昂的 Token 消耗成本。无论是按调用次数计费,还是处理长上下文时面临的上下文窗口限制,Token 数量都直接关系到项目的经济成本和可行性。如果…

2026/8/3 2:14:52 阅读更多 →

最新新闻

Codex AI模型代理实战:从零配置到IDE集成,解决网络与模型接入难题

Codex AI模型代理实战:从零配置到IDE集成,解决网络与模型接入难题

在实际开发中,我们经常需要将不同的AI模型服务(如GPT、Claude、DeepSeek等)通过一个统一的接口进行管理和调用,以解决直接使用官方API可能遇到的网络、计费、密钥管理等问题。Codex作为一种流行的AI模型服务中转站(或称…

2026/8/3 2:46:05 阅读更多 →
CANoe实战:AUTOSAR I-PDU车载以太网仿真与测试全流程

CANoe实战:AUTOSAR I-PDU车载以太网仿真与测试全流程

在车载以太网开发与测试中,如何快速理解并验证 AUTOSAR 架构下的基础通信单元?很多工程师在初次接触 I-PDU 概念和 CANoe 的以太网仿真时,常常感到无从下手,网上资料也多是零散的概念,缺乏一个从环境搭建到信号收发的完…

2026/8/3 2:46:05 阅读更多 →
8DP-CAPLCD技术解析:集成触控与8畴驱动的显示方案

8DP-CAPLCD技术解析:集成触控与8畴驱动的显示方案

1. 项目概述:8DP-CAPLCD是什么?如果你最近在关注一些消费电子新品,尤其是智能手表、运动手环或者高端智能家居中控屏,可能会频繁听到一个词:8DP-CAPLCD。这串看起来像密码的字母数字组合,其实指向了当前显示…

2026/8/3 2:46:05 阅读更多 →
ESP32-S2-Pico模组:从核心芯片到量产产品的物联网开发实战指南

ESP32-S2-Pico模组:从核心芯片到量产产品的物联网开发实战指南

1. 项目概述:为什么ESP32-S2-Pico值得你关注?如果你玩过ESP8266或者ESP32,那你对“Pico”这个后缀可能不会陌生。它通常意味着一个将核心功能浓缩到极致、尺寸小巧到可以轻松嵌入任何项目的开发板。今天要聊的这块ESP32-S2-Pico,就…

2026/8/3 2:46:05 阅读更多 →
NFC供电电子纸屏开发实战:从无源原理到物联网应用

NFC供电电子纸屏开发实战:从无源原理到物联网应用

1. 项目概述:当NFC遇上电子纸最近在捣鼓一个挺有意思的小玩意儿:一块2.9英寸、靠NFC供电和传输数据的电子墨水屏。这可不是普通的电子纸,它把NFC的能量采集和通信功能,与电子墨水屏的超低功耗、视觉舒适特性结合在了一起。简单来说…

2026/8/3 2:46:05 阅读更多 →
游戏角色设计缺陷分析:从机制拆解到实战优化的稳定性提升方案

游戏角色设计缺陷分析:从机制拆解到实战优化的稳定性提升方案

在实际游戏开发或游戏机制分析中,我们常常会遇到一些设计上存在明显短板、实战表现不稳定的英雄或角色。这类角色往往在特定条件下能发挥奇效,但更多时候会因为机制缺陷、环境变化或玩家操作不当而陷入困境,导致游戏体验“大起大落”。本文将…

2026/8/3 2:45:05 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →