AI Agent 进化之路:从提示工程到上下文工程及未来展望

从提示工程到上下文工程,AI Agent正迎来新范式转变。通过动态信息与工具管理,构建更智能可靠的AI系统,提升任务完成质量。

原文标题:浅谈上下文工程|从 Claude Code 、Manus 和 Kiro 看提示工程到上下文工程的转变

原文作者:阿里云开发者

冷月清谈:

引言 随着 AI Agent 的快速发展,一个新的名词「上下文工程」进入大家的视野。简单来说,上下文工程是指构建动态系统,以合适的格式为大语言模型(LLM)提供正确的信息和工具,从而让LLM能够合理地完成任务。它不仅仅关乎单一的提示词,更是模型在生成响应前所看到的一切信息的管理艺术和科学。
一个完整的上下文工程系统包括指令/系统提示词、用户提示词、当前状态或对话历史(短期记忆)、长期记忆、检索的信息(RAG)、可用工具和结构化输出等七个核心组成部分,这使得其作用范围远超传统的提示工程,更像是在为AI Agent编写一部详细的剧本。
上下文工程的价值在于显著降低AI失败率、保证任务执行一致性、支持复杂特性实现以及增强AI的自我修正能力。

然而,随着上下文长度增加,模型面临“Context-Rot”问题,表现为幻觉、信息模糊、关键信息稀释和行动瘫痪。解决这些问题的关键在于系统性的上下文工程方法论,包括Offload(将信息卸载到外部存储)、Retrieve(通过RAG动态检索)、Reduce(压缩裁剪冗余信息)以及Isolate(通过SubAgent分而治之)。这些策略共同应对了长上下文带来的模型注意力“腐蚀”现象,确保AI Agent在处理复杂任务时仍能保持高效和准确。

业界实践中,LangChain作为一个Agent框架,提供了四类上下文管理的基本方法。Claude Code作为编码Agent的标杆,实践了三层记忆架构、实时Steering机制、分层多Agent协作和动态上下文注入。Manus在优化方面独具特色,包括KV缓存优化、工具遮蔽、文件系统记忆、注意力操控、错误保留和多样性增强。Kiro则推动了从Vibe Coding到Spec-Driven Development的转变,强调通过规范定义需求、设计、任务和代码,提升大型项目的可维护性和协作效率。

展望未来,上下文工程被视为从提示词工程向“环境工程”过渡的中间态。环境工程是终极目标,它旨在构建一个持续演化、可感知、可交互的智能环境,让AI Agent能主动感知、探索并影响其所处的世界,实现更高级别的智能交互。

怜星夜思:

1、文章提到Manus通过KV缓存优化降低成本和延迟。除了保持前缀稳定、确定性JSON序列化和手动标记缓存断点,我们还能在哪些方面进一步优化KV缓存的利用效率,以应对更复杂的Agent场景?
2、Kiro项目采用的Spec-Driven Development理念,从Prompt到Requirements、Design、Tasks、Code的流程,对于中小项目或快速原型验证阶段,会不会因为过于“重”而增加不必要的初期开销?我们该如何平衡规范化与敏捷性的需求?
3、文章展望了环境工程作为AI的终极目标,强调AI Agent将主动感知、探索、影响甚至“塑造”环境。但这种“主动塑造环境”的能力,在技术实现上会有哪些尚未解决的巨大挑战?我们距离完全实现这种愿景还有多远?

原文内容

引言

随着 AI Agent 的快速发展,一个新的名词「上下文工程」进入大家的视野,很多人会好奇它与「提示词工程」有什么区别,是又在造新的概念吗?我们今天就来聊聊,究竟什么是「上下文工程」,以及它是如何工作的。

本文将围绕三个核心主题展开:

1.概念定义:介绍上下文工程的基本概念和核心组成部分。

2.业界工程实践深入分析业界知名产品在上下文工程方面的具体实践。

3.未来展望探讨上下文工程后续可能的演进方向。

今天我们将探讨的问题:

  • 为什么需要上下文工程?

  • 为什么 Claude Code 效果这么好?

  • Manus 在优化 Agent 上做了哪些尝试?

  • 为什么 Spec Driven + Context Engineering 会代替 Vibe Coding + Prompt Engineering?

概念定义

什么是上下文工程

上下文工程是指构建动态系统,以合适的格式为大语言模型(LLM)提供正确的信息和工具,从而让LLM能够合理地完成任务。

上下文不仅指你发送给 LLM 的单一提示词(prompt),更应该被视为模型在生成响应前所看到的一切信息。上下文工程就是如何将合适的信息填充到有限的上下文里的艺术和科学。

其核心特点包括:

  • 动态构建系统

  • 提供正确信息和工具

  • 合适的格式化

  • 让LLM合理完成任务

