Agent 实现方法论
From Scratch
学习地图
练习
术语表
← 返回首页
本章教程
本章练习
第 23 章测验
第 23 章测验
对应章节:收尾 v10:配置、部署与全书回顾
共 8 题,答对率 ≥ 80% 即通过。请完成全部题目后点击「提交」。
Q1
配置合并的优先级从低到高,正确的是?
内置默认值 < 进程环境变量 < .env 文件
内置默认值 < .env 文件 < 进程环境变量
.env 文件 < 内置默认值 < 进程环境变量
三者等权,谁后赋值谁生效
Q2
关于密钥管理的三条铁律,下列说法「不正确」的是?
不进代码:key 不写在源码里,连默认值都不写
不进 git:key 放 .env 并加入 .gitignore,只提交 .env.example 模板
不落日志:打印、报错、trace 里的密钥一律脱敏
不落内存:密钥不能以明文存在于进程里,必须随时可丢弃
Q3
给定 .env 文本:注释行「# 注释」被跳过;A 行是 A="x y";B 行是 B="line1\nline2"(双引号内是反斜杠加 n 两个字符)。parseDotEnv 的返回结果是?
结果是 A 为 x y(引号剥掉)、B 为两行文本(line1 换行 line2,反斜杠 n 转义成真实换行)
结果是 A 为 x y(引号剥掉)、B 为 line1\nline2(反斜杠 n 原样保留)
结果是 A 为 \"x y\"(引号原样保留)、B 为 line1\nline2(反斜杠 n 原样保留)
结果是 A 为 x y(双引号不剥,只有单引号才剥)、B 为两行文本
Q4
脱敏函数 redactConfig 对 { API_KEY: 'sk-live-secret-1234', MODEL: 'mock' } 的输出是?
{ API_KEY: 'sk-l****', MODEL: 'mock' }
{ API_KEY: 'sk-live-secret-1234', MODEL: 'mock' }
{ API_KEY: '****', MODEL: 'mock' }
{ API_KEY: 'sk-live****', MODEL: 'mock' }
Q5
密钥脱敏(redactConfig)「不能」防御的是下列哪一项?
日志文件里的被动泄漏(启动横幅、报错信息带上明文 key)
代码被 clone 后,别人从源码里读到 key
攻击者直接读取进程内存
调试输出把 key 打上终端
Q6
单机部署的三件套(进程管理、日志、反向代理)中,反向代理「不做」下列哪件事?
TLS 终结:对外提供 HTTPS,避免 API key 在网络上裸奔
域名与路径路由:把不同域名或路径转发到对应服务
替换业务逻辑:Agent 的思考与工具调用改由代理完成
可选限流:给敏感端点(如审批)加简单访问限制
Q7
全书回顾:主线产品 v01→v10 的版本能力与章节对应,正确的是?
v04(ch17)是权限与 HITL:工具风险分级与审批
v05(ch18)是安全与沙箱:路径逃逸防护与 Shell 隔离
v08(ch21)是 MCP 接入:手写 JSON-RPC 2.0 over stdio
v03(ch16)是 Web 前端流式渲染
Q8
框架对照:我们在 ch18 手写的审批门(getApproval 注入,敏感工具暂停等人),在 LangGraph 里对应的组件是?
checkpointer——把图状态快照到存储
interrupt()——图内暂停执行、把控制权交回外部、等人工输入后继续
trim_messages——上下文截断
astream_events——流式事件
提交