feat: IMAP mail sync with thread-to-contact matching (PRD §6.1)
Real IMAP connection via imapflow library: - Connects to IMAP server (IMAPFlow, TLS on port 993) - Fetches recent messages (configurable limit, default 20) - Extracts: from, fromEmail, subject, date, snippet (200 chars) - Thread-to-contact matching (PRD §6.1): 1. Match sender email against persons table 2. If no person match, extract domain and match against company.website 3. Returns matchedCompany + matchedPerson for each email - Audit-logged (action: crm.mailsync:imap) - Zod validated (host, port, user, password, folder, limit) - 502 on IMAP connection failure with detail - 400 on validation failure Tested: invalid creds → 502 'IMAP connection failed', missing host → 400
This commit is contained in:
1 parent
7acc0c5451
commit
e45b68bb8b
1089 files changed
+260614
No files matched your search
Executable
+66
@@ -0,0 +1,66 @@
|
||||
---
|
||||
name: gaokao-recommend-majors
|
||||
description: >-
|
||||
基于考生画像与 API 志愿列表,由 Agent 分析推荐适合的专业方向、就业出口与具体专业清单,
|
||||
输出结构化 major_recommendation.json。适用于高考专业推荐、选专业、就业方向分析。
|
||||
---
|
||||
|
||||
# 推荐专业与就业方向
|
||||
|
||||
本 Skill 是流水线的**第三步**:纯 Agent 分析,无规则脚本。结合考生兴趣、成绩、就业意向与 `parsed.json` 中的真实专业,产出个性化专业推荐。
|
||||
|
||||
## 上下游
|
||||
|
||||
- **上游**:`student.json` + `parsed.json`(来自信息采集与获取志愿)
|
||||
- **下游**:[gaokao-recommend-schools](../gaokao-recommend-schools/SKILL.md) 读取 `major_recommendation.json`
|
||||
|
||||
## 输入
|
||||
|
||||
1. `student.json` — 考生完整画像
|
||||
2. `parsed.json` — 冲/稳/保志愿及每校 `majors`(含 `claim` 选科要求、录取概率)
|
||||
|
||||
## Agent 分析任务
|
||||
|
||||
1. 阅读 [career_reference.md](career_reference.md) 了解常见专业大类与就业出口(**参考,非硬规则**)。
|
||||
2. 综合选科要求、各科成绩、兴趣、家庭、就业方向,判断 2–4 个**专业方向**(`major_directions`)。
|
||||
3. 从 `parsed.json` 中挑选 **8–15 个**最契合的具体专业,写入 `recommended_majors`。
|
||||
4. 撰写综合开篇 `intro` 与整体策略 `strategy`(专业优先视角)。
|
||||
|
||||
## 硬性约束
|
||||
|
||||
`recommended_majors` 每项的 `university_name`、`university_code`、`major_name`、`major_code` 必须与 `parsed.json` **完全一致**,否则最终报告无法显示 🔥 标签。
|
||||
|
||||
生成前在 `parsed.json` 中检索确认字段值。
|
||||
|
||||
## 输出
|
||||
|
||||
保存为 `output/major_recommendation.json`,结构见 [examples/major_recommendation_template.json](examples/major_recommendation_template.json)。
|
||||
|
||||
```json
|
||||
{
|
||||
"student": { "...辅助画像字段..." },
|
||||
"intro": "综合测评开篇(HTML 可用 <strong>)",
|
||||
"strategy": "填报策略(专业视角)",
|
||||
"major_directions": [
|
||||
{ "icon": "🧑💻", "title": "...", "match_level": "极高", "description": "..." }
|
||||
],
|
||||
"recommended_majors": [
|
||||
{
|
||||
"major_name": "...",
|
||||
"major_code": "...",
|
||||
"university_name": "...",
|
||||
"university_code": "...",
|
||||
"modal": { "title": "...", "body": "<h4>...</h4><ul>...</ul>" }
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 向用户交付
|
||||
|
||||
- 保存 JSON 绝对路径
|
||||
- 用自然语言解读推荐的专业方向与 Top 专业理由
|
||||
|
||||
## 附加资源
|
||||
|
||||
- [career_reference.md](career_reference.md) — 专业/职业方向参考
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
# 专业与职业方向参考(供 Agent 分析时查阅)
|
||||
|
||||
本文档为**参考知识库**,不替代个性化判断。Agent 应结合考生画像、`parsed.json` 中的真实志愿数据,产出 `analysis.json`。
|
||||
|
||||
---
|
||||
|
||||
## 分析维度(Agent 必须考虑)
|
||||
|
||||
| 维度 | 说明 |
|
||||
|------|------|
|
||||
| 选科与专业要求 | 核对 `claim` 字段(如「物且化」),避免推荐选科不符的专业 |
|
||||
| 各科成绩 | 数学/物理强 → 工科、计算机、电子信息;生物/化学强 → 医学、生命科学;语文/英语强 → 经管、法学、人文 |
|
||||
| 兴趣爱好 | 映射到具体专业大类,而非泛泛而谈 |
|
||||
| 就业方向 | 区分「首选方向」与「备选方向」,说明理由 |
|
||||
| 家庭情况 | 深造意愿、经济承受力、地域偏好、是否接受长线培养(如医学) |
|
||||
| 城市机会 | 意向城市产业与实习/就业资源 |
|
||||
| 录取概率 | 结合冲/稳/保档位,说明为何将该校/专业标为推荐 |
|
||||
|
||||
**硬性约束**:`recommended_majors` / `recommended_schools` 中的 `university_name`、`university_code`、`major_name`、`major_code` 必须来自 `parsed.json`,否则 HTML 无法打上推荐标签。
|
||||
|
||||
---
|
||||
|
||||
## 常见专业方向与职业出口
|
||||
|
||||
### 🧑💻 信息与硬核科技
|
||||
|
||||
| 专业大类 | 典型专业名关键词 | 就业出口 | 培养特点 |
|
||||
|----------|------------------|----------|----------|
|
||||
| 计算机类 | 计算机、软件、人工智能、大数据 | 互联网、AI、金融科技、游戏 | 就业面广,竞争激烈,需持续学习 |
|
||||
| 电子信息类 | 电子信息、通信、微电子、集成电路 | 芯片、通信设备、消费电子 | 硬核科技核心,数理要求高 |
|
||||
| 自动化类 | 自动化、机器人、控制 | 智能制造、自动驾驶、工业软件 | 交叉学科,工科基础扎实 |
|
||||
|
||||
**适合考生**:数理成绩突出、对编程/科技有兴趣、家庭支持深造或接受高强度学习。
|
||||
|
||||
---
|
||||
|
||||
### 🩺 医药卫生
|
||||
|
||||
| 专业大类 | 典型专业名关键词 | 就业出口 | 培养特点 |
|
||||
|----------|------------------|----------|----------|
|
||||
| 临床医学 | 临床医学、口腔医学 | 三甲医院、基层医疗、科研 | 学制长(5+),考研/规培常见 |
|
||||
| 基础/预防医学 | 基础医学、预防医学、公共卫生 | 疾控、科研、公卫管理 | 偏研究与管理 |
|
||||
| 药学/护理 | 药学、护理学 | 制药企业、医院护理岗 | 就业相对稳定 |
|
||||
|
||||
**适合考生**:生物/化学较好、能接受长周期培养、家庭支持读研、追求职业稳定性。
|
||||
|
||||
---
|
||||
|
||||
### ⚙️ 工科与先进制造
|
||||
|
||||
| 专业大类 | 典型专业名关键词 | 就业出口 | 培养特点 |
|
||||
|----------|------------------|----------|----------|
|
||||
| 机械/车辆 | 机械、车辆、智能制造 | 汽车、装备制造、新能源 | 传统工科底盘稳 |
|
||||
| 航空航天 | 航空航天、飞行器 | 军工、航天、民航 | 院校集中,国防七子值得关注 |
|
||||
| 电气/能源 | 电气、能源动力、新能源 | 电网、新能源、电力设备 | 国企/央企机会多 |
|
||||
| 材料/土木 | 材料、土木、建筑 | 基建、新材料、房地产相关 | 行业周期性强,需结合城市 |
|
||||
|
||||
**适合考生**:物理扎实、偏好实体产业、可接受工程师成长路径。
|
||||
|
||||
---
|
||||
|
||||
### 📊 经济金融与管理
|
||||
|
||||
| 专业大类 | 典型专业名关键词 | 就业出口 | 培养特点 |
|
||||
|----------|------------------|----------|----------|
|
||||
| 金融学/经济学 | 金融、经济、财政 | 银行、证券、咨询、企业财务 | 名校与实习资源重要 |
|
||||
| 工商管理 | 工商管理、市场营销、会计学 | 企业管理、审计、运营 | 宽口径,需尽早积累实习 |
|
||||
| 统计学 | 统计学、经济统计 | 数据分析、风控、研究岗 | 数理+商业复合 |
|
||||
|
||||
**适合考生**:语文英语较好、沟通能力强、意向一线城市金融/商科资源。
|
||||
|
||||
---
|
||||
|
||||
### ⚖️ 法学、教育与公共服务
|
||||
|
||||
| 方向 | 关键词 | 说明 |
|
||||
|------|--------|------|
|
||||
| 法学 | 法学、知识产权 | 法考门槛,就业分化大 |
|
||||
| 师范/教育 | 师范、教育学、心理学 | 稳定性高,需关注部属/省属师范 |
|
||||
| 公共管理 | 行政管理、公共事业管理 | 考公、事业单位方向 |
|
||||
|
||||
---
|
||||
|
||||
## 意向城市与产业参考
|
||||
|
||||
| 城市 | 优势产业与就业特点 |
|
||||
|------|-------------------|
|
||||
| 北京 | 互联网总部、央企、科研院所、金融总部密集;实习与深造资源丰富 |
|
||||
| 上海 | 金融、外企、生物医药、集成电路;国际化程度高 |
|
||||
| 深圳 | 硬科技、互联网、创新创业;民营与科技企业活跃 |
|
||||
| 杭州 | 电商、数字经济、AI 应用;阿里系及创业公司生态 |
|
||||
| 武汉 | 光谷科创、高校资源、制造业;性价比高的中部枢纽 |
|
||||
| 成都 | 游戏、互联网、电子信息;新一线生活成本相对友好 |
|
||||
| 西安 | 航空航天、电子信息、军工;科教底蕴深厚 |
|
||||
| 广州 | 大湾区制造、医疗、贸易;省属高校与产业结合紧密 |
|
||||
| 南京 | 软件、先进制造、高校云集 |
|
||||
| 天津 | 制造业、港口经济、工科院校集中 |
|
||||
|
||||
---
|
||||
|
||||
## 院校层次速查(辅助学校推荐)
|
||||
|
||||
| 标签 | 填报策略提示 |
|
||||
|------|--------------|
|
||||
| 985 / 双一流 | 冲/稳核心目标,关注优势学科与保研率 |
|
||||
| 211 | 稳/保主力,结合城市与专业排名 |
|
||||
| 保研资格 | 有深造计划时优先加权 |
|
||||
| 部属 / 省属 | 师范、医学等行业认可度高 |
|
||||
| 国防七子 / 军工六校 | 工科、国防相关方向 |
|
||||
|
||||
---
|
||||
|
||||
## 产出建议数量
|
||||
|
||||
| 字段 | 建议数量 | 说明 |
|
||||
|------|----------|------|
|
||||
| `major_directions` | 2–4 条 | 按匹配度排序,每条含个性化描述 |
|
||||
| `recommended_majors` | 8–15 条 | 覆盖冲/稳/保,优先「稳」档核心专业 |
|
||||
| `recommended_schools` | 6–12 所 | 去重院校,冲稳保均有代表 |
|
||||
|
||||
`modal.body` 使用 HTML 片段(`<h4>`、`<ul>`、`<li>`、`<strong>`),内容需**针对该考生**撰写,避免模板化套话。
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"student": {
|
||||
"interests": "与 student.json 一致的辅助画像",
|
||||
"family_situation": "...",
|
||||
"career_direction": "...",
|
||||
"subject_scores": { "语文": 0, "数学": 0 },
|
||||
"preferred_cities": ["北京"],
|
||||
"notes": "..."
|
||||
},
|
||||
"intro": "综合测评开篇(可用 <strong> 强调,结合省份/分数/选科/兴趣)",
|
||||
"strategy": "整体填报策略(专业优先还是院校优先、冲稳保主线)",
|
||||
"major_directions": [
|
||||
{
|
||||
"icon": "🧑💻",
|
||||
"title": "前沿信息与硬核科技类",
|
||||
"match_level": "极高 | 高 | 较高 | 一般",
|
||||
"description": "匹配度说明 + 就业出口 + 针对该考生的具体建议(可用 HTML)"
|
||||
}
|
||||
],
|
||||
"recommended_majors": [
|
||||
{
|
||||
"major_name": "必须与 parsed.json 完全一致",
|
||||
"major_class": "可选",
|
||||
"major_code": "必须与 parsed.json 完全一致",
|
||||
"university_name": "必须与 parsed.json 完全一致",
|
||||
"university_code": "必须与 parsed.json 完全一致",
|
||||
"modal": {
|
||||
"title": "专业推荐:专业名称",
|
||||
"body": "<h4>核心推荐维度</h4><ul><li><strong>可就业方向:</strong>...</li><li><strong>职业发展路径:</strong>...</li><li><strong>匹配理由:</strong>...</li></ul>"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user