人力资源和IT支持的企业代理RAG
1) 项目概述和人力资源领域重点
该项目提供了一个 代理检索增强生成(RAG)软件系统 构建在用于企业人力资源和IT运营的内部MCP服务器上。
它的功能是 安全的内部员工门户 经过身份验证的员工可以:
- 检索结构化的人力资源数据(工资、PTO余额、报告层次结构、设备、绩效元数据),
- 检索非结构化的政策和入职上下文(包括录取通知书和政策知识块),
- 并触发自主的内部操作,如IT工单创建和密码重置工作流(基于角色权限)。
该系统是专门为以下目的而构建的 HR+IT领域自动化这种设计没有使用互联网工具的开放式代理,而是强制执行严格的企业边界:LLM只能通过经批准的MCP工具运行,并得到当地内部数据和政策控制的支持。
2) 核心架构和安全
零信任JWT安全
- 每个敏感的MCP工具调用都需要一个经过验证的JWT令牌。
- 后端不信任AI:对于每次工具调用,它都会重新验证JWT并重新导出请求者身份(来自
emp_id)以及令牌声明中的请求者属性(部门/许可)。 - 经理报告(命令链)执行:对于记录范围的“目标”查询(例如,工资、PTO、绩效),服务器执行命令链(递归检查模式),仅在所请求的员工的报告关系与调用者匹配时授权访问:当
target_emp["manager_employee_id"] == requester_id每次工具调用时都会应用此服务器端检查,因此敏感数据永远不会根据模型假设发布。 - 部门覆盖(上帝视角):用户
People Ops,Human Resources,或Executive被授予更高的可见性,绕过单个经理的检查,允许他们查询每个工具范围内的任何员工记录。 - 特定特权动作的清除阈值仍然存在(例如。,
update_clearance_level,trigger_password_reset,get_department_budget),用明确的作战护栏补充指挥链模型。 - 统一门户使用升级的推理代理系统提示来编排正确的授权输入(而不是授权决策):名称(用户输入)->
get_coworker_contact(ID检索)->数据工具(get_salary_details,get_pto_balance,search_performance_reviews)使用检索到的target_employee_id作为所需参数。
内部数据库RAG
- 代理从本地模拟企业源检索实时上下文,尤其是
data/mock_hris_db.json. - 结构化内部记录用于操作响应(PTO、员工档案、团队数据、工资、设备)。
- 通过LanceDB支持的语义搜索来支持非结构化的人力资源策略检索,以获取可靠的策略响应。
机载多模态验证
- 在入职过程中,统一门户通过向Gemini发送录取通知书文件(通过Gemini文件上传兼容TXT/PDF)进行语义验证来验证员工文件。
- 这创建了一个实用的MFA风格的入职步骤,将身份检查与文档智能相结合。
显式模式转换层
- 该项目包括一个自定义模式转换例程,该例程将FastMCP/Pydantic工具模式转换为干净的Gemini兼容函数模式。
- 安全敏感字段(如
token)在工具声明暴露于模型之前故意剥离。 - 这种显式转换可以防止模式不兼容,并实现与Google Gemini的可靠函数调用。
3) 20种内部人力资源和IT MCP工具
所有工具均从中提取 mcp_server/server.py 并通过FastMCP曝光。
安全与认证
get_my_profile\
验证JWT并返回经过身份验证的员工的完整HRIS个人资料。这是个性化人力资源和支持互动的基本身份工具。
update_clearance_level\
仅允许最高权限用户修改其他员工的权限级别。这控制了门户中基于角色的工具访问的安全状态。
人力资源政策与知识检索(RAG)
search_hr_policies\
对存储在LanceDB中的内部人力资源策略块执行语义搜索,并返回最匹配项。这为代理在企业策略文本中的响应奠定了基础。
员工目录和劳动力数据
get_coworker_contact\
按姓名查找同事并返回目录级联系人详细信息。用于内部协作和路由。
get_team_roster\
根据报告层次结构返回经过身份验证的管理器的直接报告。支持经理工作流和人员操作任务。
get_company_holidays\
返回公司官方遵守的假期时间表。帮助回答休假计划和日程安排请求。
工资单、PTO和员工自助服务
get_pto_balance\
使用分层零信任RBAC返回PTO余额、应计率和策略元数据:
- 自助服务时 target_employee_id 被省略或与呼叫者匹配。 - 当目标 manager_employee_id 等于呼叫者的 employee_id. - 部门优先权(上帝视角) People Ops, Human Resources,以及 Executive.
submit_pto_request\
通过从可用余额中扣除批准的小时数来提交PTO请求。在批准之前强制执行余额检查。
update_preferred_name\
更新HRIS数据集中员工的首选姓名。支持配置文件维护和身份首选项。
get_salary_details\
返回由同一经理报告的薪资信息+部门覆盖执行:
- 自助服务时 target_employee_id 被省略或与呼叫者匹配。 - 在以下情况下直接访问报告 target_emp["manager_employee_id"] == requester_id. - People Ops/Human Resources/Executive 覆盖以查看工具范围内的任何员工记录。
get_direct_report_salary\
直接报告薪资查询的兼容端点:
- 经理可以通过以下方式查看其直接下属的薪资 manager_employee_id. - 非管理者需要足够的 clearance_level (在这个演示中,后端强制执行清除级别门控)。
人才生命周期和绩效
generate_offer_letter\
为候选人创建一个包含职位和薪资详细信息的模拟录取通知书文件。支持人力资源招聘生命周期模拟和入职工件。
search_performance_reviews\
使用分层零信任RBAC检索性能评估数据:
- 自助服务时 target_employee_id 被省略或与呼叫者匹配。 - 在以下情况下直接访问报告 target_emp["manager_employee_id"] == requester_id. - People Ops/Human Resources/Executive override(上帝视角)检索工具范围内任何员工记录的评论。
submit_performance_review\
让经理为直接报告提交一份结构化的审查,包括评级和评论。强制执行仅限经理的授权。
IT票务和最终用户支持
log_it_ticket\
创建与经过身份验证的员工关联的新IT支持工单,并将其存储在内部工单数据库中。允许通过聊天自动上报问题。
check_it_ticket_status\
按工单ID查找现有IT工单的状态。支持员工自助跟踪支持进度。
request_new_equipment\
将设备请求转换为标准化的IT工单工作流程。将人力资源员工记录与IT配置操作联系起来。
trigger_password_reset\
触发目标电子邮件的密码重置操作,仅限于授权用户。模型控制身份支持操作。
get_equipment_assigned\
返回当前分配了分层零信任RBAC的设备:
- 自助服务时 target_employee_id 被省略或与呼叫者匹配。 - 当目标 manager_employee_id 等于呼叫者的 employee_id. - 部门优先权(上帝视角) People Ops, Human Resources,以及 Executive.
get_department_budget\
为权限较高的授权用户返回部门预算信息。演示同一安全MCP层中的财务相邻数据控制。
4) 安装和设置
先决条件
- Python 3.10+(推荐)
- Google Gemini API密钥
克隆并安装
git clone
cd hr_agent_project
python -m venv .venvWindows(PowerShell):
.venv\Scripts\Activate.ps1
pip install -r requirements.txtmacOS/Linux:
source .venv/bin/activate
pip install -r requirements.txt配置环境
创建一个 .env 项目根目录中的文件:
GEMINI_API_KEY=your_google_gemini_api_key_here5) 用途:统一门户
运行端到端的企业流程:
python scripts/05_unified_portal.py运行时流程
- 模拟OTP MFA:通过OTP提示验证员工身份。
- 密码创建:安全地创建帐户凭据并存储哈希密码元数据。
- 文件验证:上传录取通知书内容,并通过Gemini多模式处理验证身份角色对齐。
- 安全代理聊天:发布JWT,向Gemini公开MCP工具,并在许可控制下实现自主的HR/IT行动。
代理提示示例
What is my PTO balance and can you log an IT ticket for my broken laptop?
代理将从内部系统检索真实的人力资源上下文,并可以通过MCP工具执行批准的IT操作(工单创建),同时遵守JWT和许可限制。
技术栈
- python
- FastMCP(
mcp) - Google Gemini API(
google-genai) - JWT安全(
pyjwt) - 密码学和密码散列(
werkzeug+安全令牌工作流) - LanceDB+用于策略检索的句子转换器
企业定位
该存储库是企业安全内部副本的实用蓝图:域范围、工具限制、身份感知,在员工门户规模的跨职能人力资源和IT支持中具有操作价值。
