docs(course): 建立Agent学习路线并新增第一课

This commit is contained in:
bruce
2026-08-28 15:44:21 +08:00
parent ddab9242c7
commit 38f1b15d1c
14 changed files with 870 additions and 142 deletions
+39 -7
View File
@@ -1,18 +1,20 @@
# JobRadar · 职途雷达
JobRadar 是一套面向个人使用的智能岗位发现与决策系统。项目计划从指定招聘网站采集岗位信息,依据可配置规则完成筛选,并结合联网检索与大模型分析补充企业性质、岗位匹配度、判断依据和置信度,最终形成可追溯的个人岗位库。
JobRadar 是一套面向个人使用、以 Agent 为核心的智能岗位发现与决策系统。Agent 根据用户目标制定执行步骤,调用岗位采集、企业调查、规则筛选、评分和数据持久化工具,完成多步骤任务,并将过程、证据和结果展示在 WebUI 中。
> 当前项目处于基础骨架阶段,已完成 Django 工程初始化;岗位采集、企业研判、评分、异步任务和业务页面均在后续迭代范围内。
## 项目目标
- 通过独立站点适配器采集授权范围内的岗位信息。
- 使用正规的 Agent 运行循环完成任务规划、工具调用、状态延续和结果输出。
- 通过独立站点工具采集授权范围内的岗位信息。
- 统一不同来源的岗位字段,并识别重复岗位和内容变化。
- 使用硬性规则优先排除明显不符合要求的岗位。
- 联网补充企业主体、企业性质和行业等信息,保留来源与查询时间。
- 按可配置权重计算岗位匹配分,输出推荐理由和风险提示。
- 提供适合个人使用的岗位管理、收藏、忽略和投递跟踪页面。
- 保留原始数据、规则版本和分析证据,使每项结论可以复核。
- 展示 Agent 的执行轨迹、工具调用、耗时、失败原因和人工确认节点,用于学习与项目展示。
## 技术栈
@@ -26,7 +28,11 @@ JobRadar 是一套面向个人使用的智能岗位发现与决策系统。项
| 普通请求 | HTTPX | 规划中 |
| 异步任务 | Celery + Redis | 规划中 |
| 定时调度 | Celery Beat | 规划中 |
| AI 分析 | 兼容 OpenAI 接口的模型服务 | 规划中 |
| Agent 运行时 | OpenAI Agents SDK(Python) | 规划中 |
| 模型接口 | OpenAI Responses API | 规划中 |
| Agent 输出 | Pydantic 结构化模型 | 规划中 |
| 可观测性 | Agents SDK Tracing + 业务运行记录 | 规划中 |
| Agent 评测 | 官方 Agent Evals 思路 + 本地评测集 | 规划中 |
| 用户系统 | Django 内置认证 + 简化用户资料 | 规划中 |
| WebUI | Django Admin + 自定义 Django 页面 | 规划中 |
| 部署 | Docker Compose + Nginx/Caddy + HTTPS | 规划中 |
@@ -58,12 +64,27 @@ companies/ 企业主体及企业证据
crawlers/ 招聘网站采集适配器
screening/ 硬性筛选规则
ranking/ 权重评分
ai_analysis/ 语义分析及结构化输出
agent_runtime/ Agent 定义、运行上下文与编排入口
agent_tools/ 采集、检索、筛选、评分和持久化工具
evals/ Agent 行为评测用例与结果
task_center/ 采集、分析与调度任务
audit/ 日志、证据与版本追踪
```
详细边界参见 [架构设计](docs/architecture.md),开发顺序参见 [实施路线图](docs/roadmap.md)。
详细边界参见 [架构设计](docs/architecture.md),Agent 的目标、工具和状态约定参见 [Agent 契约](docs/agent-contract.md),开发顺序参见 [实施路线图](docs/roadmap.md)。
## 学习与开发方式
JobRadar 同时是实际项目和 Agent 学习项目,采用“逐阶段、逐课、手动实现”的协作方式:
1. 我先说明本课目标、核心原理以及它在完整系统中的位置。
2. 对照 Java、Spring 和常见后端设计解释 Python、Django 与 Agents SDK 的差异。
3. 我提供本课所需的完整参考代码、运行命令、预期结果和常见错误。
4. 你根据讲解亲手把代码写入 JobRadar,不直接复制一个已完成项目。
5. 你完成后,我检查正确性、可读性、Agent 设计和安全边界,并解释问题。
6. 当前一课达到验收标准后,再开始下一课。
默认情况下,我不会直接替你写入业务代码,也不会一次性生成后续全部模块。只有你明确要求我落地某段代码时,我才修改项目文件。详细约定参见 [学习协作说明](docs/learning-guide.md)。
## 本地运行
@@ -153,12 +174,23 @@ python -m playwright install chromium
## 开发约定
- 一个招聘网站对应一个采集适配器,禁止把站点特有解析逻辑写入公共业务模块。
- Agent 通过类型明确的工具完成外部操作,不在提示词中伪造浏览、查询或入库结果。
- 第一版只实现一个岗位研究 Agent;只有单 Agent 难以维持明确职责时才增加专家 Agent 和 handoff。
- 涉及持久化或外部副作用的工具必须边界窄、可审计、可重试。
- 高风险或不可逆操作必须设置人工确认;第一版不允许 Agent 自动投递简历或联系招聘人员。
- 原始数据与标准化数据分开保存,避免解析规则变化后无法追溯。
- 先执行确定性筛选,再调用联网服务和大模型,降低成本与误判范围。
- 评分权重由配置决定,大模型只输出结构化维度分析,不直接修改最终分数。
- 规则筛选和权重计算作为确定性工具提供给 Agent,最终分数不能由模型随意生成。
- 采集、企业补全和 AI 分析任务必须可重复执行,并通过唯一约束或幂等键防止重复入库。
- 重要判断应包含证据,不以模型生成的自然语言作为唯一依据。
## 明确不采用的捷径
- 不把一次普通的大模型请求包装成 Agent;必须存在真实的运行循环、工具调用、状态和轨迹。
- 不用 LangChain 等兼容层统一不同模型或 Agent 框架,优先直接学习 OpenAI Agents SDK 的原生能力。
- 当前业务没有知识库检索需求,不引入 pgvector、独立向量数据库或为了展示而搭建 RAG。
- 不一开始拆成多 Agent;先用一个 Agent 验证完整闭环,再依据评测结果演进。
## 验证命令
```powershell
@@ -180,4 +212,4 @@ JobRadar 仅用于个人岗位信息整理与求职辅助。使用前应确认
当前版本:`0.1.0-dev`
当前阶段:Django 基础工程和项目文档初始化。
当前阶段:[阶段一第1课“Django项目配置与开发/生产环境拆分”](docs/lessons/01_Agent工程基线/1_1_Django项目配置与开发生产环境拆分/README.md)已经创建,等待学习者手动完成项目配置拆分。