【自用】AI指南

wlz 2026-07-16 15:04 1

本人AI小白,本贴将从个人知识盲区出发,通过不断刷(水)L站,补充相关AI知识。

学AI,上L站!



因为看见有人说实际开发 LangChain 用的不多




Agent 架构理解: 从 LLM、Tool 到 LangChain/LangGraph

一、什么是Agent



Agent = LLM + Tool + Runtime



传统LLM(大语言模型)只能根据已有知识回答问题,无法主动访问实时数据或执行外部操作,Agent即为让 LLM 学会调用工具(Tool),完成复杂任务。


二、什么是LLM



Large Language Model(大语言模型)



GPT,Gemini,Claude,DeepSeek,智谱清言等都是LLM,

关键认知:没有人类意义上的意识。它能够表现出较强的推理能力,但这种能力来自训练过程中学到的统计规律,而不是传统程序中的显式逻辑推理。它的强大表现完全来自于海量数据训练后形成的复杂模式匹配,这同时也是 LLM 的局限——模型训练完成之后参数就固定了


目前来看,LLM还是一个概率生成模型。


想必大家还记得gpt3刚兴起的时候,询问大模型一些问题,他会回答:我的知识库截止到XXX日期。



  • LLM 无法获得实时信息

  • LLM 无法执行操作

  • LLM 擅长思考但是无法行动


所以我们需要tool


三、什么是tool



Tool(工具)就是提供给 LLM 使用的外部能力。tool本身不是AI,只是普通程序。



对于 Python 来说:Tool 本质就是一个 Python 函数。凡是通过python可以实现的事情都可以封装成tool。(当然也可以使用其他语言开发tool。)

例如:



  • 搜索网页

  • 生成execl

  • 控制浏览器

  • 获取天气


四、LLM 如何使用 tool



真正执行 Tool 的永远不是 LLM,而是宿主程序。LLM 只能返回 Tool Call,请求宿主程序去执行。



还记得我们上面说的 LLM 无法执行操作吗,LLM 是无法真正运行一个tool的,会有一个持续运行的宿主程序(Runtime,例如 Python 程序),负责在用户、LLM 和 Tool 之间传递消息,并协调整个调用流程。


假如我要向LLM询问今日天气,整个流程如下:


① 用户


输入:"今日天气"

② 宿主程序(Python)

├─ 加入 System Prompt
├─ 加入历史聊天
├─ 加入 Tool 列表


③ LLM

├─ 理解:"天气是实时信息"
├─ 判断:"需要调用 get_weather"


④ 返回 Tool Call


⑤ 宿主程序(Python)

├─ 解析 Tool Call
├─ 找到 get_weather()


⑥ Tool(天气 API)

├─ 请求天气服务器
├─ 返回:
│ {
│ "temp": 32,
│ "weather": "晴"
│ }

⑦ 宿主程序(Python)

├─ 把 Tool 结果加入 messages


⑧ LLM

├─ 根据 Tool 返回结果组织自然语言


⑨ 宿主程序(Python)


⑩ 输出给用户


更进一步:用户不是直接和 LLM 通信,而是和宿主程序通信。宿主程序负责决定发送什么内容给 LLM,以及如何处理 LLM 的返回。



所以我们的输入:今天的天气

LLM真正收到的是:


System:
你是 ChatGPT。

今天日期:
2026-07-16

用户位于:
东京(如果已知)

可使用工具:
- weather
- search
- python
- image
...

历史聊天:
......
......

User:
今天的天气

五、为什么需要 LangChain



LangChain,一个开发 Agent 的 Python 框架。



通过上面的LLM使用tool的部分我们知道了,一个agent,远不是将LLM和tool堆到一起就可以实现的,所以出现了LangChain:把这些常见能力封装起来。


如果你不使用LangChain开发Agent,你就需要把第四部分查天气用到的每个步骤都加到代码中,使用LangChain本质上就是帮助你写宿主程序。


LangChain有很多模块,以TOOl为例,


@tool
def weather(city):
pass

一行装饰器。就能变成 Tool。不用自己写 Tool Schema(Tool 的"接口说明书",告诉 LLM:这个工具叫什么、能干什么、需要哪些参数、参数是什么类型。)。


六、LangChain 和 LangGraph 区别



LangGraph 是一个有状态(Stateful)的工作流框架。并且是建立在 LangChain 之上的工作流框架。



从名字上简单理解,Chain就是链条,Graph就是图,现实任务越来越复杂,已经不是简单的一条链就可以解决的了,可能需要,分支,循环,多Agent协作,LangChain 很难优雅地管理,于是 LangGraph 出现了。



本人学识有限,且并未从事与AI相关的行业,仅在科普角度出发,且有部分知识是通过与AI对答获取,如有错误,希望大家积极指正,希望能够对各位佬有所帮助。


后续将不断更新这个帖子,完善自己的相关知识体系,希望和各位佬友共同进步。

(还有MCP,RAG,Multi-Agent啥的,最近还了解到了CPA,好像是搭建公益站用的,总之我感兴趣但是不理解的,都会写)


to be continued

最新回复 (3)
  • wlz 楼主 07-16 15:19
    1

    附带的帖子是因为它触及到我的知识盲区,

    之后再更新我的帖子也是会携带触及我知识盲区的帖子并在下方添加相关的知识

  • xuanxuan 07-16 15:27
    2

    加油!少年,你将是村里的希望,前排支持你

  • Hoihoi310 07-16 18:05
    3

    先排隊, 一起學習吸收分享 linux 學習到的知識

* 帖子来源Linux.do
返回