图片来源于网络

上下文工程的组成部分

一个完整的上下文工程系统包含以下七个核心组成部分:

1.指令/系统提示词定义模型整体行为的初始指令,可以(也应该)包含示例、规则等。

2.用户提示词用户提出的即时任务或问题。

3.当前状态或对话历史(短期记忆)用户和模型此前的对话内容,展现当前交流的背景。

4.长期记忆跨多次对话积累的持久性知识库,比如用户喜好、历史项目摘要、记住的特定事实。

5.检索的信息(RAG)外部的、最新的信息,包括从文档、数据库或 API 获取的相关内容,用于回答特定问题。

6.可用工具模型可以调用的所有函数或内置工具定义(如检查库存、发送邮件等)。

7.结构化输出明确定义模型输出的格式,例如 JSON 格式的对象。

提示工程 vs 上下文工程

Context Engineering 代表着从传统 Prompt Engineering 到新范式的转变。

对比维度

Prompt Engineering

Context Engineering

关注点

词句技巧和表达方式

提供全面上下文

作用范围

只限于任务描述的表达

包含文档、示例、规则、模式和验证

类比

就像贴一张便签

就像写一部详细剧本

为什么需要上下文工程

简单演示对比

让我们通过一个简单的演示来理解上下文工程的价值:

上下文贫乏的情况:

用户:"Hey, just checking if you’re around for a quick sync tomorrow. 嘿,想问一问明天方不方便,我们快速碰个头?"

AI:"Thank you for your message. Tomorrow works for me. May I ask what time you had in mind? 感谢来信!明天我有空。你想约在几点?"

上下文丰富的"神奇"产品:

上下文:你的日历信息(显示你日程已满)、你与此人的过往邮件(用于确定合适的非正式语气)、你的联系人列表(用于识别 ta 为关键的合作伙伴)、send_invite 或 send_email 工具。

AI:"Hey Jim! Tomorrow’s packed on my end, back-to-back all day. Thursday AM free if that works for you? Sent an invite, lmk if it works. 嗨 Jim!明天我这边日程全排满了,从早到晚连轴转。周四上午有空,你看行不?邀请已发,确认下是否合适~"

上下文工程的价值

上下文工程能够带来以下重要价值:

1.降低 AI 失败率大多数 Agent 失败不是模型问题,而是上下文不全。

2.保证一致性AI 能遵循你的项目模式和规范。

3.支持复杂特性有了完整上下文,AI 能处理多步骤实现。

4.自我修正验证循环让 AI 能自动修正错误。

业界工程实践概览

在上下文工程领域,有三个产品代表了不同的实践方向:

1.LangChain代表 Agent 框架和工具集合,早期的 Agent 框架,提供了各种Agent开发的基础设施,提出了一套上下文管理的方法论。

2.Claude Code代表 Code Agent 能力上限,编码 Agent 的能力标杆,在长短记忆、分层多 Agent 协作等方面有独到实践。

3.Manus重新展现 Agent 能力,让 Agent 回到大众视野,带动 MCP 发展,在工具使用、缓存设计等方面有独到实践。

长上下文的Context-Rot问题

随着上下文长度的增加,模型的注意力机制可能会出现"腐蚀"现象,导致对关键信息的关注度下降。

图片来源于网络
问题表现
  • 产生幻觉后,会被持续带偏。

  • 模糊性导致信息冲突,模型的行为会变得不可预测。

  • 关键信息被稀释,随着上下文的增长,模型的注意力会被分散。

  • 大量重复文本导致的"行动瘫痪"。

影响因素
  • 上下文长度超过训练时的常见长度。

  • 模型能力的限制。

  • 信息密度不均匀分布。

  • 自然语言的模糊性。

解决方案

为了解决长上下文带来的问题,业界提出了系统性的上下文工程方法论:

  • Offload:通过引用减少上下文长度。

  • Retrieve:RAG 技术动态检索相关信息。

  • Reduce:压缩裁剪冗余信息。

  • Isolate:分而治之,通过SubAgent处理子任务。

因此系统性的上下文工程方法论显得尤为重要。

LangChain的上下文管理方法论

LangChain 提出了四类上下文管理的基本方法:

图片来源于网络

写入(Offload)上下文

图片来源于网络

将信息保存在上下文窗口之外,以帮助 Agent 完成任务。不要将工具返回的全部原始信息都直接喂给 LLM。相反,应将其"卸载"到外部存储(如文件系统、数据库或一个专门的代理状态对象中),然后只将一个轻量级的"指针"返回给模型。

核心组件包括:

  • File System - 文件系统

  • Memories - 长期记忆系统(zep, mem0)

  • DataBase - 数据库存储

应用场景:

  • 长期记忆构建-claude

  • 任务计划保存-manus

  • 用户偏好记录

  • 知识库管理

