本文的内容相对轻松,适合准备动手调试、扩展求职派源码的小伙伴。
将从以下部分进行展开,降低大家的学习成本。
- 项目结构说明
- 不同开发环境的说明
- 关键功能生效的代码路径
- 项目约定
一、项目源码获取
源码申请戳这个链接,一次申请,可以获取星球所有项目源码:https://paicoding.com/ai-agent-projects-guide
二、源码工程结构说明
进入项目源码,大家会看到下面几个目录。
├── app # 后端工程项目的入口(Web管理、数据采集、支付等)
├── core # 共享基础模块(智能体内核、消息路由、模型调度)
├── channels/ # IM渠道接入(微信/钉钉/飞书)
│ ├── wechat-clawbot
│ ├── dingding
│ └── feishu
├── providers/ # AI模型提供商适配
│ ├── zhipu
│ ├── openai
│ ├── anthropic
│ └── ali
├── agents/ # 业务智能体
│ ├── identity-collector-agent # 身份采集
│ ├── job-fetch-agent # 职位获取
│ └── job-recommend-agent # 职位推荐
├── plugins/ # 插件扩展
│ ├── playwright # 网页抓取
│ ├── job-library # 职位库
│ └── plan-notebook # 规划笔记
├── workspace/ # 运行时工作空间(数据库、用户档案、对话记录)
├── docs # 项目相关的静态资源、文档说明
├── ui-react # 前端工程项目的入口
└── readme.md # 帮助文档
整体采用 Maven 多模块架构,模块依赖关系如下:

新业务智能体放在 agents/ 下,不要放在 app/ 里(除非它纯粹属于 Web 管理/数据采集流水线)。
1. 后端项目结构
后端使用的技术栈为:Spring Boot 4.0.5 + Java 21 + Spring AI 2.0.0-M4 + LangGraph4J 1.6.0 + Spring JPA + JobRunr + JWT

① 采用标准的后端 MVC 分层架构
- Controller:定义数据访问端点(即各种 HTTP 接口)
- Service:提供服务实现
- Dao:数据库访问
② 关键目录的功能划分如下所示:
├── agents/ # LangGraph4J 多智能体工作流(任务分类→数据采集→清洗→发布)
├── components/ # 通用组件
├── configs/ # 全局字典
├── constants/ # 常量定义
├── gather/ # AI大模型相关,任务采集
├── llm/ # LLM调用监控与管理
├── oc/ # 正式职位数据服务、MCP Server端点
├── openapi/ # 开放平台接口(主要是与技术派进行账号互通的实现)
├── user/ # 用户相关服务,包含登录、用户管理、会员充值等
├── util/ # 一些工具类
├── web/ # SpringMVC相关,提供controller入口,登录鉴权,全局管理等
③ 业务领域划分:
- agents:LangGraph4J 多智能体工作流(TaskClassify → TaskGather → DraftWasher → DraftPublish)
- configs:全局字典
- gather:AI 大模型 + 数据抓取解析任务(GatherAiAgent、OfferGatherService)
- llm:LLM 调用监控与管理
- oc:校招职位信息、MCP Server 端点
- user:用户 + 会员充值
④ 辅助工具层:
- openapi:开放平台接口(主要是与技术派进行账号互通的实现)
- components:通用组件,如异步调度、业务异常、全局上下文、雪花算法生成ID策略
- constants:常量定义,包括不同业务领域相关的枚举、常量等
- util:工具类集合,通常一个类就是一个工具,包含常见的 JsonUtil、IpUtil、DateUtil、SessionUtil 等
⑤ Web 端点访问层主要提供 Web 服务相关的合集。
接下来以 user 这个业务领域为示例,对其中的包结构定义进行说明:
├── convert # 定义类型转换器的包结构
│ ├── CouponConvert.java
│ ├── RechargeConvert.java
│ └── UserConvert.java
├── dao # dao下为与数据库交互的实现
│ ├── entity # entity下面定义的是数据库实体对象
│ │ ├── CouponEntity.java
│ │ ├── RechargeEntity.java
│ │ ├── UserEntity.java
│ │ └── UserInterestEntity.java
│ └── ...
回复