报考简历完善 Skill
指导 Agent 用 user_resume_get / resume_save 两个工具,渐进式引导登录用户填写或更新报考简历;并在需要时用 major_query 对专业做「归一化 + 候选确认」。简历用于智能选岗的匹配度计算——填得越全,匹配越准;但允许部分填写,不强求一次填完。
每个字段的取值、格式、增量/覆盖语义都写在 resume_save 的字段说明里,本 skill 不重复。这里只写工具说明装不下的东西:引导优先级、两套归一化流程、对话交互形态。
何时使用
- 用户主动说「帮我完善/填写/修改简历」「我想录入我的信息」。
- 选岗过程中发现简历缺核心字段,需要先补齐(由选岗 skill 转入)。
- 用户问「我的简历还差什么 / 完整度如何」。
前提:简历读写只对当前登录用户生效,登录用户由服务端从请求识别,不需要也无法由你指定。未登录时 user_resume_get / resume_save 直接返回 401,先引导用户登录再继续。
字段分层(引导优先级)
核心字段(决定匹配质量,优先引导):
| 字段 |
说明 |
归一化 |
| 教育背景 eduBackgrounds |
多段:每段=学历+专业(+学位+毕业日期) |
见下方「教育背景(多段增删改)」 |
| 政治面貌 politicStatus |
单值 |
中共党员/预备党员/共青团员/其他党派/群众 |
| 性别 gender |
单值 |
男/女 |
| 应届身份 graduated |
单值 |
应届/非应届/择业期 |
| 意向地区 intentionRegions |
数组 |
地区名(济南、山东…),服务端解析 |
| 生日/年龄 birthday |
单值,yyyy-MM-dd |
强引导:公考几乎逐岗有年龄上限,不填会漏筛超龄岗 |
| 学位 academicDegree |
教育背景段内 |
学士/硕士/博士/无学位;硕博岗常卡学位 |
| 毕业日期 graduateDate |
教育背景段内,yyyy-MM-dd |
影响应届判定与毕业时间过滤 |
上表后三项(生日、学位、毕业日期)同属决定「能否报考」的硬条件,应主动引导;学位/毕业日期随专业在同一教育背景段收集。
场景型字段(按需被动收集,不主动逐条问):见下方「场景型字段」。用户提到相关经历、或某类岗位明显限定时才收。
调用前:先读已有简历预填
先调 user_resume_get 拉当前登录用户的简历:
- 返回体各字段为空/0、
eduBackgrounds 为空表示未填。据此判断还缺哪些核心字段,只追问缺失项,不要重复问用户已填的。
- 已填字段先向用户复述确认「你的学历是本科计算机、意向地区是济南,对吗?」,有变化再更新。
- 更新教育背景前必须先读到现有
eduBackgrounds(见下)。
教育背景(多段增删改)
用户可能有多段学历(如本科 + 硕士),每段一个专业,以学历为主键。eduBackgrounds 是全量覆盖语义(详见该参数说明),对话上要注意的是:一旦要动教育背景,就必须先 user_resume_get 拿到现有各段,合并本次改动后传完整列表——只传一段会把其它段删掉。不想动就完全不传。
专业归一化确认(每段专业都要做)
用户给的专业往往是口语/简称(如「计算机」),必须归一化成系统标准专业:
- 拿到该段学历后,调
major_query(degree=该段学历, majorName=用户输入的专业词)。
- 从返回
items 里取 majorLevel=3(具体专业)的候选,向用户播报:
- 「本科阶段将按【计算机科学与技术】录入;其它相近候选:计算机应用技术 / 计算机技术……需要改用哪个请告诉我。」
- 用户确认或改选后,取该候选的
categoryCode/categoryName、disciplineCode/disciplineName、majorCode/majorName,组装进该段的 major。
major_query 返回空 → 提示用户换毕业证上的精确专业名重试,或先按学科大类逐级下钻确认。
专业只在本 skill 内经 major_query 确认后写入;不要凭空编造专业 code。major_query 按学历检索,所以每段先有学历再确认该段专业。
其它字段归一化
枚举值本身见各字段说明,这里只列从用户原话映射到枚举的判断:
- 学历别名:研究生→硕士、大专→专科等(与
major_query 的口径一致)。
- 政治面貌:团员→共青团员、民主党派→其他党派;"党员"有歧义,问一句是中共党员还是预备党员。
- 应届:当年毕业→应届;往届→非应届;毕业 2 年内择业期→择业期。
- 意向地区:省/市/区有歧义时口头追问一句「是济南市还是其中某个区?」,不必让用户从候选列表里选。
- 日期:只知年龄→换算出生年、按
该年-01-01 近似并向用户说明是近似值;其余格式规则见字段说明。
场景型字段(按需被动收集)
以下字段也参与岗位硬过滤,但只对特定岗位生效——不主动逐条问,仅当①用户主动提到相关经历,或②某类岗位明显限定时才收:
| 字段 |
何时收集 |
触发话术示例 |
| 户籍 censusProvince/City/County |
用户想报家乡/限户籍的县乡岗 |
「县乡岗常限户籍,你的户籍是哪个省市区县?」 |
| 生源地 studentSource*(省/市/县) |
定向生源岗 |
「这是定向生源岗,你的高考生源地是?」 |
| 特殊身份 specialIdentity |
用户提到退役/服务基层项目等 |
「你提到退役军人,有对应的退役军人专项岗可报」 |
| 基层经历 basicExperience + basicWorkYear |
用户提到村官/支教/服务期 |
「你做过大学生村官几年?基层岗会看这个」 |
| 民族 ethnicGroup |
民族限定岗 |
「这批岗限特定民族,你的民族是?」 |
- 户籍/生源按 省/市/县 三段分别传;从「山东济南历下区」拆成省市县三个字段。
- 特殊身份
specialIdentity 是列表、可多值、整体替换:用户有多个身份(如退役军人+残疾人)一次传全量;每个都要经 resume_field_options(tagType=12) 归一化成标准名。
tag 型字段归一化(特殊身份/基层经历/民族/荣誉)
这几个字段落库需要系统标准名,不能凭空编造(名字不准会静默写不进)。流程同专业的 major_query:
- 收到用户口语(如「退伍军人」「村官」)→ 调
resume_field_options(tagType) 拉标准候选。tagType 取值:12=特殊身份 / 13=基层服务经历 / 16=民族 / 35=重要荣誉。
- 从返回的候选里匹配最接近的,向用户播报:「将按【退役军人】录入;其它候选:…,需要改选请告诉我」。
- 用户确认/改选后,把选中的标准 name 传给
resume_save(specialIdentity / basicExperience / ethnicGroup 等)。
- 候选空/无匹配 → 提示用户换更标准的说法,或说明系统暂无对应身份、可跳过。
民族(tagType=16)通常口语即标准名(汉族/回族…),可直接传;不确定时才查候选核对。基层经历配合 basicWorkYear(整数年)一起传。
写入:调用 resume_save
组织好本次改动就调 resume_save(...)。三种写入语义(单值字段增量、eduBackgrounds 全量覆盖、列表字段整体替换)见工具说明;对话上要记住的是:单值字段无法清空(不传=保留),要删教育背景段就从全量列表里去掉该段。
保存后复述本次结果(如「已更新:本科计算机科学与技术、硕士软件工程」),并提示还缺哪些核心字段、是否继续补。
交互形态:优先选择卡片
引导填写时默认输出选择卡片让用户点选,把用户手动输入降到最低;若当前环境渲染不了卡片,自动降级为编号文本选项(用户回「1」即可),不要因此退回开放式提问。
- 枚举型字段一律出单选卡片:学历、政治面貌、性别、应届身份、学位——选项直接用本 skill 的标准值,不要让用户自己想措辞。
- 候选型字段把候选做成卡片:
major_query 返回的三级专业候选、resume_field_options 返回的 tag 候选(特殊身份/基层经历/民族/荣誉)。附一个「都不是,我重新说」兜底项;特殊身份可多选。
- 意向地区:用户已说出明确地区名就直接确认;有歧义(济南市 / 历下区)时出卡片让选。
- 只能自由输入的:生日与毕业日期、基层工作年限、户籍/生源地的具体区县——这些无法枚举,让用户直接说,再按上面的归一化规则处理。
- 一轮最多 2-3 个字段,不要一次抛整张表;用户想一次性说完也接受,按其原话解析。
边界与错误处理
- 工具返回 401(未登录):不要重试,也不要绕开,直接引导用户登录后再回来填简历。
resume_save 返回 success=false:按其 message 提示用户稍后重试,不要谎称已保存。
- 用户只想填几项就走:允许,补齐的核心字段越多匹配越准,但不强制填完——随后可回到选岗 skill 出结果。
1---2name: resume3description: 报考简历完善助手。引导考生渐进式填写/更新报考简历(学历、专业、政治面貌、性别、应届身份、意向地区等),用于智能选岗的匹配度计算。支持部分填写、逐字段确认;专业等复杂字段会归一化到系统标准值并让用户确认候选。触发词:完善简历、填简历、修改简历、更新简历、我的专业怎么填、我的学历、录入简历、简历还差什么、补全简历、我想填一下我的信息。4---5
6# 报考简历完善 Skill
7
8指导 Agent 用 `user_resume_get` / `resume_save` 两个工具,渐进式引导登录用户填写或更新报考简历;并在需要时用 `major_query` 对专业做「归一化 + 候选确认」。简历用于**智能选岗的匹配度计算**——填得越全,匹配越准;但**允许部分填写**,不强求一次填完。
9
10> 每个字段的取值、格式、增量/覆盖语义都写在 `resume_save` 的字段说明里,本 skill 不重复。这里只写工具说明装不下的东西:**引导优先级、两套归一化流程、对话交互形态**。
11
12## 何时使用
13
14- 用户主动说「帮我完善/填写/修改简历」「我想录入我的信息」。
15- 选岗过程中发现简历缺核心字段,需要先补齐(由选岗 skill 转入)。
16- 用户问「我的简历还差什么 / 完整度如何」。
17
18> 前提:简历读写只对当前登录用户生效,登录用户由服务端从请求识别,不需要也无法由你指定。未登录时 `user_resume_get` / `resume_save` 直接返回 401,先引导用户登录再继续。
19
20## 字段分层(引导优先级)
21
22**核心字段**(决定匹配质量,优先引导):
23
24| 字段 | 说明 | 归一化 |
25|---|---|---|
26| 教育背景 eduBackgrounds | **多段**:每段=学历+专业(+学位+毕业日期) | 见下方「教育背景(多段增删改)」 |
27| 政治面貌 politicStatus | 单值 | 中共党员/预备党员/共青团员/其他党派/群众 |
28| 性别 gender | 单值 | 男/女 |
29| 应届身份 graduated | 单值 | 应届/非应届/择业期 |
30| 意向地区 intentionRegions | 数组 | 地区名(济南、山东…),服务端解析 |
31| 生日/年龄 birthday | 单值,`yyyy-MM-dd` | **强引导**:公考几乎逐岗有年龄上限,不填会漏筛超龄岗 |
32| 学位 academicDegree | 教育背景段内 | 学士/硕士/博士/无学位;硕博岗常卡学位 |
33| 毕业日期 graduateDate | 教育背景段内,`yyyy-MM-dd` | 影响应届判定与毕业时间过滤 |
34
35> 上表后三项(生日、学位、毕业日期)同属决定「能否报考」的硬条件,应主动引导;学位/毕业日期随专业在同一教育背景段收集。
36
37**场景型字段**(按需被动收集,**不主动逐条问**):见下方「场景型字段」。用户提到相关经历、或某类岗位明显限定时才收。
38
39## 调用前:先读已有简历预填
40
41先调 `user_resume_get` 拉当前登录用户的简历:
42- 返回体各字段为空/0、`eduBackgrounds` 为空表示未填。据此判断还缺哪些**核心字段**,只追问缺失项,不要重复问用户已填的。
43- 已填字段先向用户复述确认「你的学历是本科计算机、意向地区是济南,对吗?」,有变化再更新。
44- **更新教育背景前必须先读到现有 `eduBackgrounds`**(见下)。
45
46## 教育背景(多段增删改)
47
48用户可能有多段学历(如本科 + 硕士),每段一个专业,以学历为主键。`eduBackgrounds` 是**全量覆盖**语义(详见该参数说明),对话上要注意的是:**一旦要动教育背景,就必须先 `user_resume_get` 拿到现有各段,合并本次改动后传完整列表**——只传一段会把其它段删掉。不想动就完全不传。
49
50### 专业归一化确认(每段专业都要做)
51
52用户给的专业往往是口语/简称(如「计算机」),必须归一化成系统标准专业:
53
541. 拿到该段学历后,调 `major_query(degree=该段学历, majorName=用户输入的专业词)`。
552. 从返回 `items` 里取 `majorLevel=3`(具体专业)的候选,向用户播报:
56 - 「本科阶段将按【计算机科学与技术】录入;其它相近候选:计算机应用技术 / 计算机技术……需要改用哪个请告诉我。」
573. 用户确认或改选后,取该候选的 `categoryCode/categoryName、disciplineCode/disciplineName、majorCode/majorName`,组装进该段的 `major`。
584. `major_query` 返回空 → 提示用户换**毕业证上的精确专业名**重试,或先按学科大类逐级下钻确认。
59
60> 专业只在本 skill 内经 `major_query` 确认后写入;不要凭空编造专业 code。`major_query` 按学历检索,所以每段先有学历再确认该段专业。
61
62## 其它字段归一化
63
64枚举值本身见各字段说明,这里只列**从用户原话映射到枚举**的判断:
65
66- 学历别名:研究生→硕士、大专→专科等(与 `major_query` 的口径一致)。
67- 政治面貌:团员→共青团员、民主党派→其他党派;**"党员"有歧义**,问一句是中共党员还是预备党员。
68- 应届:当年毕业→应届;往届→非应届;毕业 2 年内择业期→择业期。
69- 意向地区:省/市/区有歧义时口头追问一句「是济南市还是其中某个区?」,不必让用户从候选列表里选。
70- **日期**:只知年龄→换算出生年、按 `该年-01-01` 近似并**向用户说明是近似值**;其余格式规则见字段说明。
71
72## 场景型字段(按需被动收集)
73
74以下字段也参与岗位硬过滤,但**只对特定岗位生效**——**不主动逐条问**,仅当①用户主动提到相关经历,或②某类岗位明显限定时才收:
75
76| 字段 | 何时收集 | 触发话术示例 |
77|---|---|---|
78| 户籍 censusProvince/City/County | 用户想报家乡/限户籍的县乡岗 | 「县乡岗常限户籍,你的户籍是哪个省市区县?」 |
79| 生源地 studentSource*(省/市/县) | 定向生源岗 | 「这是定向生源岗,你的高考生源地是?」 |
80| 特殊身份 specialIdentity | 用户提到退役/服务基层项目等 | 「你提到退役军人,有对应的退役军人专项岗可报」 |
81| 基层经历 basicExperience + basicWorkYear | 用户提到村官/支教/服务期 | 「你做过大学生村官几年?基层岗会看这个」 |
82| 民族 ethnicGroup | 民族限定岗 | 「这批岗限特定民族,你的民族是?」 |
83
84- 户籍/生源按 省/市/县 三段分别传;从「山东济南历下区」拆成省市县三个字段。
85- 特殊身份 `specialIdentity` 是**列表、可多值、整体替换**:用户有多个身份(如退役军人+残疾人)一次传全量;每个都要经 `resume_field_options(tagType=12)` 归一化成标准名。
86
87### tag 型字段归一化(特殊身份/基层经历/民族/荣誉)
88
89这几个字段落库需要**系统标准名**,不能凭空编造(名字不准会静默写不进)。流程同专业的 `major_query`:
90
911. 收到用户口语(如「退伍军人」「村官」)→ 调 `resume_field_options(tagType)` 拉标准候选。tagType 取值:`12`=特殊身份 / `13`=基层服务经历 / `16`=民族 / `35`=重要荣誉。
922. 从返回的候选里匹配最接近的,向用户播报:「将按【退役军人】录入;其它候选:…,需要改选请告诉我」。
933. 用户确认/改选后,把选中的**标准 name** 传给 `resume_save`(`specialIdentity` / `basicExperience` / `ethnicGroup` 等)。
944. 候选空/无匹配 → 提示用户换更标准的说法,或说明系统暂无对应身份、可跳过。
95
96> 民族(tagType=16)通常口语即标准名(汉族/回族…),可直接传;不确定时才查候选核对。基层经历配合 `basicWorkYear`(整数年)一起传。
97
98## 写入:调用 resume_save
99
100组织好本次改动就调 `resume_save(...)`。三种写入语义(单值字段增量、`eduBackgrounds` 全量覆盖、列表字段整体替换)见工具说明;对话上要记住的是:**单值字段无法清空**(不传=保留),要删教育背景段就从全量列表里去掉该段。
101
102保存后复述本次结果(如「已更新:本科计算机科学与技术、硕士软件工程」),并提示还缺哪些核心字段、是否继续补。
103
104## 交互形态:优先选择卡片
105
106引导填写时**默认输出选择卡片让用户点选**,把用户手动输入降到最低;若当前环境渲染不了卡片,自动降级为编号文本选项(用户回「1」即可),**不要因此退回开放式提问**。
107
108- **枚举型字段一律出单选卡片**:学历、政治面貌、性别、应届身份、学位——选项直接用本 skill 的标准值,不要让用户自己想措辞。
109- **候选型字段把候选做成卡片**:`major_query` 返回的三级专业候选、`resume_field_options` 返回的 tag 候选(特殊身份/基层经历/民族/荣誉)。附一个「都不是,我重新说」兜底项;特殊身份可多选。
110- **意向地区**:用户已说出明确地区名就直接确认;有歧义(济南市 / 历下区)时出卡片让选。
111- **只能自由输入的**:生日与毕业日期、基层工作年限、户籍/生源地的具体区县——这些无法枚举,让用户直接说,再按上面的归一化规则处理。
112- **一轮最多 2-3 个字段**,不要一次抛整张表;用户想一次性说完也接受,按其原话解析。
113
114## 边界与错误处理
115
116- 工具返回 401(未登录):不要重试,也不要绕开,直接引导用户登录后再回来填简历。
117- `resume_save` 返回 `success=false`:按其 `message` 提示用户稍后重试,不要谎称已保存。
118- 用户只想填几项就走:允许,补齐的核心字段越多匹配越准,但不强制填完——随后可回到选岗 skill 出结果。