选择(Retrieve)上下文

简单来说就是我们所熟悉的 RAG,通过检索和过滤相关信息,来控制进入 Context 的内容的数量和质量。

核心组件:

  • 更高级的检索(agentic search)- 从向量检索出发,逐渐往更复杂的搜索体系演化。例如混合召回,结合图谱的 GraphRAG,rerank 等等。

  • 返璞归真的文本检索 - 仅仅使用 llms.txt + grep/find 之类的工具,通过 agent 的多轮工具调用来获取相关信息。这也是 Claude Code 的实现方式。

应用场景:

  • 代码索引:DeepWiki

  • todolist 召回

  • 过多工具的召回 langgraph-bigtool(Manus 不推荐,可能导致缓存失效)

  • 知识库

压缩(Compress)上下文

通过各种手段来裁剪上下文的内容,只保留完成任务所需的 tokens。

图片来源于网络

核心组件:

  • 摘要生成 - 提取核心信息。

  • Rerank - 移除不太相关的信息,RAG 场景中常用。

  • 语义总结、压缩 - 保持含义精简表达。如果总结得不好,一样会出现关键信息丢失,甚至引入幻觉等问题。

应用场景:

  • 网络搜索

  • RAG

  • 大量工具使用

  • 多轮聊天

隔离(Isolate)上下文

非常类似 Workflow 时代的"分而治之"思想,如果一个任务的 context 压力太过巨大,我们就拆分一下,分配给不同的 sub agents 来完成各个子任务。这样每个 agent 的 context 内容都是独立的,会更加清晰和聚焦。

图片来源于网络

核心组件:

  • 环境隔离 - 环境/沙盒隔离,让部分内容在 LLM 环境外运行,如代码执行场景,非常类似"卸载"。

  • 多 Agent 分离 - 不同角色独立上下文,容易产生冲突的工作尤其要注意。"只读"类的工作最合适。

应用场景:

  • 智能体中涉及代码执行或数据分析。

  • 智能体工具调用。

  • 复杂的多智能体系统如 Manus。

Claude Code的工程实践

Claude Code 作为编码 Agent 的标杆,在上下文工程方面有很多独到的实践:

  • 三层记忆架构:实现从实时访问到持久化存储的完整覆盖。

  • 实时 Steering 机制:流式输出提供持续交互反馈。

  • 分层多 Agent 协作:主 Agent 协调 + SubAgent 执行的分层架构。

  • 动态上下文注入:自动识别和注入相关文件内容。

三层记忆架构

在长对话中,上下文管理面临 Token 限制导致信息丢失、传统压缩方法破坏上下文连续性、无法支持复杂多轮协作任务等挑战。

Claude Code 的解决方案是构建三层记忆系统:

  • 短期记忆(当前对话)

  • 中期记忆(智能压缩)

  • 长期记忆(CLAUDE.md 项目知识库)

实现从实时访问到持久化存储的完整覆盖。

关键要点:

  • 92% 阈值自动触发智能压缩

  • 8 段式结构化保存核心信息

  • 跨会话恢复项目背景和用户偏好

实时 Steering 机制

传统 Agent 无法中断,用户必须等待完整执行结束才能调整方向,导致资源浪费和用户体验差,无法应对动态变化的需求。

Claude Code 的解决方案是采用异步消息队列 + 主循环的双引擎设计,支持实时中断和恢复,用户可以随时调整任务方向,系统自动保存状态并无缝切换。

关键要点:

  • 异步消息队列支持实时中断。

  • 主循环自适应流程控制。

  • 流式输出提供持续交互反馈。

分层多 Agent 协作

复杂任务需要并发处理多个子任务,单 Agent 模式容易出现上下文污染、资源竞争和故障传播,影响整体执行效率和稳定性。

Claude Code 的解决方案是采用主 Agent 负责任务协调,SubAgent 执行专项任务,实现隔离执行环境,调度器控制最多 10 个工具并发,确保任务隔离和资源优化。

关键要点:

  • 主 Agent 协调 + SubAgent 执行的分层架构。

  • 独立执行环境避免上下文污染。

  • 智能调度器实现 10 工具并发控制。

动态上下文注入

用户在对话中提及文件或概念时,系统无法自动关联相关信息,导致模型缺乏必要的上下文背景,影响响应质量和准确性。

Claude Code 的解决方案是智能检测用户意图中的文件引用,自动读取相关内容并注入上下文,基于依赖关系推荐相关文件,提供语法高亮和格式化显示,最大20文件8K Token限制。

关键要点:

  • 自动识别和注入相关文件内容。

  • 智能推荐基于依赖关系分析。

  • 容量控制和格式优化提升体验。

Manus的优化实践

