Skip to content

Skill 清单

飞书组织架构识别场景的全部能力定义,按清海 AI 实际工作方式分层组织。 会话场景概览见 飞书组织架构识别,角色维度的会话旅程见 角色场景


架构总览

飞书组织架构识别的能力分为四层,从 AI 对话侧到系统自动化逐层递进:

分层判断标准

层级判断标准当前状态
A — SkillAI 需要场景指导、权限规则、工具组合策略⬜ 无 SKILL.md
B — ToolAI 需要调用、tool schema 可自描述✅ 3 个工具已实现
C — 系统能力不需要 AI 感知,自动运行✅ 核心已实现,权限待补
D — 主动推送非对话触发,由定时或事件驱动✅ 同步已实现,通知待补

Skill / Tool 汇总

名称描述状态
search_contacts按姓名或部门查找员工信息✅ 已实现
save_contact_aliasAI 在对话中学习并保存人员别名✅ 已实现
link_platform_identity将外部平台身份绑定到公司人员✅ 已实现
query_org_structure返回公司整体组织架构树与部门人数✅ 已实现
query_department_members查询指定部门的全部成员列表✅ 已实现
query_person_relations查询某人的上下级与同组关系✅ 已实现
query_staff_changes查询最近人员变动(入职/离职/调岗)⬜ 待实现

A 层 — 当前无独立 Skill

现状

当前没有 skills/org-query/SKILL.md,AI 靠以下两条路径回答组织架构问题:

  1. system prompt 身份注入avatar_core.build_avatar_prompt() 在 Block 1 注入 "王五是产品部的产品经理"
  2. search_contacts 工具:AI 主动调用查询人员信息

目标设计

后续计划创建 skills/org-query/SKILL.md,提供:

  • 触发词匹配:组织|部门|同事|上级|下属|团队|架构|人员|成员|谁是|有谁|几个人|负责人
  • 角色权限规则(老板/组长/员工各看什么)
  • 推荐工具组合和调用顺序
  • 回复格式要求

B 层 — Tool 清单

已实现的工具(3 个)

1. search_contacts — 通讯录搜索

按姓名或部门查找员工信息。这是当前 AI 可用的唯一组织查询工具。

