Agent 系统:最小工具调用 Agent 课堂作业

作业定位

这份作业直接接在下面这组材料之后完成:

目标不是让大家做一个“大而全”的 agent,而是让大家亲手完成一个小而完整的工具调用 agent,并理解:

  1. agent 和普通聊天程序的真正区别是什么
  2. tool use 为什么是 agent 的核心能力之一
  3. 为什么模型接入层、tool、workflow、evaluation 要分开看

作业目标

请基于课程里已经提供的通信 demo,完成一份 “本专业小型工具调用 Agent 设计与对比实验”

你需要:

  1. 先跑通课程提供的最小 agent demo
  2. 再围绕你自己的专业 / 课题方向,设计一个新任务
  3. 设计并实现 2 个你自己写的工具
  4. 让 agent 调用工具完成这个任务
  5. 分析它做对了什么、做错了什么、为什么会错

任务要求

Part A:先跑通课程示例

请先跑通:

你需要确认自己已经看懂:

Part B:设计一个自己的 agent 小任务

请围绕自己的专业 / 课题方向,选择一个能通过工具调用变得更可靠的小任务。

例如:

要求这个任务满足:

Part C:设计两个工具

最低要求:

更推荐:

请注意:

Part D:完成一次最小对比

请至少比较下面两种情况:

  1. 无工具或不要求调用工具
  2. 有工具并明确要求调用工具

如果你愿意,也可以额外补一个小对比:

  1. 只有 prompt 改写,但不增加工具

推荐完成路径

第 0 步:先从 6/3-prog 开始

这一版代码更短,更适合第一次改。

第 1 步:复制一份你自己的脚本

建议不要直接改原始示例。
可以复制成一个新文件,例如:

my-agent-demo.py

第 2 步:先改 prompt,不改工具

先观察:

第 3 步:再加自己的工具

例如新增:

第 4 步:做一次最小实验

至少保留:

建议提交内容

请提交一个压缩包,包含:

  1. 你的脚本或 notebook
  2. 一页到两页短报告
  3. 终端输出或截图

短报告建议结构

1. 任务说明

2. 工具设计

3. 结果对比

请明确回答:

4. 工程分层理解

请再用自己的话区分:

5. context / memory / state

请简要回答:

评分重点

这份作业不按“做得最复杂”评分,而更看重:

  1. 是否真的完成了一个可运行的小 agent
  2. 是否真的设计并实现了两个自己的工具
  3. 是否做了无工具 / 有工具对比
  4. 是否看到了 agent 的真实边界
  5. 是否能说清楚“prompt、tool、模型接入层、workflow、evaluation”分别在做什么

你真正要带走什么

如果做完后只记住一句话,那应该是:

Agent 的关键不只是模型更强,而是让模型在合适的时候,通过合适的流程调用合适的工具。

所以这份作业真正训练的是: