主题
如何编写题目
本题库采用“一题一文件”的知识图谱结构。所有题目统一存放在 docs/questions/,技术领域通过标签表达,深入过程通过题目关系表达。
必须遵守的规则
- 一道题对应一个 Markdown 文件。
- 文件名使用稳定的英文短名称,例如
stategraph-agent-runtime.md。 - 文件名与
id必须一致,创建后不要修改id(构建会检查)。 - 不按前端、后端、算法建立题目子目录。
- 题目之间的关系必须通过
relations显式声明。 - 简短回答应控制在面试时 30~60 秒可以讲完的长度。
题目模板
复制下面的内容,在 docs/questions/ 中创建文件:
md
---
id: stategraph-agent-runtime
title: 请用 30 秒说明 StateGraph Agent Runtime 的执行流程
aliases:
- Spring AI Alibaba Graph
- StateGraph
- Agent Runtime
tags:
- 30秒基础
- Agent
- StateGraph
relations:
- target: agent-state-checkpoint
type: followup
label: Agent State 和 Checkpoint 怎么设计?
- target: ai-runtime-module-boundaries
type: related
---
# 请用 30 秒说明 StateGraph Agent Runtime 的执行流程
## 30 秒回答
用 2~3 句话写出面试时可以直接口述的答案。
## 详细解释
补充原理、执行顺序和适用场景。
## 示例
```js
const answer = '示例代码或伪代码'
```
## 易错点
- 记录容易混淆或表述错误的地方。字段说明
| 字段 | 说明 |
|---|---|
id | 题目的稳定唯一标识,必须与文件名一致 |
title | 面试官可能直接问出的完整问题 |
aliases | 英文名称、简称或其他常见说法,用于搜索 |
tags | 恰好一个题型标签,加上 2~4 个技术主题标签 |
relations | 与其他题目的显式关系 |
字段集合是封闭的。写入表格之外的字段(例如曾经存在的 difficulty、status)会让构建失败:
difficulty已删除 —— 它曾经 100% 由题型标签决定,且没有任何页面渲染它。status已移到浏览器 localStorage,在题库列表里点击状态按钮切换,不再写进 Markdown。
题型标签
每道题必须且只能包含以下之一,侧边栏和星图分组都依赖这些精确值:
30秒基础、追问、深入、调优、问题排查
关系类型
followup:面试官可能继续追问。prerequisite:回答当前题目前应该掌握,仅用于跨五级链的真实前置。related:横向相关知识。contrast:经常放在一起比较。
只声明一个方向
反向关系由渲染层推导,不要在两侧都写:
- 你把 B 声明为
followup,B 的页面会自动把你显示为「前置知识」。 related和contrast语义对称,声明一侧即可,两侧都会显示。
构建会拒绝互为镜像的 followup / prerequisite,以及双向声明的 related / contrast。重复声明会让同一个邻居在题目页的「知识关系」列表里出现两次。
如果目标题目尚未创建,可以先不添加关系,等目标文件存在后再补充,避免产生失效链接。
编写建议
- 标题使用完整问题,例如“数据库索引为什么能提高查询速度?”。
aliases同时记录中文简称和英文术语,提高搜索命中率。- 正文主要包含面试回答、详细解释、示例和易错点。
- 常见追问如果值得独立回答,应创建为新题目并用
followup连接,不要全部堆在当前文件中。