Harness Engineering共30篇
Harness Engineering
小节三:Agent——真正的变化,是“下一步由谁决定”-大赛人网

小节三:Agent——真正的变化,是“下一步由谁决定”

现在我们正式进入 Agent。 先看一个最短版本: 当前状态 ↓ LLM 判断下一步做什么 ↓ Action ↓ 执行 ↓ Observation ↓ 再次判断 这里有四个关键输入。 Goal:最终要完成什么。 State:现在执...
lanzeou的头像-大赛人网lanzeou11小时前
03315
小节四:把确定的步骤固定下来,让 Agent 处理需要探索的部分-大赛人网

小节四:把确定的步骤固定下来,让 Agent 处理需要探索的部分

学到这里,很容易走向另一个极端,“既然 Agent 能动态决策,那以后所有 Workflow 都可以不要了。” 这恰恰是很多 Agent Demo 一进入生产就出问题的原因。 真正靠谱的做法通常是,确定的事情写...
lanzeou的头像-大赛人网lanzeou9小时前
03815
从 Chain、DAG 到 Agent:为什么还需要 Agent?-大赛人网

从 Chain、DAG 到 Agent:为什么还需要 Agent?

这一节我们不急着写复杂 Agent,也不急着接真实大模型 API。我们先把一个最容易被说模糊、但后面每一节都会依赖的问题讲透,既然以前已经有 Chain、DAG、Workflow,为什么今天还需要 Agent? 学...
lanzeou的头像-大赛人网lanzeou11小时前
02414
小节三:为什么 Agent 能连续完成多步任务——关键不是“规划能力”,而是反馈驱动-大赛人网

小节三:为什么 Agent 能连续完成多步任务——关键不是“规划能力”,而是反馈驱动

很多人第一次看 Agent 会觉得,“是不是因为现在大模型特别会规划,所以才能连续做几十步?” 规划能力当然有帮助。 但 Main Loop 更基础。 即使模型没有先生成完整计划,只要它能做到: 看当前...
lanzeou的头像-大赛人网lanzeou8小时前
03714
小节四:Main Loop 真正难的地方——什么时候继续,什么时候停止,什么时候承认失败?-大赛人网

小节四:Main Loop 真正难的地方——什么时候继续,什么时候停止,什么时候承认失败?

如果你只看最小代码: while True: response = llm.chat(messages) ... 很容易觉得 Main Loop 很简单。 真正做项目以后,你会发现,“循环”本身简单,控制循环 才难。 至少要回答四个问题...
lanzeou的头像-大赛人网lanzeou8小时前
02914
小节三:我们为什么选用 Flask——让 Agent 能被其他系统调用-大赛人网

小节三:我们为什么选用 Flask——让 Agent 能被其他系统调用

很多 Agent 教程最后停在这一行: agent.run('帮我分析这个项目') 对学习原理来说,这当然够。 但真实系统通常不是这样被使用的。 你的网页前端不能直接调用本地 Python 对象;飞书机器人不能直...
lanzeou的头像-大赛人网lanzeou12小时前
03414
小节二:DAG 与 Workflow——流程可以很复杂,但核心控制权仍在开发者手里-大赛人网

小节二:DAG 与 Workflow——流程可以很复杂,但核心控制权仍在开发者手里

Chain 是一条线。 但真实工程里,很多任务不是线性的。 例如一个模型训练任务: ┌→ 数据质量检查 ─┐ 数据加载 ─────┼→ 特征统计 ─────┼→ 模型训练 └→ 标签检查 ─────...
lanzeou的头像-大赛人网lanzeou11小时前
04313
案例分析一:修复一个陌生 Python 项目——固定 Workflow 为什么会迅速膨胀?-大赛人网

案例分析一:修复一个陌生 Python 项目——固定 Workflow 为什么会迅速膨胀?

场景背景 假设我们想做一个内部工具,用户提交一个 Python 项目,系统自动判断为什么项目启动失败。 第一版很自然: 读取 requirements.txt ↓ 读取 app.py ↓ 运行 python3 app.py ↓ 分析报错...
lanzeou的头像-大赛人网lanzeou8小时前
02613
Agent State:一个 Agent 到底需要记录什么?-大赛人网

Agent State:一个 Agent 到底需要记录什么?

上一节我们已经把 Agent 最核心的 Main Loop 写出来了。你应该已经能看懂这样一个结构: while True: response = llm.chat(messages) if response.tool_call: result = execute_tool(response.t...
lanzeou的头像-大赛人网lanzeou6小时前
04213
小节一:State 到底是什么——它不是“聊天记录”,而是 Agent 当前运行事实的集合-大赛人网

小节一:State 到底是什么——它不是“聊天记录”,而是 Agent 当前运行事实的集合

我们先从一个最容易误解的地方开始。 很多人会说,“Agent 不是已经有 messages 了吗?这不就是状态?” 不完全是。 messages 是 State 的一部分,但它不是全部。 聊天记录主要...
lanzeou的头像-大赛人网lanzeou6小时前
04212