Agent Engineering 课程阅读

在 GitHub 查看原文

本页目录

Lesson 01 练习

code.py 里对应的代码,在仓库根目录运行 python rag-lessons/01_getting_started/code.py 观察变化。 没有标准答案,重点是建立"改动→观察→理解"的直觉。


练习 1:换一个问题(热身)

QUESTION 改成下面这些,逐个运行,观察检索到的材料和回答:

  • "公司中午能休息多久?"
  • "我生病了怎么请假?"
  • "请告诉我公司的 wifi 密码" ← 文档里没有的信息

观察重点:第三个问题,模型应该回答"我不知道"。这正是提示词里"没有就说不知道"在起作用。


练习 2:增删知识

KNOWLEDGE 列表里加一条新知识,比如:

"ACME 公司茶水间位于 3 楼东侧,提供免费咖啡和零食,每天 15:00 供应下午茶。",

然后问 "下午茶几点?",看模型能不能答对。

再把这条删掉,问同样的问题,看模型这次回答什么(应该回到"我不知道")。

思考:这说明 RAG 的回答质量本质上取决于什么?


练习 3:调检索数量

TOP_K 从 2 改成 4(甚至 5),再问 "我在公司干了 4 年,能休几天年假?"

观察:检索到的材料变多了,回答有没有变得更好?还是混入了无关内容?

思考:Top-K 是不是越大越好?(提示:后面 Lesson 03 会讲)


练习 4:对比"不开 RAG"

临时把 generate_answer 里的 prompt 换成只发问题、不给材料

prompt = QUESTION  # 直接问,不给任何材料

同样问 "我在公司干了 4 年,能休几天年假?",对比有材料和无材料的回答差异。

思考:没有材料时,模型会怎么回答?(提示:它可能会编,因为它不知道"ACME 公司"的真实制度)


✅ 完成本课后,你应该能回答

  1. RAG 解决了直接问大模型的哪三个问题?
  2. 完整的 RAG 流水线有哪几步?每步分别用什么技术?
  3. 为什么"检索"这一步能让模型少产生幻觉?