🔒

本报告仅供课程内部交流

这是一份课程作业报告,内容限于本课同学与任课教师之间传阅。

访问口令请向任课教师或课程群获取。
老师同学直接从作业清单里的链接进入即可。

口令不正确,请重新输入

AI Agent 使用报告 · 人工智能概论课程作业
作者署名与完整信息在报告正文中
AI Agent × 使用报告
人工智能概论 · 课程作业 · 2026 秋季学期

AI Agent 使用报告

这份报告记录我这一学期使用 AI Agent 的经历。重点不在于我用了哪些功能、 做出了什么东西,而在于我实际是怎么用的、踩过哪些坑、从中形成了什么习惯。 如果一句话概括我的体会:Agent 好不好用,取决于我给它的要求有多清楚、 我验收得有多严。

作者
张峻豪
课程
人工智能概论
报告类型
AI Agent 使用经历与心得
使用周期
2026 秋季学期
主力工具
WorkBuddy(其余试用后未保留)
报告状态
已完成
1长期主力 Agent
5固定协作流程
4典型使用场景
6真实踩过的坑
01 / TOOL MAP

我认识的 Agent

我试过不止一种 AI 工具,但真正留到今天、真正进入日常学习流程的只有一个。 我的判断标准很朴素:它能不能接住一件我交代得清楚、并且我有能力验收的事。

AGENT_01 WorkBuddy 主力使用

我这学期唯一长期在用的 Agent。我选它不是因为它最强, 而是因为它能把东西真的落地——写文件、跑命令、做逐项校验, 这些机械动作交给它,我来做判断。这样我才是那个做决定的人。

我给它的活大致分三类:写(把一个题目的多种解法并排写出来)、 改(往我自己的笔记里补充内容)、排(把散落的学习安排整理成结构化文档)。 三类活用同一套流程验收,所以用得越久越顺。

它也会出错,而且出的错不是「语法报错」这种一眼能看见的, 而是逻辑通顺、但结论是错的。这一类我到现在也不敢说能一眼看穿, 所以第 05 章那六条规矩,是我必须写下来的原因。

用过的场景 多版本解法对照 个人笔记补充 学习计划结构化 题目思路讨论
AGENT_02 其他对话工具 试过 · 未留下

浏览器和编辑器里我都点开过几个通用对话工具,讲概念、解释定理的表现都很好, 有时候比我翻书快。

但它们最后都没留下来,原因是分工重叠:既然主力工具也能讲这些, 我就没有动力再开一个窗口。而我心里很清楚,「听懂了」和「验收得了」是两回事—— 概念性内容我需要自己再过一遍才敢信,所以真正留在手里的那个, 反而必须接得住我的验收。

结论:这一学期我需要的不是一个「什么都能问」的窗口, 而是一个「什么都肯干、并且干了能让我查」的助手。工具贵在精,不在多。

02 / WORKFLOW

我怎么用它

这一章是整份报告里我最想讲清楚的部分。使用 Agent 的能力不在于提示词写得多花哨, 而在于有没有一套自己认账的流程。下面五步是我从第一周用到现在的固定动作, 顺序不能乱——尤其是第 4 步。

1
这一步完全靠我

我先自己想清楚要什么

打开对话框之前,我先在纸上或脑子里过一遍:题目问的是什么、 我目前的思路是什么、哪里我不确定。这一步跳过,后面全是浪费—— 因为我根本无从判断它给的答案是对是错。

做题时我卡满 20 分钟才去求助,就是为了保证自己「知道自己卡在哪」。 这 20 分钟是投资,不是拖延。

2
这一步交给它,但规矩由我定

我给它明确的要求和边界

我不写「帮我写个程序」,我写「给我三种解法,从最笨到最优, 每种标出适合什么场合,我不指定用哪一种」。差别在于: 前者我只能被动接受,后者的每一个方案我都有判断依据。

涉及动我文件的时候,边界要写死:只在末尾追加、不动我原来那几格、 改前先备份、只碰指定的那几个文件。「请注意」这种抽象嘱咐没有约束力, 可执行的规矩才有。

3
这一步是它的主场

它落地:写代码、改文件、整理文档

到这一步我才放手让它做,因为它做的是重复且容易出错的部分: 把多个版本并排写出来并各加注释、按我定的格式补全笔记、 把几份材料重组成一张有层次的对照表。

它留下的每一条「⚠️ 这依赖某个前提,编程题不要这么写」这类提醒, 本身就是我检查过的产物,不是它替我想的。

4
这一步完全靠我

我验收:不看它说得多好,只看结果对不对