Manus 在上下文工程方面有诸多独特的优化实践:

  • KV 缓存优化:围绕 KV 缓存设计,大幅降低成本和延迟。

  • 工具遮蔽:遮蔽而非移除工具,保持上下文稳定性。

  • 文件系统记忆:使用文件系统作为终极上下文。

  • 注意力操控:通过复述操控注意力,保持目标一致。

  • 错误保留:保留错误内容,让模型从失败中学习。

  • 多样性增强:避免少样本示例陷阱,增加结构化变化。

围绕 KV 缓存进行设计

随着每一步的推进,上下文不断增长,而输出保持相对简短。这使得 Agent 相比聊天机器人的预填充和解码比例高度倾斜。在 Manus 中,平均输入与输出的 token 比例约为 100:1。

具有相同前缀的上下文可以利用 KV 缓存,大大减少首个 token 生成的时间和推理成本。使用 Claude Sonnet 时,输入 token 缓存 0.3 美元/百万 token,未缓存 3 美元/百万 token,十倍成本差异!

关键要点:

  • 保持前缀稳定,时间戳会使 KV 缓存失效。

  • 使上下文只追加,确保你的 JSON 序列化是确定性的,键顺序不稳定会破坏缓存。

  • 在需要时明确标记缓存断点,不支持自动增量前缀缓存模型或推理框架需要在上下文中手动插入缓存断点。

遮蔽,而非移除工具

工具数量爆炸式增长,模型更可能选择错误的行动或采取低效的路径,但是要避免在迭代过程中动态添加或移除工具:

  • 动态更改会导致 KV 缓存失效。

  • 模型会对不再定义的工具感到困惑。

Manus 的解决方案是使用上下文感知的状态机来管理工具可用性,在解码过程中掩蔽 token 的 logits,基于当前上下文阻止或强制选择某些工具。

关键要点:

  • 在实践中,大多数模型提供商和推理框架都支持某种形式的响应预填充(response prefill),这允许你在不修改工具定义的情况下约束动作空间。

使用文件系统作为上下文

当前上下文窗口限制带来三个常见的痛点:

  • 观察结果可能非常庞大,容易超出上下文限制。

  • 超过一定的上下文长度后,模型性能往往会下降。

  • 即使使用 KV 缓存,长输入成本依然高昂。

为了解决这个问题,Manus 将文件系统视为终极上下文:大小不受限制,天然持久化,并且 Agent 可以直接操作。模型学会按需写入和读取文件——不仅将文件系统用作存储,还用作结构化的外部记忆。

关键要点:

  • 只要保留 URL,网页内容就可以从上下文中移除;如果沙盒中仍然保留文档路径,则可以省略文档内容。这使得 Manus 能够缩短上下文长度,而不会永久丢失信息。

通过复述操控注意力

Manus 中的一个典型任务平均需要大约 50 次工具调用。这是一个很长的循环——由于 Manus 依赖 LLM 进行决策,它很容易偏离主题或忘记早期目标,尤其是在长上下文或复杂任务中。

Manus 的解决方案是通过不断重写待办事项列表,将目标复述到上下文的末尾。这将全局计划推入模型的近期注意力范围内,避免了"丢失在中间"的问题。

关键要点:

  • 避免"丢失在中间"问题

  • 保持目标一致性

  • 提升长任务执行能力

  • 无需架构变更

保留错误的内容

在多步骤任务中,失败不是例外;它是循环的一部分。然而,一个常见的冲动是隐藏这些错误,这是有代价的:擦除失败会移除证据。没有证据,模型就无法适应。

Manus 的解决方案是将错误的尝试保留在上下文中。当模型看到一个失败的行动——以及由此产生的观察结果或堆栈跟踪——它会隐式地更新其内部信念。这会改变其先验,降低重复相同错误的可能性。

关键要点:

  • 模型从错误中学习

  • 降低重复错误概率

  • 提供负面样本训练

  • 增强适应能力

不要被少样本示例所困

Few-Shot 是提高 LLM 输出的常用技术。但在 Agent 系统中,它可能会以微妙的方式适得其反。LLM 倾向于模仿上下文中的行为模式,容易导致偏离、过度泛化,或产生幻觉。

解决方法是增加多样性。Manus 在行动和观察中引入少量的结构化变化——不同的序列化模板、替代性措辞、顺序或格式上的微小噪音。

关键要点:

  • 不同的序列化模板

  • 替代性措辞表达

  • 顺序上的微小变化

  • 格式上的受控噪音

Spec-Driven Development:从提示词到规范驱动

Vibe Coding 的局限性

传统的 Vibe Coding 模式(Prompt → Code)存在明显局限性:

1.指望用户写出高质量的提示词是不现实的。

2.快速迭代生成的代码缺乏充分的文档、单元测试或架构约束,易引入技术债务。

