排序
小节三:Agent——真正的变化,是“下一步由谁决定”
现在我们正式进入 Agent。 先看一个最短版本: 当前状态 ↓ LLM 判断下一步做什么 ↓ Action ↓ 执行 ↓ Observation ↓ 再次判断 这里有四个关键输入。 Goal:最终要完成什么。 State:现在执...
小节四:把确定的步骤固定下来,让 Agent 处理需要探索的部分
学到这里,很容易走向另一个极端,“既然 Agent 能动态决策,那以后所有 Workflow 都可以不要了。” 这恰恰是很多 Agent Demo 一进入生产就出问题的原因。 真正靠谱的做法通常是,确定的事情写...
从 Chain、DAG 到 Agent:为什么还需要 Agent?
这一节我们不急着写复杂 Agent,也不急着接真实大模型 API。我们先把一个最容易被说模糊、但后面每一节都会依赖的问题讲透,既然以前已经有 Chain、DAG、Workflow,为什么今天还需要 Agent? 学...
小节三:为什么 Agent 能连续完成多步任务——关键不是“规划能力”,而是反馈驱动
很多人第一次看 Agent 会觉得,“是不是因为现在大模型特别会规划,所以才能连续做几十步?” 规划能力当然有帮助。 但 Main Loop 更基础。 即使模型没有先生成完整计划,只要它能做到: 看当前...
小节四:Main Loop 真正难的地方——什么时候继续,什么时候停止,什么时候承认失败?
如果你只看最小代码: while True: response = llm.chat(messages) ... 很容易觉得 Main Loop 很简单。 真正做项目以后,你会发现,“循环”本身简单,控制循环 才难。 至少要回答四个问题...
小节三:我们为什么选用 Flask——让 Agent 能被其他系统调用
很多 Agent 教程最后停在这一行: agent.run('帮我分析这个项目') 对学习原理来说,这当然够。 但真实系统通常不是这样被使用的。 你的网页前端不能直接调用本地 Python 对象;飞书机器人不能直...
小节二:DAG 与 Workflow——流程可以很复杂,但核心控制权仍在开发者手里
Chain 是一条线。 但真实工程里,很多任务不是线性的。 例如一个模型训练任务: ┌→ 数据质量检查 ─┐ 数据加载 ─────┼→ 特征统计 ─────┼→ 模型训练 └→ 标签检查 ─────...
案例分析一:修复一个陌生 Python 项目——固定 Workflow 为什么会迅速膨胀?
场景背景 假设我们想做一个内部工具,用户提交一个 Python 项目,系统自动判断为什么项目启动失败。 第一版很自然: 读取 requirements.txt ↓ 读取 app.py ↓ 运行 python3 app.py ↓ 分析报错...
Agent State:一个 Agent 到底需要记录什么?
上一节我们已经把 Agent 最核心的 Main Loop 写出来了。你应该已经能看懂这样一个结构: while True: response = llm.chat(messages) if response.tool_call: result = execute_tool(response.t...
小节一:State 到底是什么——它不是“聊天记录”,而是 Agent 当前运行事实的集合
我们先从一个最容易误解的地方开始。 很多人会说,“Agent 不是已经有 messages 了吗?这不就是状态?” 不完全是。 messages 是 State 的一部分,但它不是全部。 聊天记录主要...












