-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathquiz.json
More file actions
78 lines (78 loc) · 3.8 KB
/
Copy pathquiz.json
File metadata and controls
78 lines (78 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{
"lesson": "phase-19/29-end-to-end-coding-task-demo",
"title": "顶点课 29 —— 端到端编码任务演示",
"questions": [
{
"stage": "pre",
"question": "在阅读本课之前:为什么端到端演示用确定性策略替代 LLM?",
"options": [
"LLM 跑测试太慢了。",
"本课测试的是驱动层;策略是可替换的接缝。",
"确定性策略在编码任务上总是优于 LLM。",
"本课承担不起推理成本。"
],
"correct": 1,
"explanation": "驱动层契约不关心策略是 LLM 还是状态机。去掉 LLM 就去掉了网络和随机性,把本课变成一个可复现的集成测试。"
},
{
"stage": "check",
"question": "Agent 的状态机有五个状态。正常通过时它们的执行顺序是什么?",
"options": [
"SURVEY -> FIX -> VERIFY -> RUN_TESTS -> INSPECT",
"SURVEY -> RUN_TESTS -> INSPECT -> FIX -> VERIFY",
"RUN_TESTS -> SURVEY -> INSPECT -> FIX -> VERIFY",
"SURVEY -> INSPECT -> FIX -> RUN_TESTS -> VERIFY"
],
"correct": 1,
"explanation": "Agent 先勘察项目,跑测试,检查失败的测试,修复 bug,然后验证。RUN_TESTS 在 INSPECT 之前,因为测试失败是策略读取的信号。"
},
{
"stage": "check",
"question": "内置 fixture 的 bug 是 src/fizz.py 里的 off-by-one:range(1, n) 应为 range(1, n + 1)。策略在哪个状态决定修复方案?",
"options": [
"在 SURVEY 状态,通过读取文件头。",
"在 INSPECT 状态,在测试失败指明了预期输出之后。",
"在 VERIFY 状态,在重跑之后。",
"在状态机之外,在 gate chain 中。"
],
"correct": 1,
"explanation": "INSPECT 是策略读取失败测试并了解预期形状的地方。修复方案在此确定,在下一个 FIX 状态写入。"
},
{
"stage": "check",
"question": "每次工具调用依次经过哪些组件?",
"options": [
"Sandbox -> GateChain -> SpanBuilder -> ObservationLedger",
"GateChain -> SpanBuilder -> Sandbox -> ObservationLedger",
"SpanBuilder -> GateChain -> Sandbox -> ObservationLedger",
"ObservationLedger -> GateChain -> Sandbox -> SpanBuilder"
],
"correct": 1,
"explanation": "先 Gate(允许/拒绝),再 Span(拒绝也要被捕获),然后 Sandbox(只在允许时执行),最后 Ledger(只在成功时记录)。本课代码就是这样串的。"
},
{
"stage": "post",
"question": "你把确定性策略换成真正的 LLM。驱动层的哪个组件需要改?",
"options": [
"Gate chain 需要重写来处理 LLM 的随机性。",
"Sandbox 需要用 seccomp 加固。",
"驱动层什么都不用改;策略是唯一要换的部分。",
"Prometheus 导出格式会变得不兼容。"
],
"correct": 2,
"explanation": "这就是本课的核心观点:驱动层与策略无关。接缝是 next_action / observe 接口。LLM 在此接入,不需要动 gate、sandbox、ledger 或 span。"
},
{
"stage": "post",
"question": "演示断言 agent 在不到 12 步内解决 fixture。确定性策略用了 5 步。真正的 LLM agent 可能怎样,驱动层如何应对?",
"options": [
"LLM 也会用 5 步;驱动层不变。",
"LLM 可能用更多步;step_budget 限制循环,未解决的运行会以带 halted_reason 的失败上报。",
"LLM 无法在这个驱动层里运行。",
"驱动层会静默延长预算。"
],
"correct": 1,
"explanation": "Step budget 是响亮、确定性的停止标准。一个四处游荡的 LLM 会被限制住,报告会明确告诉你原因。"
}
]
}