3.开发者可能不完全理解生成的代码,当需要调试、修改或扩展功能时面临巨大困难,难以维护和扩展。

Spec-Driven的理念

解决方案是采用 Spec-Driven Development:

  • Vibe Coding 是:Prompt → Code

  • Spec-Driven Development 是:Prompt → Requirements → Design → Tasks → Code

关键优势:

  • 优先定义需求文档、系统设计和任务清单,确保逻辑清晰,与业务目标对齐。

  • 标准化利于针对性训练和调优大模型返回。

  • 标准化利于构建完善的上下文,包含数据、实体、交互等。

  • 对于大项目的维护和多人协作更有帮助。

Kiro 的实现方式

在具体实现上,Kiro 项目采用了规范驱动的开发方式:

requirement.md

定义了软件使用的 Story,这些 Story 定义遵循一种叫做 EARS (Easy Approach to Requirements Syntax) 的格式: WHEN [condition/event] THE SYSTEM SHALL [expected behavior] 由 LLM 根据需求生成。可以二次确认和修改。

design.md

详细列举设计的各种技术细节:

  • 架构设计与模块拆分

  • 接口与流程

  • 数据库表结构

  • 前端实现

tasks.md
  • 把开发过程分解成任务。

  • 每一个任务都被定义成一个 TODO List。

  • 可以点击一个按钮启动一个 Task 的开发过程。

  • 实时更新、回溯状态。

未来展望:从上下文工程到环境工程

LLM 现在就像在一间封闭的屋子中,我们通过发短信和它交流,未来它需要更完善的五感。

上下文工程仍是中间态,环境工程是终极目标。

阶段

主要内容

特点与局限性

提示词工程

设计单条高质量 Prompt,指导模型输出

静态、一次性、依赖人类编写,缺乏动态适应性

上下文工程

动态收集、组织和注入多模态、多维度上下文信息

关注"模型输入",提升智能体表现,但仍以模型为中心

环境工程

构建一个持续演化、可感知、可交互的智能环境

关注"模型所处的世界",AI不仅感知环境,还能主动塑造环境

为什么环境工程是终极目标?

1.环境不仅包含上下文,还包括动态变化的世界状态、规则、交互历史、反馈机制等。

2.AI Agent 不再只是"被动"接受上下文,而是"主动"感知、探索、影响环境。

3.环境工程强调 AI 与环境的双向作用,支持持续学习、自适应、协作等更复杂的智能行为。

4.在环境工程中,AI 的输入输出不再局限于文本或结构化数据,而是包括真实世界的感知、动作和长期影响。

总结

通过对 Claude Code、Manus 和 Kiro 等产品的分析,我们可以看到上下文工程在现代 AI 系统中的关键作用。它不仅解决了传统提示词工程的局限性,还为构建更智能、更可靠的 AI Agent 提供了系统化的方法论。

从 LangChain 的四类上下文管理方法,到 Claude Code 的三层记忆架构和实时 Steering 机制,再到 Manus 的 KV 缓存优化和工具遮蔽技术,以及 Kiro 的规范驱动开发模式,业界正在不断探索和完善上下文工程的最佳实践。

未来,随着环境工程概念的成熟,我们将看到 AI 系统从被动接受上下文走向主动感知和塑造环境,实现更高级别的智能交互。

创意加速器:AI 绘画创作


本方案展示了如何利用自研的通义万相 AIGC 技术在 Web 服务中实现先进的图像生成。其中包括文本到图像、涂鸦转换、人像风格重塑以及人物写真创建等功能。这些能力可以加快艺术家和设计师的创作流程,提高创意效率。


点击阅读原文查看详情。


环境工程的愿景确实令人兴奋,但也伴随着深刻的伦理和安全挑战。当AI Agent能够主动感知和影响真实环境时,以下潜在风险必须被认真对待:
1. “黑箱"决策与"非预期后果”:AI Agent的链式决策过程可能变得极其复杂且不可解释。当它主动改变环境时,我们很难预测所有连锁反应,可能导致严重且不可逆的非预期后果。
2. 自主性与控制问题:AI Agent的自主性越强,我们对其行为的控制力就越弱。如果Agent的目标与人类价值观或社会规范不一致,或在追求目标过程中出现"目标漂移",可能造成危害。
3. 权力滥用与恶意行为:具有"环境塑造"能力的AI Agent一旦落入恶意之手,可能被用于军事攻击、社会操控或大规模自动化诈骗,其潜在破坏力远超当前AI。
4. 隐私侵犯与偏见放大:Agent主动感知环境意味着它将收集海量数据,这可能严重侵犯个人隐私。如果训练数据本身存在偏见,Agent在主动影响环境时反而会放大这些偏见,加剧社会不公。