数据来源PersonIndex 内存索引(底层数据来自飞书 GET /contact/v3/users/find_by_department
参数必填说明
query搜索关键词(姓名或部分名字)
department部门名称(支持模糊匹配)

返回字段

字段来源飞书 API 字段说明
namename姓名
job_titlejob_title职位
department通过 department_ids 关联部门名所属部门
open_idopen_id飞书用户唯一标识(ou_ 开头)
mobilemobile手机号

实现位置scripts/direct/tools/feishu.pyPersonIndex.search(query, department)


2. save_contact_alias — 学习别名

AI 在对话中学习到某人的别名后保存。

参数必填说明
person_name通讯录中的正式姓名(name 字段值)
alias新别名(如"阿远""远哥")

实现位置scripts/direct/tools/contacts_learn.pyPersonIndex.add_alias() + MongoDB 同步


将外部平台(如 GitLab)的用户标识绑定到公司人员。

参数必填说明
person_name通讯录中的正式姓名
platform平台名(gitlab / wecom 等)
identifier平台上的用户标识(如 GitLab username)

实现位置scripts/direct/tools/contacts_learn.pyPersonIndex.add_identity() + MongoDB 同步


待封装的工具(4 个)

PersonIndex 已有对应方法,但尚未封装为 AI 可调用的 tool:

4. query_org_structure — 组织架构概览

目标返回公司整体组织架构:部门树 + 各部门人数 + 负责人

底层方法PersonIndex.get_org_summary(role)

飞书数据来源GET /contact/v3/departmentsopen_department_idnamemember_count


5. query_department_members — 部门成员查询

目标返回指定部门的全部成员列表(姓名 + 职位 + 是否管理者)
参数说明
department部门名称(支持模糊匹配)

底层方法PersonIndex.get_department_members(department)

飞书数据来源GET /contact/v3/users/find_by_departmentnamejob_titledepartment_ids

注:search_contacts(department=...) 部分覆盖此功能,但返回格式和完整度不同。


6. query_person_relations — 人员关系查询

目标查询某人的上下级关系
参数说明
name人名
relation_typeleader(上级)/ members(下属)/ team(同组)/ all

底层方法PersonIndex.get_person_leader() / get_team_members() / get_team_group()


7. query_staff_changes — 人员变动查询

目标查询最近的人员变动(入职/离职/调岗)
参数说明
days查询最近 N 天的变动(默认 7)
change_typejoin / leave / transfer / all

飞书数据来源:同步时对比 status.is_resignedstatus.is_activateddepartment_ids 的变更

底层实现:基于 unified_users.updated_at + is_active 变更检测


C 层 — 系统能力

不暴露给 AI,在消息处理链路中自动运行。

能力说明状态实现位置
飞书通讯录同步每 30 分钟调用飞书 API 同步部门树 + 人员到 MongoDBscripts/feishu_sync.py
PersonIndex 构建启动时从 unified_users 加载全量数据建立内存索引scripts/contacts/index.py
PersonContext 档案按场景裁剪输出人物上下文切片(dialog/concern/send_message/dashboard)scripts/memory/person_context.py
身份解析飞书消息 open_idperson_id 自动解析 + 注入 system promptavatar_core.py
权限过滤根据用户角色过滤查询结果中的人员数据待实现
数据质量自检同步后检测缺失字段(职位/上级/部门),通知管理员待实现
离职处理status.is_resigned=trueis_active=False → 消息静默同步逻辑

通讯录同步流程

身份解析流程

权限过滤流程(目标设计)


D 层 — 主动推送

非对话触发,由定时任务驱动。

定时任务

推送场景频率触发条件推送对象状态
通讯录同步每 30 分钟定时触发✅ 已实现
数据质量告警每日最多 1 次同步后检测到新增缺失项管理员(飞书)⬜ 待实现
新员工入职通知同步时触发检测到新 open_id管理员(飞书)⬜ 待实现
员工离职通知同步时触发检测到 status.is_resigned=true人事(飞书)⬜ 待实现

实现依赖:FeishuSync + NotificationEngine + feishu-message Skill

推送约束

约束说明
防骚扰数据质量告警每日最多 1 次,只通知新增缺失项
去重已通知过的缺失项不重复发送
工作时段仅在工作时间推送(9:00-19:00)
语气信息性通知,客观陈述

复用的现有能力

能力本场景用途状态
飞书通讯录 API部门树 + 人员信息同步✅ 已实现
FeishuSync定时同步通讯录到 MongoDB + 本地缓存✅ 已实现
PersonIndex跨平台人员索引(按名/别名/平台ID查找)✅ 已实现
PersonContextResolver统一人物工作档案(分层存储 + 按场景切片输出)✅ 已实现
contacts_learn 工具AI 学习别名 + 平台身份✅ 已实现
feishu-message Skill管理员通知、人事通知推送✅ 已实现
NotificationEngine主动通知的防骚扰控制(冷却/时段/每日上限)✅ 已实现
角色匹配.claude/roles/ 下按职位/部门匹配角色提示词✅ 已实现

全局约束

约束说明
飞书为权威源组织相关字段(部门/职位/上级)以飞书 GET /contact/v3/users 返回值为准
权威性层级qinghai_manual > authoritative_sync > inferred > observed
只读查询不修改飞书通讯录数据,仅读取和同步
隐私保护聊天原文只有 AI 和本人知道,向他人只说判断不说原文
离职即静默MVP 阶段 status.is_resigned=true 的员工立即静默
缓存降级飞书 API 不可用时使用 data/cache/contacts.json 继续服务

实现路线

Phase 1:数据打通 + 身份识别(已完成)

#事项状态
1飞书通讯录同步(FeishuSync)
2PersonIndex 内存索引
3PersonContextResolver 统一档案
4身份自动识别(avatar_core 消息链路)
5search_contacts 通讯录查询工具
6save_contact_alias + link_platform_identity 学习工具

Phase 2:专用工具 + 权限(待实现)

#事项状态
7封装 query_org_structure 工具
8封装 query_department_members 工具
9封装 query_person_relations 工具
10封装 query_staff_changes 工具
11权限过滤中间件(角色 × 数据范围)
12org-query SKILL.md 场景化编写

Phase 3:主动推送 + 数据质量

#事项状态
13数据质量自检 + 管理员通知
14人员变动通知(入职/离职/调岗)

Boss-AGI · 超级 AI 企业助理