排序
小节三:把 State 真正接进 Main Loop——Agent = Loop + State 到底怎么落到代码里?
现在我们把前两节合起来。 上一节是 Loop。 这一节是 State。 真正的 Agent 结构应该是: Loop 推进 State State 约束 Loop 这句话很关键。 不是 Loop 单方面使用 State。 而是两者互相影响。 ...
案例分析二:收入下降分析——为什么单次 SQL 不够,Main Loop 才能真正做“下钻”?
场景背景 业务问,“为什么昨天收入下降了?” 普通 Text-to-SQL 可能只执行一条: 查询昨天与前天总收入 得到: 昨天:80 万 前天:100 万 这只能回答,“确实下降了 20%。” 并没有解释为什么...
Agent 最核心的秘密:Main Loop
上一节我们已经把 Chain、DAG、Workflow 和 Agent 的差别讲清楚了。真正决定 Agent 味道的,不是“有没有大模型”,也不是“有没有工具”,而是模型是否能够在运行过程中,根据当前任务和执行反...
案例分析二:一个 Data Analysis Agent 为什么不能只是“问题 → SQL → 答案”?
场景背景 再看另一个最终项目。 业务同学问,“昨天广告收入为什么下降?” 最简单做法是 Text-to-SQL: 用户问题 ↓ 生成 SQL ↓ 执行 SQL ↓ 返回结果 如果 SQL 只是查出: 昨天收入:80 万 ...
案例分析二:Data Analysis Agent 状态混乱,为什么会重复查同一条 SQL?
场景背景 一个 Data Analysis Agent 接到任务,“为什么昨天收入下降?” Agent 先查: 总收入 再查: 按媒体拆分 发现: media_B 异常 接着应该继续: 查 media_B 的请求、曝光、eCPM 问题矛盾...
章末自测
题目 1:为什么“LLM + 三个工具”不一定是 Agent? 某系统接入了一个大模型,并提供“查天气”“计算器”“网页搜索”三个工具。程序固定规定:每次请求都先搜索网页,再查天气,最后调用计算...
小节一:从“一次调用”到“循环调用”——Agent 真正开始出现的那一刻
我们先从最简单的 LLM 应用开始。 假设现在有一个函数: def chat(prompt: str) -> str: return '模型回答' 用户输入一句话,我们调用一次模型,然后直接返回答案。 这种结构可以完成很多任务:...
小节四:State、Memory、Session、Trace 到底怎么区分——别把所有东西都塞进一个大字典
学到这里,很容易出现一个新问题,“既然 State 什么都能放,那 Memory、Session、Trace 还有什么意义?” 这是非常好的问题。 如果这个边界没想清楚,后面项目会出现一个巨大对象: state = { ...
案例分析二:分析“昨天收入为什么下降”——Agent 和普通 Text-to-SQL 的分界线
场景背景 假设我们做一个数据查询系统。 用户问,“为什么昨天广告收入比前天低了 20%?” 最简单的 Text-to-SQL: 自然语言 ↓ 生成 SQL ↓ 执行 SQL ↓ LLM 总结 ↓ 返回 已经很有用。 问题矛...
章末自测
题目 1:为什么最终项目不能只写成一个 agent.py 文件? 假设我们完全可以在一个 agent.py 中同时写 Flask Route、模型调用、工具执行、文件操作、Session 保存和日志记录...