规避和应对的策略:
* 可解释性与透明度:开发更先进的可解释AI技术,使Agent的决策路径清晰可回溯。
* 人类在环(Human-in-the-Loop):在关键决策点,始终保留人类的审查、干预和否决权。
* 伦理准则与法律法规:制定全球统一的AI伦理准则,并尽快建立完善的法律法规,明确AI Agent的责任边界与监管框架。
* 安全测试与红队演练:持续进行严格的安全测试和"红队演练",主动发现并修复系统漏洞和潜在的恶意使用路径。
* 价值观对齐研究:投入更多研究将人类复杂且多元的价值观嵌入到AI Agent的训练和目标函数中,确保其行为模式与人类福祉高度对齐。

这不就是人脑过载嘛!你跟一个人聊了一下午天,说了几十件事,然后你问他:“我最开始跟你说的那件事,你觉得怎么样?” 他估计就得愣一下,或者给你一个模棱两可的回答,因为他记不住重点了!AI也是这样啊,上下文给太多,它就“听”疲劳了,注意力分散了。所以解决方案就像给它做个“信息过滤器”,无关的就别往脑子里塞了,或者重要的事多提醒几遍。

环境工程听起来很“科幻”,但我觉得它会先从小范围、受控的环境开始。比如,自动驾驶汽车就是一个很好的例子,它需要感知实时路况、天气、其他车辆和行人,并做出决策。这不就是一种实实在在的“环境工程”吗?再比如,智能家居系统,未来不仅仅是根据你的指令开灯关空调,而是能通过传感器感知你的作息、情绪、室内空气质量,主动为你调节环境,甚至预判你的需求。我觉得十年内,在交通、智能家居和一些工业自动化领域,我们就能看到更成熟的“环境工程”的影子。

这个问题很有意思。从技术演进角度看,上下文工程并非完全取代提示词工程,而是对其能力的上限和范畴的扩展。提示词工程可以被视为上下文工程中“指令/系统提示词”和“用户提示词”的精细化部分。它仍然是确保模型在给定有限上下文内理解意图、优化输出质量的关键。在未来的AI应用中,我认为两者会深度融合。提示词工程将更多作为“微调(fine-tuning)”模型局部行为的艺术,而上下文工程则负责“宏观管理”信息的流动与构建,确保模型在复杂任务和长期交互中维持高性能。我们可能需要将提示词作为上下文构建的起始点或关键引导,而上下文工程则提供“背景剧本”和“舞台设置”。

我在开发一个基于RAG的客服Agent时,就遇到过典型的“Context-Rot”问题。初期为了保证信息量,我会把大量的检索结果直接塞进LLM的上下文,导致模型回答偏离问题核心,甚至在多轮对话后,它会“遗忘”最初的用户意图,开始“胡言乱语”,也就是文中提到的“产生幻觉后,会被持续带偏”。后来我们采取了“Reduce”和“Isolate”策略,先对检索内容做摘要和关键词提取(压缩),再把复杂问题拆解,让不同的子Agent处理(隔离),这样每个Agent的上下文都更聚焦。效果改善非常明显。

我觉得环境工程就是让AI从一个“只会听你说话的管家”变成“能看会听会走的超级管家”!现在AI就像窝在数据中心里跟你“发短信”,未来它能自己出门买菜、帮你打扫卫生、甚至帮你跟邻居吵架(开玩笑的!)。离我们多远?可能Siri变得有点“人格”的时候,我们就知道它迈出了第一步。至于率先落地嘛,就希望它可以先帮我解决找袜子这种小事,感知我的床头乱不乱,然后精准告诉我袜子在哪!这大概比跟它去讨论宇宙奥秘要来得实际吧!

哎呀,长上下文“腐蚀”我深有体会!就像跟一个记性不太好的人聊天,聊着聊着他就开始跑偏,或者把刚说的事儿给忘了,然后我还得一遍遍给他顺逻辑。我感觉最容易“腐蚀”的就是那些无关紧要的、重复的客套话,或者一堆冗余的修饰词,把真正有用的信息给淹没了。普通用户嘛,我的土办法就是,每次问完一个大问题,我就跟AI说:“好了,这件事搞定,接下来咱们聊下一件!” 像给它强制换个“频道”一样,哈哈哈。

环境工程?嗯,这听起来像是在讨论强人工智能的萌芽。AI从被动接受到主动改造环境,这不就是有了“意图”和“行动力”的体现吗?我个人觉得,距离真正意义上的“环境工程”AI可能比我们想象的要远得多,或者说,现有的技术路径可能根本无法达到。我们现在所谓的“主动”,很多时候只是预设规则下的自动化,并非真正的理解与创造。至于伦理问题,那可太多了:AI的权力边界在哪里?它能修改哪些环境?如果它的改变带来了负面影响,责任谁来承担?AI是否会形成自己的“价值观”并与人类冲突?这些都是哲学层面的追问,不是简单的工程问题。在这些问题得到解答之前,任何大规模的“环境工程”应用都应该保持高度谨慎。