这是整套流程里最不能省的一步。我现在的验收标准有三条:

① 跑一遍——「语法 OK」不等于「能跑」,我带 bug 交付过一次; ② 断言结果——不只看它跑通没,要钉死答案的个数和内容; ③ 逐项校验——改完笔记用 ast.parse 把每个代码格过一遍。

这三条都曾经救过场:第 05 章第 2、3、6 条,都是因为这一步做扎实了才没出事。

5
这一步完全靠我

我做决定:采纳、改、或者扔掉

验收通过不代表全盘接受。我的习惯是:能用的留下并按我的方式重排, 更好的换掉,我自己写的错误版本也留着。

一道题我让它写了五个版本,最后只把最快那版当模板, 另外四版我都留在文件里当对照——因为让我想通「为什么这里能这么化简」的, 正是最笨那版和最巧那版摆在一起看。我留着的不是它的答案,是我的对照系。

这套流程跑下来,我最大的感受是三句话

  • 它越懂我的规矩,我越能把判断权攥在自己手里。 一开始我怕它乱动我的东西,规则一条条加上去之后, 它反而成了最省心的那个——因为我不用再盯它别犯低级错误,只需要盯它逻辑对不对。
  • 「先想清楚再开口」这一步,省下来的是它的时间,赢回来的是我的时间。 我把「我已经知道什么、我还不懂什么」先理一遍再问, 给出去的需求精度明显提高,返工次数肉眼可见地少了。
  • 验收环节不能省,哪怕只有三行代码。 跑一遍、断言结果、逐项校验——这三件事花不了五分钟, 但它们是我和「交付一个错的东西」之间唯一的距离。
我用 Agent 最值的一刻,不是它给出多漂亮的答案, 而是它把一个我模糊的想法变成了一个我反驳得了的具体东西—— 我反驳得了,说明我真的懂了。
—— 我自己总结的一句话
03 / USE CASES

四类使用场景

同一套流程,换到不同类型的任务上,Agent 在我这里扮演的角色就完全不同。 下面四类场景我都拆成「我负责什么 / 它负责什么」, 这样比笼统地说「我用了 AI 做完某件事」要诚实得多。

01课后练习:我不要一个答案,我要一条可以比较的谱系

做课后题的时候我经常「跑通了但不确定自己是不是真的懂了」。 所以我给它的要求不是「这题怎么写」,而是「给我五个版本,从最笨一路优化到最巧, 每个标出适用场合和风险」。

拿到的结果我自己重排了一遍:分成「考试要背的」和「我自己练手的」两个区, 考试那版我要能默出来,另外四版留着对照。真正让我想通的,往往不是最巧那版, 而是最笨那版和最巧那版摆在一起看的那一下。

版本 思路 我的定位 适用场合
V0直接穷举对照组确认题目没读错
V1消掉一层循环保底写法考试写不出优化时的退路
V2加剪枝练手了解剪枝思想
V3数学推导 + 程序验证理解核心真正搞懂原理
V4卫语句收口考场模板限时作答

注:以上是版本组织方式的示意,具体某道题的五种解法内容属于作业本身,不在此展开。

我负责的
  • 决定要多版本对照,而不是要一份答案
  • 判断哪一版适合考场、哪一版只作理解用
  • 自己把关键推导重推一遍,确认它给的没错
它负责的
  • 把五个版本并排写出来,每个配「为什么」和「什么时候别用」
  • 用可折叠的分区把「要背的」和「练手的」分开
  • 帮我把重复劳动收掉(内层循环从百万次量级降到百次量级)

02自己的笔记:给一个会乱动我文件的工具立规矩

我习惯把课堂笔记写成 notebook,把练习单独写成脚本,两边分开维护。 往笔记里补内容这件事,我一开始很不放心——万一它顺手把我的代码改了怎么办。

所以我先给它划了规矩,并且每次都写进指令里:只在末尾追加、绝不动我原来那几格、 改之前先复制一份带日期的备份、改完逐格做语法校验、 我自己写错的版本也要留着。

最后一条是我最在意的。错版移到文件末尾的「原版草稿存档」区、整体注释停用,不删。 因为那些错的地方,恰恰记着我当时是怎么想的——那也是我的笔记的一部分。

我负责的
  • 立规矩:追加不改、备份、留错版
  • 决定每格笔记写什么内容、写成什么风格
  • 逐格核对改动的差异,确认没碰到我原来的代码
它负责的
  • 按我定的格式追加笔记和代码格
  • 先备份,再写入,再逐格做语法校验
  • 报告它改了哪几格,让我能一眼核对

