分享
Day29-12个Agent底层原理(一口气讲完)
输入“/”快速插入内容
Day29-12个Agent底层原理(一口气讲完)
用户264
用户264
5月7日修改
Day29 · 12 个 Agent 底层原理 · 完整笔记
学习 AI · 1000 天 · Day 29配套视频 + 代码:
agent.py
这份笔记把视频里 12 个原理拆开讲透 · 每条带可跑代码 + 反直觉点
① messages 数组 —— AI 唯一的对话通道
反直觉点
:你以为跟 AI 对话有什么神秘协议 · 其实就是一个 JSON 数组。
长这样
:
代码块
JSON
[
{"role": "user", "content": "你好,介绍一下你自己"},
{"role": "assistant", "content": "我是 Claude,我可以..."},
{"role": "user", "content": "我想学 AI"}
]
每条都标了
role
(谁说的)和
content
(说了啥)· 发给 Claude API · 它接着写下一句。
关键真相
:
空数组发过去 AI 一个字都说不出来
。messages 是 AI 的
唯一
对话通道,没有第二条路。
代码片段
(agent.py 第 96 行):
代码块
Python
messages = [{"role": "user", "content": user_query}]
response = client.messages.create(model=MODEL, messages=messages, ...)
② 上下文窗口 —— AI 是金鱼 · 记忆是你装的
反直觉点
:AI 根本
没有任何记忆
。它每次接到请求都是刚开机。
那它怎么"记得"我刚说的话
?——
是你每次提问都把全部历史对话重新塞回去
。
两轮请求拉出来对比
:
代码块
Python
# 第 1 轮:你只发 1 条
messages = [
{"role": "user", "content": "我养了只猫叫小花"}
]
# AI 回:"小花是什么品种?"
# ─────── 你接着问第 2 个问题 ───────
# 第 2 轮:必须把第 1 轮整段重塞 + 新问题
messages = [
{"role": "user", "content": "我养了只猫叫小花"}, # ← 重塞
{"role": "assistant", "content": "什么品种?"}, # ← 重塞
{"role": "user", "content": "它叫啥?"} # ← 新问题
]
# AI 回:"小花 · 你刚说过"
AI 记得小花 · 完全是因为你又把这段话塞了一遍
。
主流改进
:上下文太长会爆 token · 现在主流是
压缩上下文
——把历史对话总结成精华再塞回。Claude Code 内部就这么做的。
代码片段
(agent.py 第 124-148 行):