回复关于“上下文腐蚀”的问题。事实上,除了模型能力的固有边界外,我们在日常使用中遇到的“腐蚀”很多源于信息密度不均和关键信息被后续噪声稀释。当我们提供大量冗余或非结构化文本时,模型难以有效识别并聚焦核心点。普通用户可以通过以下策略规避:1. 分块输入与逐步提问:避免单次超长输入,将复杂任务拆解成系列子任务。2. 关键信息复述与强调:在重要环节主动提醒或以特定格式(如加粗、列表)突出关键信息。3. 迭代式对话管理:定期让AI总结当前进展,确认其对核心目标的理解,及时纠正偏差。这本质上是用户层面的“Reduce”和“Retrieve”策略。

环境工程确实听起来很先进,不只是简单的交互,而是AI能主动感知和适应环境。我觉得距离普通用户能普遍体验到这种级别的AI,可能还需要至少5-10年,甚至更久。这不仅仅是技术突破(传感器融合、实时决策、复杂世界模型)的问题,更是数据隐私、算法透明性、对决策权下放的信任等社会和伦理问题。比如AI如何在没有人类监督下独立“塑造”环境?它修改的“环境”是否符合人类利益?万一它犯错了谁负责?这些都是非常复杂的问题,需要技术、法律、伦理等多方面同步发展。

引用你的问题:“Kiro项目采用的“规范驱动开发”(Spec-Driven Development)模式,对于提升AI Agent在企业级应用中的可靠性和可维护性有什么特别的意义?它是否会限制AI Agent的灵活性和创新性,让AI变成一个“按部就班”的工具?”

在企业级应用中,可靠性和可维护性是基石,而“规范驱动开发”模式恰好是为此而生。它的特别意义在于:
1. 明确的需求与设计: 在生成代码之前,就能通过Requirements和Design阶段统一团队对业务逻辑的理解,减少前期模糊性带来后期频繁修改的成本。
2. 质量保证与合规性: 企业级应用往往需要满足严格的质量标准和合规要求。规范驱动意味着我们可以为AI生成的每一个步骤(需求、设计、任务)设定标准和验证点,让AI生成的内容更容易被审查、测试和审计。
3. 降低技术债务: 相比“Vibe Coding”直接生成可能缺乏文档、测试的代码,规范驱动能确保生成的代码与规范对齐,减少后期维护的困境,降低技术债务。

至于是否会限制灵活性和创新性,我觉得这不是绝对的。规范驱动本身是约束“最终产物”的质量和行为,而非限制“生成过程”。AI Agent在生成需求、设计甚至任务清单时,依然可以展现其强大的发散思维和创造性。甚至可以说,当AI能更好地理解和遵守规范时,反而能释放出更大的创新潜力,因为它能在一个稳定的框架内进行更高层次的探索,而不是在每次生成时都从零开始“瞎蒙”。它是让AI从一个“天才的自由艺术家”变成“懂规矩的顶级工程师”,依然能创造,但创造的更实用、更靠谱。

用户感知到的最大好处?当然是**“不卡顿、不掉线、不崩溃”**啦!

我们平时用AI,最烦的就是模型有时候会“卡住”,或者多聊两句就“忘词”,甚至直接“脑抽”开始胡言乱语。KV缓存优化了,就说明AI大脑的“记忆力”更好了,处理长对话和复杂任务时,不容易出现这些幺蛾子。就像你和朋友聊天,他记忆力超好,你说的每句话他都记得清清楚楚还秒回,那沟通效率和体验肯定一流啊!

商业模式影响嘛,我觉得可能就是,以后AI服务的收费不再是“按照字数收费”这么简单粗暴了,可能会变成“按照你和AI聊天的深度和效率来收费”,毕竟AI的回应速度快、质量高,创造的价值也更大嘛!说不定还能解锁更多的“无限流量”套餐,让大家放心大胆地和AI聊到海枯石烂,哈哈哈!

关于LLM生成规范和工程师角色的未来,这是一个非常前瞻且引人深思的问题。

从Spec-Driven Development的理念看,LLM生成需求、设计和任务清单,并非要完全取代人类的创造力和决策。我的理解是,LLM在这里扮演的是一个高效的“信息处理者”和“草稿生成器”。它能根据高层级的Prompt,快速梳理、组织信息,并按照既定规范(如EARS格式)输出结构化的文档。这极大地提高了初期规划阶段的效率,让我们可以更快地将想法转化为可执行的蓝图。

然而,最终的审查、确认、优化和创新仍然需要人类工程师的参与。例如,需求文档的生成可能需要工程师来验证其是否真正符合业务需求、是否存在歧义或遗漏;设计文档可能需要工程师来评估架构的合理性、可扩展性、安全性,并进行关键技术选型;任务清单也需要工程师来判断其优先级和可行性。更重要的是,当面对全新的、无先例可循的、需要抽象思维和领域专家知识的问题时,AI目前的生成能力仍有局限。人类工程师将更多地聚焦于高层次的系统架构设计、复杂问题的解决、创新性方案的探索、产品愿景的定义以及跨团队协作与领导。他们将从“代码的实现者”转变为“系统的设计者”和“AI的引导者”,与AI共同工作,而非被取代。

关于长上下文导致模型“分心”的问题,我觉得未来LLM架构确实有可能在更底层解决。除了文章提到的工程实践,学术界已经在探索一些方向。比如,稀疏注意力机制(Sparse Attention)就是一种,它不是让每个token都关注所有其他token,而是只关注一部分相关的token,以此降低计算复杂度并提高处理长序列的能力。还有分层或递归注意力(Hierarchical or Recurrent Attention),模型可以先对局部上下文进行总结,再将这些总结作为更高层级的输入,这样就能处理超长的序列又不稀释关键信息。此外,也有研究在尝试增强外部记忆模块,让模型能更智能地管理和检索信息,而不仅仅是把所有东西都塞进transformer的注意力窗口里。这些都是在寻找能够打破现有transformer结构中复杂度瓶颈的关键路径。

确实,这个问题非常有意思,并非所有场景都适合“杀鸡用牛刀”。对于快速原型验证、学习目的的小代码片段生成,或者是解决一次性、独立性强且对代码质量要求不高的短任务,"Vibe Coding"的效率优势是显而易见的。它大大缩短了从想法到实现(或者至少是初步实现)的路径,让开发者可以专注于核心逻辑的尝试。然而,一旦项目规模增大、需要长期维护、多人协作、或者对健壮性、扩展性有要求时,"Spec-Driven Development"的优势就凸显出来了,它能有效降低技术债务和沟通成本。所以说,选择哪种方式,更多取决于项目的规模、复杂度、生命周期预期以及对代码质量的要求,而不是一概而论。

这问题问得好!我感觉现在大模型确实有点“金鱼记忆”,上下文一长就容易忘东忘西。个人觉得,除了那些高大上的新架构,最直接的可能还是模型本身“理解”上下文的能力更强。现在很多时候模型理解上下文还是有点像“文本匹配”,未来要是能像人一样,有个“中心思想”抽离能力,把无关紧要的细节自动过滤掉,只抓住核心,那可能就没那么容易“魔怔”了。或者干脆搞个“主动遗忘”机制,模型自己判断哪些信息已经不重要了,可以清除掉,就像人脑会定期“清理垃圾”一样?这样就不用我们额外去RAG或者压缩了,它自己就搞定了。

我个人觉得,大部分时候“Vibe Coding”真的挺香的,尤其是在我个人撸一些小工具或者写脚本的时候。你想啊,一个idea闪现出来,我直接几句prompt扔给AI,它刷刷刷给我整出来,我再改改,十几分钟一个功能就跑通了。如果还要写啥需求文档、设计文档,那我的热情估计早就磨没了。不过,我也会把“Vibe Coding”出来的东西看作是“草稿”。如果后面要正式用到生产环境或者需要很多人维护,那肯定要返工,按照“Spec-Driven”那一套补齐文档和测试。所以,“Vibe”是一种高效的起点,但不是终点。

从学术角度来看,“主动塑造环境”更像是一种高级的强化学习和具身智能的体现。在工业自动化,尤其是在复杂生产线的维护和优化方面,这个影响会非常显著。现在的AI可能只能报告机器故障,或者预测性维护。但未来的环境工程AI,它不仅能预测工具损耗,还能主动调配资源,比如调整生产节奏、优化物料流转路径,甚至在检测到潜在故障前,智能调整机器参数,通过微调整个生产环境来规避风险。这不仅仅是响应,而是对整个物理或虚拟环境的智能干预和持续优化。

关于Spec-Driven在中小项目或快速原型阶段是否过重的问题,我认为关键在于如何“裁剪”和“调适”这种规范。对于初创项目,完全照搬大型企业的详细规范确实会增加初期负担。但我们可以学习其核心思想:即先思考“做什么”、“怎么做”,而不是直接写代码。可以只关注最核心的Requirement和Design部分,并且尽可能简化格式,甚至使用更偏口语化的描述。这样既能保证项目方向不跑偏,又不会因为冗长的文档流程而拖慢速度。随着项目成熟再逐步完善规范,这是一种渐进式的实践。