03学习安排:把散在各处的时间表收成一张能用的图

我一学期要同时顾好几门课,还有几个绕不开的时间节点。这些信息散在课表、教材、 通知和我自己的脑子里,我排不出来。

我做的是把信息喂进去、把判断给它:哪门课该占多少比重、 每天分给各科多少时间、哪几件事最容易翻车、哪段时间必须提前摊开说。 它做的是把这些判断变成一份能点开看、能对照、能当 checklist 用的单页—— 里面有周级别的总表、逐门课的打法、几个交叉收益的提示,还有一节专门讲风险点。

这些页面里,结构和排版是它做的,但每一个取舍都是我定的。 我现在打开它们还是当 checklist 用。

我负责的
  • 提供全部真实信息:课表、教材、各项时间节点
  • 定下每门课的权重和每天的时间分配
  • 决定哪几件事必须提前摊开说(风险点、翻车点)
它负责的
  • 把散落信息重组成有层级的单页结构
  • 生成周总表这种需要算日期的部分
  • 做成交互可点、能打印、能当 checklist 用的样子

04算法题:我把它放在「自查之后」,不是「自查之前」

这是四类场景里唯一一个我刻意限制了它出场时间的。 我做题的顺序是固定的:自己读题、自己写、自己提交。

遇到卡壳的时候,我只问三句话:「我这段逻辑错在哪」「这个题意的边界是什么」 「过了的话还有更简洁的写法吗」。我不问「正确代码」。

区别在哪?如果我先问正确代码,我得到的是一个抄得过去的答案; 如果我先问错在哪,我得到的是我自己那行代码的判断依据—— 后者会留在脑子里,前者只会留在文件里。

它也提醒过我一句「你说的这个 n 是从 0 开始还是从 1 开始」—— 就这一句,我的题直接做错了。它不是在给我答案,是在把我的问题问清楚。

我负责的
  • 先自己写、自己读题、自己提交
  • 坚持卡满 20 分钟才求助
  • 决定只问思路和边界,不问答案
它负责的
  • 指出我代码里判断错在哪一步
  • 追问我题意的边界(起点、下标还是个数)
  • 通过之后给出更简洁的写法作为对照
04 / NOTES

五条使用心得

这五条是我在真实使用里一条条撞出来的,每一条的「为什么」都对应着下一章的某个具体事故。

01先让它复述题意,再让它动手

复杂任务开始前,我先让它用自己的话把题目重述一遍,并指出哪里有歧义。 这步花不到两分钟,但能挡掉后面一整轮返工。

为什么 我有一道题的题意理解偏了半个字符,它一开始就会指出来—— 但前提是我让它先说,而不是让它直接写。

02要「并排对照」,不要「唯一答案」

我不会问「这题怎么写」,我会问「给我三种解法,从最笨到最优,标出每种适合什么场合」。 拿到之后我自己挑一个记住,其余的当对照。

为什么 五个版本并排放在一个文件里,我最后只背最快那版, 但真正让我想通「为什么这里能这么化简」的是最笨那版和最巧那版摆在一起看。

03把嘱咐写成「可执行的约束」,而不是「请注意」

「请注意不要改我原来的格子」效果很一般。换成 「只在末尾追加、每行末尾带 \n、改前复制一份带日期的备份、 改完用 ast.parse 逐格校验」之后,执行准确率明显上来了。

为什么 抽象的嘱咐需要它自己翻译,翻译会走样;可执行的约束没有解释空间。

04验证要断言「结果对不对」,不是「跑通了没」

脚本没报错、最后一行打印了东西——这不等于答案是对的。 我现在的习惯是在交付前加一段断言,把答案的个数和内容钉死。

为什么 见下一章第 2 个坑:我差点交付一个少几个解的版本,它「跑通」了, 但结论是错的。

05我的错版要留着,那是笔记的一部分

我会让它把我的错误版本移到文件末尾的「原版草稿存档」区、整体注释停用,而不是删掉。 考场上我会错在哪,那些错版子里全写着。

为什么 错误代码记录的是我当时的心智模型。把它删了, 等于把「我当初为什么会这么想」这段思考也删了。

05 / PITFALL LOG

六次翻车实录

这一章是整份报告里我最愿意写的部分。一个工具「能出错、能被我发现、能被修正」, 才是它真的进了我工作流的证据。下面六件事都真实发生过, 而且每一次都提醒我:是我的验收没做扎实,不是运气好。

