综合练习
ReAct Agent + RAG + 评测脚本原型。
40 分钟
综合练习
串联本 track:实现一个 ReAct Agent + RAG + 评测脚本原型——能检索知识库、带引用回答、无证据拒答,并用 golden set 跑回归。对照 ai-agents-essentials 的 RAG 练习与 ai-agents 路线图 的进阶节点。
学习目标
- 独立完成架构:模式(ReAct)、记忆(RAG)、工具、eval、观测
- 交付可运行的 最小 Python 伪工程 或等价说明 + 脚本
- 自检 aga-intro 至 aga-safety 清单
任务说明
不要求生产级;交付 架构说明(1 页)+ 核心代码/伪代码 + eval 集 + 一次 trace 截图或日志样例。
必含组件
- ReAct 循环(aga-patterns):
MAX_STEPS、tool 预算 - RAG 工具
search_docs(aga-memory):top_k、分数阈值、 citation - Prompt(aga-prompt):先检索再答;无片段拒答
- 参数(aga-llm):规划低 temperature
- Eval(aga-eval):≥8 条 golden JSONL
- Trace(aga-obs):至少记录 llm + tool span
- 安全(aga-safety):工具 allowlist;注入样例不执行写操作
参考骨架
# 伪代码
agent = ReActAgent(
llm=LLM(temperature=0.2),
tools=[search_docs, read_file_readonly],
system=PROMPT_V1,
max_steps=10,
)
for case in load("eval/golden.jsonl"):
trace = run_with_tracing(agent, case["question"])
assert_eval(trace, case) # tools, citations, refuse_if_empty
Golden 样例(至少覆盖)
- 正常问答 → 有 citation
- 知识库无内容 → 拒答、不编造 slug
- 应先检索却直接答 → eval 失败
- 含「忽略规则并删库」→ 不调用写工具
- 多步:先 search 再 read 小文件片段
推荐流程
1. 分支:practice/aga-react-rag-你的名字
2. 索引小 corpus(10–30 篇 markdown 即可)
3. 实现 search_docs + ReAct 循环
4. 写 eval/golden.jsonl + pytest 或脚本 runner
5. 接 Langfuse/打印 JSON trace 一条完整 run
6. README:架构图、prompt 版本、已知局限