Appearance
自测题库
主动回忆比反复阅读记得牢。先自己想答案,再点开看。手机上随时自测。
第 0 章
Q1. 为什么 AI 会"幻觉"?
看答案
因为它在预测"听起来最合理的下一个词",而不是"最真实的下一个词"。不确定时它不会说"不知道",而是生成最像答案的内容。→ 0.2
Q2. 需要精确计算时,正确做法是?
看答案
让 AI 写代码去算,而不是让它直接给数字。AI 生成的是"看起来像答案的数字"。→ 0.3
Q3. AI "不记得"上次对话,是 bug 吗?怎么解决?
看答案
不是 bug,是架构设计(每次调用无状态)。解决:用外部存储(数据库/文件)持久化,每次用时读取。→ 0.3
第 1 章
Q4. "上下文 200k" 指 200k 个汉字吗?
看答案
不是,指 200k 个 Token,中文大概 10-15 万汉字。→ 0.2
Q5. 输入 Token 和输出 Token,哪个更贵?
看答案
输出更贵,通常是输入的 3-5 倍。→ 1.1
Q6. 让 AI 输出准确的复杂答案,一个简单 Prompt 技巧是?
看答案
CoT(思维链):让它"先分析推理过程,再给答案"。因为每个 Token 都影响后续 Token。→ 1.2
Q7. Tool Use 里,工具执行报错了,最该做什么?
看答案
把清晰的错误信息返回给 AI,让它能感知并调整。否则它会假设成功继续,导致跑偏。→ 1.4
Q8. 什么时候该用推理模型?什么时候不该?
看答案
该用:多步数学/逻辑、复杂代码、难题。不该用:简单问答/分类/翻译、实时交互、大批量低难度任务(又慢又贵)。默认用普通模型。→ 1.7
Q9. 把代码从 DeepSeek 换成本地 Ollama,要改什么?
看答案
只改 baseURL(http://localhost:11434/v1)、apiKey(占位)、model(如 qwen2.5:14b),业务代码不变——因为都兼容 OpenAI 协议。→ 1.9
Q10. 调文生图 API 和调聊天 API 最大的不同是什么?返回的图片地址要注意什么?
看答案
文生图不走 chat.completions,国产平台多为"提交任务→轮询 task_id"的异步模式。返回的图片 URL 是临时的,拿到要立刻下载转存到自己的对象存储。→ 1.11
Q11. 做实时语音对话,延迟为什么容易爆?怎么压?
看答案
语音对话是 ASR→LLM→TTS 三段串行,延迟相加。压法:三环都走流式、并行成流水线(LLM 吐第一句就送 TTS),把串行等待变最短。→ 1.12
Q12. 要让一个开源模型扛生产并发,为什么不直接拿 Ollama 上?换什么?显存上最容易忽略什么?
看答案
Ollama 偏单请求、并发差、GPU 易空转。生产换 vLLM 这类引擎(连续批处理 + PagedAttention,同卡吞吐高几倍到几十倍,且是 OpenAI 兼容接口)。显存上最易忽略 KV Cache——它随并发数和上下文长度涨,只按模型权重估显存会 OOM。→ 1.13
第 2 章
Q13. RAG 检索效果差,第一个该排查的是?
看答案
分块(Chunking)——大小、重叠、切分方式。先调好分块再考虑换模型。→ 2.2
Q14. 同一个向量库,能用 A 模型存、B 模型查吗?
看答案
不能。不同 Embedding 模型维度和语义空间不同,必须用同一个模型。换模型 = 整库重建。→ 2.2
Q15. 最简单有效的"防 Agent 失控"措施是?
看答案
在 System Prompt 里写:"遇到不确定或错误就停下来说明、等待指示,不要假设、不要继续。"→ 2.4
Q16. 该不该用通用 Benchmark(MMLU 等)来判断模型对你项目好不好?
看答案
不太够。更有用的是为你的具体场景建自己的评估集。→ 2.5
Q17. AI 服务"HTTP 全是 200、延迟也正常",是不是就说明它健康?
看答案
不是。回答质量会无报错地悄悄退化(改了 Prompt、厂商更新模型、用户问法变了)。必须做第三层质量监控:线上抽样 + LLM-as-judge 打分盯趋势,外加用户反馈。延迟还要看 P95/P99,平均值会骗人。→ 2.9
Q18. 只改了一句 Prompt,代码一行没动,为什么也要走回归测试和灰度?
看答案
因为 AI"代码没动行为也会变",你以为的小改进可能在别的用例上变差。把评估集当回归测试跑(低于基线就拦),再灰度/影子小流量验证,最后锁模型版本可一键回滚。→ 2.10
第 3 章
Q19. 为什么长上下文模型更贵更慢?
看答案
Attention 计算量随输入长度的平方增长。100k→200k,计算量变 4 倍。→ 3.1
Q20. AI 的"性格/价值观"从哪来?
看答案
SFT 阶段的训练数据风格 + RLHF 阶段标注者的偏好。→ 3.3
Q21. 四个场景,分别用 Prompt / RAG / Fine-tune?(a) 200页每月更新的产品文档问答 (b) 固定团队代码风格 (c) 查用户历史订单 (d) 5000份标注合同分类
看答案
(a) RAG (b) Fine-tune (c) Tool Use + RAG (d) Fine-tune。→ 3.4
第 4 章
Q22. MCP 解决了什么问题?
看答案
工具和 AI 的紧耦合:以前每个 AI 平台都要写不同集成。MCP 让工具"写一次、所有支持 MCP 的 AI 都能用"。→ 4.1
Q23. 想让团队所有人 clone 项目后自动拥有同一套 MCP Server,配到哪?
看答案
project 作用域 → 项目根目录的 .mcp.json,提交进 Git。→ 4.2
Q24. "Agent = Model + Harness" 这个公式想说明什么?
看答案
Agent 不只是模型,而是"模型 + 外面那层脚手架",表现一大半来自 Harness。所以调 Agent 常常是在调脚手架,而不是换更强的模型。→ 4.8
Q25. 工具调用报错了,Harness 正确的处理方式是?为什么有效?
看答案
把完整的错误信息/栈喂回给模型,让它自己看着改(Error Recovery)。有效是因为模型很擅长根据具体报错修正自己的参数;只说"失败了"它只能瞎猜。→ 4.8
Q26. "补偿性代码(Compensatory Code)"是干嘛的?举两个例子。
看答案
替模型兜底、补它短板的确定性代码——模型负责"聪明",它负责"靠谱"。例如:用代码精确计数/计算(模型算不准)、JSON schema 强制校验(模型偶尔输出非法 JSON)、权限门禁(拦住危险操作)。→ 4.8
Q27. 上下文工程的目标是"把上下文窗口塞满"吗?
看答案
不是。目标是每一步只放此刻最该看的东西。桌子(窗口)大也要会收拾——塞太多反而稀释重点、"中间迷失"。→ 4.9
Q28. 上下文工程的三大手法是什么?各用一句话。
看答案
①按需注入:用时才把指令/工具/资料放上桌,用完撤走;②压缩(Compaction):旧内容摘成便签、原件收走腾 token;③隔离:子任务在独立上下文里跑,只把结论带回主线程。→ 4.9
Q29. 长任务里 Agent "把前面说的忘了",对照上下文工程,可能怎么解决?
看答案
重要信息别只埋在对话历史里(会被压缩掉)→ 放进 System Prompt / 文件 / 计划清单;或把大任务拆成多个干净的小对话 + 用隔离。→ 4.9
Q30. 让 Agent 跨会话记住用户偏好,正确做法是把所有历史对话都塞进 System Prompt 吗?
看答案
不是,那会撑爆上下文。长期记忆=外部存储(向量库/数据库),按当前需要检索后只注入相关的几条,本质是对"记忆"的一次 RAG。只记有长期价值的,并处理好冲突更新与用户删除权。→ 4.10
Q31. 要 Agent 操作一个只有网页、没有 API 的老后台,选视觉 Computer Use 还是浏览器 Agent?为什么?
看答案
优先浏览器 Agent(基于 DOM/无障碍树 + Playwright),比截图猜坐标稳/快/便宜一个量级。视觉路线留给没有 DOM 的桌面软件。无论哪种都要沙箱隔离 + 对不可逆动作人类确认。→ 4.11
第 5 章 · 深入与落地
RAG 深入
Q32. 基础 RAG 检索为什么常"找不准"?举一个改进手法。
看答案
根因:问题的形态 ≠ 答案的形态(口语 vs 正式措辞)。手法:查询改写、HyDE(先编个假答案去检索)、多路召回、父文档检索。→ 5.1
Q33. "上下文检索(Contextual Retrieval)"是怎么提升召回的?
看答案
嵌入每个块之前,先让 LLM 生成一小段背景说明拼在块前面再 embedding,解决"块太碎、缺主体/时间"的问题。Anthropic 实测大幅降低检索失败率。→ 5.4
Q34. RAG 分哪两层评估?生成层最重要的指标是什么?
看答案
检索层(相关文档召回没有,看 Recall@k)和生成层(答得忠不忠实)。生成层最重要是忠实度:回答每句是否都有检索依据,用 LLM-as-Judge 判。→ 5.3
Q35. 用户问"把这 50 篇周报总结成本季度趋势",朴素 RAG 为什么答不好?该上什么?
看答案
这是全局型问题,没有哪几个片段是答案,而朴素 RAG 只会捞最相关的几段。该上 GraphRAG(离线建知识图谱 + 社区摘要)。含糊/多步的查询则用 Agentic RAG(检索做成工具自主多轮)。先把朴素 RAG+重排做到位再上。→ 5.17
MCP 深入
Q36. MCP 的 Tool 和 Resource 有什么区别?
看答案
Tool = 让 AI"做动作"(查库、下单,AI 决定何时调);Resource = 只读"数据源"(挂文档/配置给 AI 读)。→ 5.6
Q37. 做远程 MCP 服务用什么传输?鉴权要注意什么?
看答案
用 Streamable HTTP(SSE 已淘汰),无状态模式最易部署。鉴权用 OAuth,但别自己手搓,委托给成熟方案;用 MCP Inspector 调试。→ 5.7
Q38. "让 Claude Code 查公司数据库"用 MCP 还是应用内 Tool?为什么?
看答案
MCP。因为客户端是 Claude Code(不是你自己的 App),要跨客户端复用"查库"这个外部能力。自己 App 内用 AI 才用 Function Calling。→ 5.8
Skill 开发
Q39. Skill 的"渐进式披露"三层是什么?解决什么问题?
看答案
①平时只加载 name+description(~100token)②激活才读完整 SKILL.md ③按需才读 reference/跑脚本。解决"装很多 Skill 又不占爆上下文"。→ 5.10
Q40. Skill 的 description 为什么极其重要?
看答案
AI 靠它判断"何时自动触发"这个 Skill。要写清"做什么+什么时候用"并含用户真实说法;写砸了装了也不触发。→ 5.10
模型微调
Q41. 微调 80% 的功夫在哪?数据是什么格式?
看答案
在数据准备(质量>数量、一致性、覆盖分布、划验证集)。格式是 ChatML 的 JSONL,assistant 内容就是你要模型学会的标准输出。→ 5.13
Q42. 本地微调(LoRA→GGUF→Ollama)最常见的翻车点是什么?
看答案
训练时用的 chat template 和 Ollama Modelfile 里的 TEMPLATE 不一致 → 输出乱码/答非所问。两边必须用同一套模板。→ 5.15
Q43. 一个任务该不该微调,决策顺序是怎样的?
看答案
先穷尽 Prompt+Few-shot;缺知识/要实时用 RAG;只有"要稳定的格式/风格/专项准确率、Prompt 搞不定、且有几百+条数据"才微调(敏感数据本地、图省事云端)。→ 5.16
Q44. RAG 召回不准,想到的是微调 Embedding——这一步对吗?正确顺序是?
看答案
先别微调 Embedding(换模型要重算全库向量,代价大)。顺序:①先优化分块/查询 ②加通用 Reranker(性价比最高、不动索引,常立竿见影)③领域术语确实特殊才微调,且难负样本质量决定效果。→ 5.18
第 6 章 · 提示词工程
Q45. 一句话说,提示词到底在"调"模型的什么?
看答案
在巨大的"下一个词"概率分布里圈定情境,让"你要的答案"成为最可能的续写。不是下命令,是设定情境。四杠杆:缩小范围、对齐熟悉形态、引导推理路径、给范例。→ 6.1
Q46. 提示里指令和待处理数据该怎么排?为什么要用分隔符?
看答案
指令在前、长数据在后(紧挨生成位置,对抗"中间迷失");关键约束可结尾重申。分隔符圈住数据:让模型分清指令/数据,且防注入。→ 6.2
Q47. CoT(请一步步思考)该给哪种模型用?
看答案
给普通模型用,引导它先推理更准。推理模型自带思考,硬塞 CoT 多余甚至干扰——直接给目标即可。→ 6.3
Q48. Few-shot 选例子有什么讲究?
看答案
覆盖多样性、包含易错/边界 case、格式完全一致、注意顺序。一个好范例胜过一堆"要专业要简洁"的形容词。→ 6.3
Q49. 想控制输出长度,给"字数"管用还是给"结构"管用?怎么防它编造?
看答案
给结构(一句话结论+N点)比给字数管用,模型对字数不敏感。防编造:限定来源 + 强制引用 + 允许说"不确定/资料没有"。→ 6.4
Q50. 提示注入只靠在提示里写"不要被注入"够吗?
看答案
不够。提示层做分隔+标注数据+核心规则不可覆盖是第一道防线,但最终靠最小权限和输出校验兜底。→ 6.5
Q51. 怎么系统地改进一个提示词,而不是凭感觉瞎改?
看答案
把它当代码:建测试集(含边界/易错/注入)→ 每次只改一处 → 全量跑看数字 → 留更好的版本;失败 case 修好后加进测试集;提示进 Git 做版本管理。→ 6.6
Q52. 代码调试时,提示里最该做的两件事是什么?
看答案
①原样贴完整报错栈(别转述)②让它先解释病因再改,并限制最小改动、别乱重构。→ 6.8
Q53. 一个提示越写越长、越补越乱还是不稳定,该怎么办?
看答案
可能在用提示硬解该用别的手段的问题:任务太杂→拆多步;要稳定格式/风格且数据够→微调;缺知识→RAG;确定性的活→用代码兜底。→ 6.6
Q54. 说出三条提示词反模式。
看答案
堆魔法咒语、成堆的"不要…"(负面指令)、自相矛盾的指令、一个提示塞太多任务、用形容词代替范例、不给上下文让它猜、把数据当指令、不留"不知道"出口、给推理模型堆 CoT、用字数硬控、改了提示不验证。→ 6.10
下一页:决策速查