如果你已经用过 Agent,可能会有一种很真实的感觉:
好像是会用了,但真让我讲清楚 Agent 是怎么跑起来的,又有点说不明白。
比如:
- Agent 为什么能一边“想”,一边“用工具”?
- Function Call 到底是谁在调用?模型?还是我们?
- LangChain / LangGraph 里那些节点、Memory,看起来很高级,本质在干嘛?
很多时候,我们是跟着框架把 Agent 跑通了。
可一旦遇到下面这些情况,就会开始有点卡:
- 想自己手写一个简单 Agent
- 想排查 Agent 为什么卡住、不动了
- 或者想做点框架里没有的定制逻辑
这时候你大概率会觉得:Agent 有点像黑盒。
但其实,Agent 真没那么复杂。
如果你愿意把框架先放一边,只看最底层的 API,就会发现:
Agent 本质上,就是几个很普通的东西,被我们拼在了一起。
这篇文章想做的事情也很简单:
不用任何 Agent 框架,只用基础API + Java,一步一步把 Agent 是怎么工作的“摊开来看”。
不追求花哨,只追求你看完之后能说一句:“哦,原来 Agent 是这么回事。”
那我们直接开始。