
Windsurf分享了他们对构建Agent应用的认知
windsurf最近发表了一篇博客,主要是讨论和介绍Agent。内容上有很多基础知识,但是也有一些特别的认知分享,今天挑出来这些不常见的insight,分享给大家。
在windsurf的理念里。一个 Agentic AI 系统,是非常简洁的,就是一个由LLM做决策 + 工具干活 持续迭代的2步过程。
认知误区
在他们看来,目前存在几个认知误区,得掰扯清楚
Agent ≠ 普通的生成式 AI
不要把换个system prompt的东西就叫做Agent
Agent 的“推理” ≠ 模型的“思维链
Agent 的“推理”,特指 LLM 选择下一步要调用哪个工具、给什么参数 的决策过程。 而COT不涉及调用外部工具
Agent ≠ 简单的 AI 工作流 (Workflow)
Agent 的核心在于,LLM 是在运行时实时决策下一步调用哪个工具,具有更高的灵活性和自主性。
灵魂四问
当我们面对一个号称是 Agent 的系统时,该如何去评估它的“含金量”呢?他们分享了灵魂四问分析框架~
一、这玩意儿真是 Agent 吗?
回到上一步来看,它是否真的包含了 LLM 决策 + Tools 执行 的核心循环?还是仅仅是套了个 Agent 的壳,本质上只是个普通的生成模型、CoT 或者预设流程?
二、自主Agent还是人机协作Agent?
它是想做全自动的“自主 Agent”,还是人机协作的“协作 Agent”?
如果是前者,那就要极其严格地审视其鲁棒性:它真的能在无人干预的情况下,稳定可靠地完成目标任务吗?还是说只是个漂亮的 Demo?当前的 LLM 技术水平真的支撑得起这种复杂度的自主运行吗?
三、基础配置够硬核吗?
这部分是深入 Agent 内部,看它的关键组件配置:
- 它配备了哪些工具?这些工具本身的能力如何(比如,网页搜索工具的效果好不好)?是否容易添加新的、自定义的工具?
- 它用的是哪个 LLM 作为推理核心?评估重点应该是这个模型在工具调用和决策方面的表现,而不是它在通用知识问答或写作上的得分。模型是否可以灵活替换?
- 它能访问哪些数据源?权限控制做得如何?对于特定类型的数据(如代码),它是否有特殊的处理能力(比如 AST 解析)来更好地理解和利用信息?特别注意,Agentic 模式下,如果一次检索效果不好,它可以决定再次检索或换参数检索,这与传统 RAG 的一次性检索有很大不同。
- (尤其对协作 Agent 而言)它能否捕捉到用户没有明说的意图?比如通过分析用户在 IDE 中打开的文件、最近的编辑、终端历史、剪贴板内容等,来更智能地推断用户想干什么?这能极大提升体验。
四、起来“爽”不“爽”?(User Experience)
技术再牛,最终还是要用户用得爽。这关乎 Agent 的“软实力”:
- 跑起来快不快?一个 Agent 吭哧瘪肚搞半天还失败了,和一个秒级响应但可能需要你稍微引导一下的 Agent,哪个体验更好?延迟是自主 Agent 面临的一大挑战,也是所有 Agent 都需要优化的关键点。
- 我能清楚地看到 Agent 每一步在干什么吗?当我发现它要跑偏时,能不能方便地进行引导或修正?(这是协作 Agent 的核心优势所在)
- 调用它方便吗?结果好用吗?交互方式是否自然地融入了我的工作流?(比如,不只是一个聊天框,可能是一个按钮、一个右键菜单等)
- 是不是所有问题都非得用 Agent 来解决?对于某些简单、直接的任务,传统的 Copilot 式工具(如代码补全)是不是更快、更直接、效果更好?别拿着 Agent 这把锤子,看什么都像钉子。
The Bitter Lesson
windsurf还特地提到了一个苦涩教训 (The Bitter Lesson)
长期来看,利用通用计算规模(更多算力、更大模型、更多数据)带来的性能提升,几乎总是胜过依赖人类领域知识、精心设计的复杂规则或特征工程带来的提升。
无论是计算机视觉、棋类游戏还是自然语言处理,历史一再证明这一点。
对 Agent 的启示:警惕过度设计! 不要花费过多精力去设计极其复杂的 Prompt、精巧的工具选择逻辑或人为注入的领域知识。
因为随着模型能力不断提升、算力成本持续下降,这些“捷径”很可能被更强大的通用能力所淹没。拥抱规模化、通用化的方法可能才是长久之计。
本文转载自探索AGI,作者:猕猴桃
