排序
小节三:我们为什么选用 Flask——让 Agent 能被其他系统调用
很多 Agent 教程最后停在这一行: agent.run('帮我分析这个项目') 对学习原理来说,这当然够。 但真实系统通常不是这样被使用的。 你的网页前端不能直接调用本地 Python 对象;飞书机器人不能直...
小节三:Agent——真正的变化,是“下一步由谁决定”
现在我们正式进入 Agent。 先看一个最短版本: 当前状态 ↓ LLM 判断下一步做什么 ↓ Action ↓ 执行 ↓ Observation ↓ 再次判断 这里有四个关键输入。 Goal:最终要完成什么。 State:现在执...
小节三:把 State 真正接进 Main Loop——Agent = Loop + State 到底怎么落到代码里?
现在我们把前两节合起来。 上一节是 Loop。 这一节是 State。 真正的 Agent 结构应该是: Loop 推进 State State 约束 Loop 这句话很关键。 不是 Loop 单方面使用 State。 而是两者互相影响。 ...
章末自测
题目 1:为什么 Agent 不能只依赖局部变量? 假设 Main Loop 中使用 messages、step、finished、last_error、recent_calls 五个独立变量,并且后面又加入 Human Approval 和 Flask AP...
小节四:Main Loop 真正难的地方——什么时候继续,什么时候停止,什么时候承认失败?
如果你只看最小代码: while True: response = llm.chat(messages) ... 很容易觉得 Main Loop 很简单。 真正做项目以后,你会发现,“循环”本身简单,控制循环 才难。 至少要回答四个问题...
案例分析二:一个 Data Analysis Agent 为什么不能只是“问题 → SQL → 答案”?
场景背景 再看另一个最终项目。 业务同学问,“昨天广告收入为什么下降?” 最简单做法是 Text-to-SQL: 用户问题 ↓ 生成 SQL ↓ 执行 SQL ↓ 返回结果 如果 SQL 只是查出: 昨天收入:80 万 ...
案例分析一:修复一个陌生 Python 项目——固定 Workflow 为什么会迅速膨胀?
场景背景 假设我们想做一个内部工具,用户提交一个 Python 项目,系统自动判断为什么项目启动失败。 第一版很自然: 读取 requirements.txt ↓ 读取 app.py ↓ 运行 python3 app.py ↓ 分析报错...
小节四:这门课会怎样一步步把“玩具 Agent”长成真正可控的工程系统?
现在我们已经看到终点,也知道为什么要自己搭 Harness,接下来最容易出现的问题是,“这么多模块,是不是一下子要全部写完?” 完全不需要。 我们会用一个非常明确的“逐层加能力”的方式推进。...
章末自测
题目 1:为什么普通一次 LLM 调用无法天然完成多步环境交互? 假设用户说“帮我找到项目入口文件并读取内容”,模型第一次调用时还不知道目录结构。请解释为什么一次 LLM 调用通常无法完成整个...
从 Chain、DAG 到 Agent:为什么还需要 Agent?
这一节我们不急着写复杂 Agent,也不急着接真实大模型 API。我们先把一个最容易被说模糊、但后面每一节都会依赖的问题讲透,既然以前已经有 Chain、DAG、Workflow,为什么今天还需要 Agent? 学...











