夜雨聆风学习资料网

ARTICLE · 1053559

软件开发 Agent,不该从写代码开始,那该怎么做?

软件开发 Agent,不该从写代码开始,那该怎么做?

最近开始系统学习 LLM / Agent Engineering。

我并没有急着写 LangGraph,也没有马上做一个 Coding Agent,而是先做了一件看起来有点“笨”的事情:

重新理解 Software Development 本身。

我把公司的 SDLC(软件开发生命周期) 做了一次梳理,又看了 Anthropic 的 Building Effective Agents、AI-Native SDLC 相关内容,以及 Claude Code 的一些实际工作流。

结果最大的收获,不是学会了某个新框架,而是重新思考了一个问题:

Software Development Agent 到底应该怎么设计?

01 Agent 不等于“AI 写代码”

一开始,我对 Coding Agent 的理解很简单:需求进去,LLM 吐代码,事情结束。

但真正的软件开发远不止 Coding。

代码生成只是其中的一环。

所以,如果真的要做 Software Development Agent,第一步可能不是研究“怎么让 AI 写代码”,而是:

先把 Software Development Workflow 搞清楚。

02 Workflow 和 Agent,其实不是一回事

Anthropic 在 Building Effective Agents 中区分了 Workflow 和 Agent。

简单来说,Workflow 流程基本是预先定义好的:Step A,然后 Step B,然后 Step C。

而 Agent 更强调:LLM 根据当前情况,动态决定下一步做什么、调用什么 Tool。

例如查一个需求:先搜代码,发现 Module A;再读文件,发现依赖 Module B;于是继续搜索。

这里真正体现 Agent 价值的,不是“会调用 Tool”,而是:

下一步行动取决于前一步发现了什么。

这也让我重新理解了企业里的 Skill。

03 Tool、Skill、Agent,开始变得清晰

我现在比较倾向于这样理解:

Tool:一个具体动作,比如读文件、搜代码、跑测试、看 diff。

Skill:一套可复用的方法,例如 Requirement Analysis、Code Understanding、Implementation Planning、Code Review。一个 Skill 可能会调用多个 Tool。

Agent:负责动态决定现在应该做什么。

所以可以粗略理解成:

这也是为什么我现在不太想一上来就做“万能 Agent”。

04 Agent 最有价值的地方,可能恰恰是不确定

如果任务是:

  • • Run Unit Test
  • • Run Build
  • • Check DoD(Definition of Done)

这些事情其实没必要交给 Agent。

直接使用确定性的 Tool / Workflow 就可以。

但如果问题变成:

“这个 Bug 到底在哪里?”

情况就完全不同了。

Agent 可能需要:

下一步并不是提前写死的。

所以我现在的一个初步理解是:

Agent 的价值不一定是“自动化一切”,而是在不确定性比较高的任务中进行动态探索和决策。

05 Software Development 天然适合 Agent

还有一个让我印象比较深的地方。

软件开发本身就存在一个天然的反馈循环:

这其实非常接近 Evaluator-Optimizer。

AI 写完代码并不是结束。

真正有价值的是:

写代码 → 验证 → 发现问题 → 修复 → 再验证。

因为 Software Development 有一个很大的优势:

结果相对容易验证。

代码可以 Build,测试可以 Run,Diff 可以 Review,静态分析可以检查。

这也使 Software Development 成为一个非常适合研究 Agent Engineering 的场景。

06 所以,我现在对 Software Development Agent 的想法变了

以前可能会想做:

一个什么都能做的 Coding Agent。

现在我更希望从一个小闭环开始:

这里面已经包含了:

Workflow、Skill、Tool、Agent、Human-in-the-loop、Evaluation。

然后再通过真实的 Feature、Bug、Refactor、Test 任务去验证:

Agent 到底应该有多大的自主性?

最后

这两天最大的变化,可以用一句话总结:

以前我在学习“怎么做 Agent”,现在开始思考“什么时候应该做 Agent”。

我越来越觉得,Agent Engineering 的核心可能不是:

“把所有事情都交给 AI。”

而是:

确定性的事情确定性地做,不确定的事情让 Agent 探索,需要人做决策的地方保留 Human-in-the-loop。

这也是我接下来研究 Software Development Agent 的起点。

少一点“AI 能做什么”的想象,多一点“AI 在真实工程流程中到底应该怎么做”的实验。

相关学习资料