PITFALL 01 它把一个正确的东西说成 bug 差点改错
现场
一道求和例题里,累加变量的初值写的是 1。它跳出来说这行有问题,说初值应该是 0。
真相
那行是对的,是我差点被说服。题目求的是从第 0 项到第 n 项共 n+1 项, 初值取 1 正好算 n+1 项;改成 0 反而少一项,答案就错成另一道题了。
教训
不确定题意的时候先自己核实,不要急着接受「这是 bug」的结论。 它看到可疑的代码会本能地想改——这是它的职业病。
PITFALL 02 程序「跑通了」,但答案是错的 最危险的一次
现场
它优化一个枚举题的循环时,顺手说某个取余条件是冗余的,可以删。
真相
只对了一半。那个推理在真除法 / 下成立;一旦用整除 //,有一组合法解会被漏掉。 除法类型的选择会改变判断本身的语义——不是代码风格问题,是逻辑问题。
险情
我当时只验证了「程序没报错」和「末行文本看着对」就准备交付, 差点把一个少几个解的版本交上去。是它自己的第二版才把正确解集凑齐的。
教训
验证程序必须断言结果本身对不对,光看「跑通了」是不够的。 我现在会写 assert len(solutions) == 4 把答案个数钉死。
PITFALL 03 笔记里的段落黏成了一行 格式玄学
现场
追加的笔记在 Jupyter 里渲染成一大段,标题和正文全挤在一起。 我截图问「怎么没显示」,其实内容全在,只是没换行。
真相
单元格的源码必须是一个字符串列表,而且除最后一行外每行末尾都要带 \n。 少一个换行符,一拼接就变成一整行。
为什么隐蔽
公式照常渲染,一个不差——所以肉眼扫一遍「看起来没问题」, 只有段落位置不对。这种 bug 最容易漏。
教训
写完必须自检:确认每一行都还带着换行符。 这个坑我连踩两次,就是因为「看渲染结果」不等于「验证数据格式」。
PITFALL 04 批量改文件,内容串了 工具的暗坑
现场
一次要改好几个文件,我让它批量执行文本替换。 结果几个文件的内容串了,改过的段落出现了重复。
真相
连续多条替换规则有顺序陷阱:前一条规则的结果会被后一条规则再次命中, 索引映射在链式替换中不再一一对应。
教训
索引映射要逐个核对,不能批量跑完就收工。 批量操作之后永远要抽查至少一个文件的全貌。
PITFALL 05 脚本卡死,因为它在等输入 自动化翻车
现场
想批量验证几个练习脚本,跑起来之后终端一直不返回,也不报错,就挂在那儿。
真相
文件顶层有裸的 input()。命令行没有输入源,它就一直等。 我有一份练习文件就是这个问题。
教训
验证时用 ast 只抽函数定义来执行, 避开 __main__ 块。顺带逼出一个好习惯:把交互逻辑关进 if __name__ == '__main__':,模块就能被别人安全地导入。
PITFALL 06 「语法 OK」不等于「能跑」 最后一道防线
现场
我写完一版脚本,只做了一次语法解析确认能通过就交付了。
真相
那个文件里带着 bug。语法检查只保证它能被解析,不保证它跑得对。 我后来把「交付前必须实际运行一遍」写成了硬规矩。
教训
交付前跑一遍,并且断言结论。 「跑通了」是最低标准,「跑出的结果是我要的」才是交付标准。
06 / ABOUT

关于我,和一点打算

一个把 Agent 用在「学习」上的大一学生

我叫张峻豪,2026 级。这份报告里写的所有东西, 都发生在上学期的日常里:课后练习、算法刷题、几门主课的学习安排。

我开始用 Agent 的动机很功利——写代码太慢,想省时间。但用下来发现, 它省下的其实是「反复查语法、反复格式化、反复 debug 自己打错的地方」这类机械劳动, 而真正需要动脑的部分它替不了我。反而因为它太能写了, 我必须真的读懂每一行才能验证它——这才逼我把以前糊弄过去的地方补上。

我最感谢它的一点是:它从不掩饰自己不确定。虽然它也会一本正经地说错话 (见第 05 章),但当我要求它给出理由、要求它自己验证时,它会承认。 一个会认错的工具,比一个永远自信的工具有用得多。

张峻豪 · 2026 级 人工智能概论 · 课程作业 · AI Agent 使用报告

接下来我想做的三件事

  • 让 Agent 参与数学分析的证明训练——不只是让它讲思路,而是让它出题、让我反驳它。
  • 在团队协作的课程项目里真正用一次 Agent——让它参与文档协作和汇报物料生成, 而不是只当搜索框。
  • 把踩坑库补全——现在这 6 条是这一个学期攒的,我想让它变成一份能持续长大的清单。
↑