ARTICLE · 1053559
软件开发 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 在真实工程流程中到底应该怎么做”的实验。