Skip to content

SanCalibur/employee2skill

Repository files navigation

employee2skill - 员工能力萃取与可替代率评估系统

Python 3.9+ License Tests

让每一位员工的能力可见、可量化、可传承。


🎯 核心价值

企业痛点

痛点 现状 employee2skill 解决方案
人才流失风险不可知 关键员工离职时才发现其不可替代 实时评估可替代率,提前预警高风险员工
离职交接成本高昂 交接文档零散、经验无法传承 自动生成交接 Skill,沉淀核心经验
培训素材制作费力 优秀员工经验难以复制 一键萃取能力 Skill,生成培训材料
绩效评估主观模糊 评估依赖印象,缺乏数据支撑 多源数据驱动,每条结论有证据链追溯

一句话价值

从"员工离职才知道他是宝贝"到"提前识别并保护你的核心人才"


✨ 产品亮点

📊 数据驱动的客观评估

告别主观印象,从员工日常工作中自动采集数据:

数据源                    →  分析维度              →  评估输出
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AI对话(ChatGPT/Claude)   →  问题解决能力、学习能力  →  分数 + 证据
监控软件日志              →  工作效率、专注度        →  分数 + 证据
沟通工具(飞书/钉钉)       →  沟通能力、响应速度      →  分数 + 证据
文档访问记录              →  学习行为、知识获取      →  分数 + 证据

每条评估结论都有完整的证据追溯链——从结论到原始数据,全程可审计。

🎯 精准的可替代率评估

不是简单的"好/坏"评级,而是量化评估:

可替代率 风险等级 管理建议
< 20% ❌ 不可替代 制定保留计划,考虑继任者培养
20-40% 🟢 低风险 定期关注,适当激励
40-60% 🟡 中风险 可考虑培养方向,提升稀缺能力
60-80% 🟠 高风险 替代成本适中,可适度储备人才
> 80% 🔴 易于替代 替代成本低,正常流动即可

🔄 能力 Skill:让经验可复制

从优秀员工身上萃取的能力,可以转化为四种形态:

形态 用途 场景举例
培训形态 新员工培训 "高效沟通技巧"培训课程,带步骤、评估标准
Agent形态 工作自动化 "客户投诉处理Agent",可自动执行流程
知识库形态 知识沉淀 "产品知识FAQ",可检索的知识条目
交接形态 离职交接 完整的工作上下文、个人经验要点

优秀员工离职了?他的能力 Skill 还在,新人可以快速接手。

⚙️ 职业定制化分析

不同岗位,不同能力模型:

  • 🖥️ 软件工程师:编码质量、系统设计、故障排查权重高
  • 🎧 客服人员:响应质量、产品知识、客户满意度权重高
  • 💼 销售人员:客户关系、谈判能力、销售业绩权重高
  • 📱 产品经理:产品策略、需求分析、跨部门协调权重高
  • 📋 文职人员:文档管理、日程安排、协调能力权重高

一套系统,覆盖全公司不同岗位。


💼 应用场景

场景一:离职风险评估

输入:员工 ID + 数据源配置
处理:采集 → 分析 → 评估
输出:
  - 可替代率:35%(低风险)
  - 关键能力:问题解决(85分)、沟通(80分)
  - 建议:定期关注,建议培养继任者

HR 可以提前识别高风险员工,制定保留策略。

场景二:离职交接自动化

输入:即将离职员工 ID
处理:能力萃取 → 交接 Skill 生成
输出:
  - 交接文档(Markdown格式)
  - 核心经验要点
  - 工作上下文说明
  - 常见问题处理方式

交接不再是"口头交代+零散文档",而是完整的能力传承。

场景三:培训素材生成

输入:优秀员工 ID + 能力维度
处理:萃取该能力 → 培训 Skill 生成
输出:
  - 培训课程大纲
  - 学习步骤
  - 练习题
  - 评估标准

优秀员工的经验可以直接复制给新人。

场景四:团队人才盘点

输入:团队成员列表
处理:批量评估 → 团队报告生成
输出:
  - 团队风险分布(不可替代X人,高风险Y人)
  - 团队能力热力图
  - 关键员工名单
  - 培养建议汇总

管理者可以快速了解团队人才结构,做出决策。


🏗️ 系统架构概览

employee2skill 是一个企业级员工能力分析平台,采用四层架构设计:

┌─────────────────────────────────────────────────────────────────────────┐
│                         输出层 (Output Layer)                            │
│    员工报告 | 团队报告 | Skill注册表 | JSON/YAML导出                       │
└─────────────────────────────────────────────────────────────────────────┘
                                    ▲
┌─────────────────────────────────────────────────────────────────────────┐
│                        引擎层 (Engine Layer)                             │
│    可替代率评估引擎 | 风险分类器 | 多维评分器 | Skill生成器                 │
└─────────────────────────────────────────────────────────────────────────┘
                                    ▲
┌─────────────────────────────────────────────────────────────────────────┐
│                        分析层 (Analysis Layer)                           │
│    沟通能力提取器 | 效率提取器 | 问题解决提取器 | 学习能力提取器 | AI协作提取器│
└─────────────────────────────────────────────────────────────────────────┘
                                    ▲
┌─────────────────────────────────────────────────────────────────────────┐
│                        数据层 (Data Layer)                               │
│    监控软件采集器 | AI对话采集器 | 文档采集器 | 数据标准化器                │
└─────────────────────────────────────────────────────────────────────────┘

核心理念:数据统一接入 → 智能分析 → 精准评估 → 可用输出


目录


核心功能详解

1. 多源数据采集

支持从多种数据源采集员工行为数据:

数据源类型 采集器 数据类型
监控软件 InternalPlatformCollector APP_USAGE, OPERATION_LOG
AI 对话 ChatGPTExportCollector, ClaudeExportCollector AI_CONVERSATION, AI_PROMPT, AI_RESPONSE
沟通工具 FeishuCollector, DingTalkCollector CHAT_MESSAGE, EMAIL
文档系统 PDFCollector, MarkdownCollector DOCUMENT, WIKI_PAGE

2. 能力分析引擎

基于职业配置驱动的能力分析:

  • 沟通能力 - 消息量、响应时间、表达质量
  • 工作效率 - 任务完成量、数据多样性、工作节奏
  • 问题解决 - 问题查询频率、任务解决能力
  • 学习能力 - 学习行为、文档访问、知识获取
  • AI 协作能力 - AI 工具使用频率、Prompt 质量

3. 可替代率评估

综合多维度分析的可替代率评估体系:

可替代率 = f(能力分数, 稀缺能力, 团队依赖度, 学习曲线)

风险等级分类:

风险等级 可替代率 说明
❌ 不可替代 < 20% 掌握关键稀缺能力,离职影响大
🟢 低风险 20-40% 能力较强,有一定稀缺性
🟡 中风险 40-60% 能力中等,替代成本适中
🟠 高风险 60-80% 能力一般,较容易替代
🔴 易于替代 > 80% 能力较弱或普遍,替代成本低

4. 能力 Skill 生成

从员工能力数据中抽取可复用的能力 Skill,支持四种输出形态:

形态 用途 特点
培训形态 新员工培训 教学式,带步骤讲解、评估标准
Agent 形态 工作自动化 可执行,带触发条件、执行流程
知识库形态 知识沉淀 可查询,带索引、FAQ
交接形态 离职交接 完整上下文、个人经验要点

5. 多职业类型支持

预置 6 种职业配置,支持灵活扩展:

  • 🖥️ 软件工程师 (software_engineer)
  • 🎧 客服人员 (customer_service)
  • 📋 文职人员 (office_admin)
  • 💼 销售人员 (sales)
  • 📱 产品经理 (product_manager)
  • 📊 通用职业 (general)

技术架构

四层架构设计

┌─────────────────────────────────────────────────────────────────────────┐
│                         输出层 (Output Layer)                            │
│  ┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────┐ │
│  │   SingleEmployee    │  │    TeamSummary      │  │  SkillRegistry  │ │
│  │    ReportBuilder    │  │   ReportBuilder     │  │  JSON/YAML      │ │
│  └─────────────────────┘  └─────────────────────┘  └─────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
                                    ▲
┌─────────────────────────────────────────────────────────────────────────┐
│                        引擎层 (Engine Layer)                             │
│  ┌─────────────────────────────────┐  ┌─────────────────────────────┐  │
│  │      ReplacementEvaluator       │  │    CapabilityExtractor     │  │
│  │  ┌───────────┐ ┌──────────────┐ │  │  ┌─────────────────────┐   │  │
│  │  │ Evaluator │ │   Risk       │ │  │  │    SkillBuilder     │   │  │
│  │  │  Engine   │ │ Classifier   │ │  │  │  (培训/Agent/知识)  │   │  │
│  │  └───────────┘ └──────────────┘ │  │  └─────────────────────┘   │  │
│  └─────────────────────────────────┘  └─────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────────┘
                                    ▲
┌─────────────────────────────────────────────────────────────────────────┐
│                        分析层 (Analysis Layer)                           │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │                         AnalyzerHub                               │  │
│  │  ┌─────────────────────────────────────────────────────────────┐ │  │
│  │  │                    Extractors                                │ │  │
│  │  │  ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐│ │  │
│  │  │  │Communication │ │  Efficiency  │ │ ProblemSolving      ││ │  │
│  │  │  │  Extractor   │ │  Extractor   │ │ LearningAbility     ││ │  │
│  │  │  └──────────────┘ └──────────────┘ │ AIUsage Extractor   ││ │  │
│  │  │                                   └──────────────────────┘│ │  │
│  │  └─────────────────────────────────────────────────────────────┘ │  │
│  └──────────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────────┘
                                    ▲
┌─────────────────────────────────────────────────────────────────────────┐
│                        数据层 (Data Layer)                               │
│  ┌────────────────────────────────────────────────────────────────────┐ │
│  │                        CollectorHub                                │ │
│  │  ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────┐  │ │
│  │  │   Monitoring    │ │    AI Chat      │ │      Docs           │  │ │
│  │  │   Collectors    │ │   Collectors    │ │   Collectors        │  │ │
│  │  └─────────────────┘ └─────────────────┘ └─────────────────────┘  │ │
│  └────────────────────────────────────────────────────────────────────┘ │
│  ┌────────────────────────────────────────────────────────────────────┐ │
│  │                     DataStandardizer                                │ │
│  │         (RawDataBatch → Standardized Records)                      │ │
│  └────────────────────────────────────────────────────────────────────┘ │
│  ┌────────────────────────────────────────────────────────────────────┐ │
│  │                      Data Models                                    │ │
│  │    DataType | EmployeeDataRecord | RawDataBatch                    │ │
│  └────────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘

核心设计理念

  1. 数据层:所有数据源统一接入,标准化后存储
  2. 分析层:从标准化数据提取特征,产出结构化分析结果
  3. 引擎层:基于分析结果,执行能力抽取和可替代率评估
  4. 输出层:将引擎产出格式化为最终交付物

模块详解

数据层 (Data Layer)

统一数据模型

class DataType(Enum):
    """统一的数据类型分类"""
    # 沟通类
    CHAT_MESSAGE = "chat_message"
    EMAIL = "email"
    
    # 文档类
    DOCUMENT = "document"
    WIKI_PAGE = "wiki_page"
    
    # 监控类
    APP_USAGE = "app_usage"
    OPERATION_LOG = "operation_log"
    WORKFLOW_TRACE = "workflow_trace"
    
    # AI交互类
    AI_PROMPT = "ai_prompt"
    AI_RESPONSE = "ai_response"
    AI_CONVERSATION = "ai_conversation"
    
    # 行为类
    CODE_COMMIT = "code_commit"
    TASK_RECORD = "task_record"

采集器接口

所有采集器继承 BaseCollector,实现统一接口:

class BaseCollector(ABC):
    """采集器基类"""
    
    @abstractmethod
    def collect(self, employee_id: str) -> RawDataBatch:
        """执行采集,返回原始数据批次"""
        pass
    
    @abstractmethod
    def get_supported_data_types(self) -> list[str]:
        """返回支持的数据类型"""
        pass
    
    def validate_config(self) -> bool:
        """验证配置有效性"""
        pass

数据标准化

DataStandardizer 负责将原始数据转换为标准格式:

standardizer = DataStandardizer()
batch = collector.collect("emp001")
processed = standardizer.process_batch(batch)

分析层 (Analysis Layer)

分析器接口

所有分析器继承 BaseAnalyzer

class BaseAnalyzer(ABC):
    """分析器基类"""
    
    @abstractmethod
    def analyze(self, batch: RawDataBatch, profession_type: str) -> AnalysisResult:
        """执行分析"""
        pass
    
    @abstractmethod
    def get_supported_dimensions(self) -> list[str]:
        """返回支持的分析维度"""
        pass

分析调度器

AnalyzerHub 协调多个分析器,按职业配置分派:

hub = AnalyzerHub()
result = hub.analyze_employee(batch, "software_engineer")

分析结果结构

class AnalysisResult(BaseModel):
    employee_id: str
    profession_type: str = "general"
    core_capabilities: dict[str, Any] = {}      # 核心能力
    specific_capabilities: dict[str, Any] = {}  # 职业专属能力
    behavior_patterns: dict[str, Any] = {}      # 行为模式
    ai_collaboration: dict[str, Any] = {}       # AI协作能力
    confidence: float = 0.0
    metadata: dict[str, Any] = {}

引擎层 (Engine Layer)

可替代率评估引擎

class EvaluatorEngine:
    """可替代率评估引擎"""
    
    RISK_THRESHOLDS = {
        "irreplaceable": 20,
        "low_risk": 40,
        "medium_risk": 60,
        "high_risk": 80,
        "easy_replace": 100,
    }
    
    def evaluate(self, analysis_result: AnalysisResult) -> ReplacementEvaluation:
        """执行可替代率评估"""
        pass

评估结果结构

class ReplacementEvaluation(BaseModel):
    employee_id: str
    replacement_rate: int          # 0-100
    risk_level: str                # 风险等级
    overall_capability_score: int  # 综合能力分数
    dimension_scores: dict         # 各维度分数
    risk_factors: dict             # 风险因素
    evidence: list[str]            # 证据链
    recommendations: list[str]     # 改进建议

Skill 生成器

builder = SkillBuilder()

# 培训形态
training_skill = builder.build_training_skill(
    capability_name="沟通能力",
    capability_data={"score": 85, "level": "good", "evidence": [...]},
    source_employee="张三"
)

# 交接形态
handover_skill = builder.build_handover_skill(
    employee_id="emp001",
    employee_name="张三",
    analysis_result={"core_capabilities": {...}}
)

输出层 (Output Layer)

员工评估报告

report_builder = SingleEmployeeReportBuilder()
report = report_builder.build(evaluation, analysis_result)
# 生成 Markdown 格式的评估报告

团队摘要报告

team_builder = TeamSummaryReportBuilder()
team_report = team_builder.build([
    {"employee_id": "emp001", "risk_level": "irreplaceable", ...},
    {"employee_id": "emp002", "risk_level": "medium_risk", ...},
])

Skill 注册表与导出

registry = SkillRegistry()
registry.register("skill-001", skill_data, category="communication")

# 导出
json_exporter = JSONExporter()
json_exporter.export_skill(skill_data, "skill-001", output_dir)

yaml_exporter = YAMLExporter()
yaml_exporter.export_skill(skill_data, "skill-001", output_dir)

数据流设计

完整数据流

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   原始数据   │ ──▶ │   采集器    │ ──▶ │  标准化器   │ ──▶ │  分析器     │
│  (JSON/文件) │     │ Collector   │     │Standardizer │     │ Extractor   │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
                                                                   │
                                                                   ▼
┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   最终报告   │ ◀── │  Skill生成  │ ◀── │  评估引擎   │ ◀── │  分析结果   │
│  (MD/JSON)  │     │SkillBuilder │     │ Evaluator   │     │AnalysisRes  │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘

证据追溯链

每条评估结论可追溯到原始数据:

{
  "conclusion": "产品知识掌握度 65 分",
  "evidence_chain": [
    {"layer": "评估结论", "content": "产品知识 65 分"},
    {"layer": "分析结果", "content": "正确信息率 82%,查文档 6 次/天"},
    {"layer": "标准化数据", "content": "来源于 ai_conversations.json"},
    {"layer": "原始数据", "content": "AI 对话 500 条,CRM 日志 30 天"}
  ]
}

职业类型配置

配置结构

# config/profession_configs/software_engineer.yaml
profession_type: software_engineer
display_name: 软件/技术开发人员

# 核心能力维度(必分析)
core_dimensions:
  - communication
  - problem_solving
  - efficiency
  - learning_ability
  - responsibility

# 职业专属维度
specific_dimensions:
  - coding_quality
  - code_review
  - system_design
  - troubleshooting

# 数据源权重
data_source_weights:
  chat_messages: 0.25
  code_commits: 0.25
  app_usage: 0.15
  ai_conversations: 0.2
  documents: 0.1

# 评分标准
scoring_criteria:
  coding_quality:
    metrics:
      - code_commit_frequency
      - code_review_pass_rate
    benchmark:
      excellent: {commit_freq: "> 5/week", review_pass: "> 90%"}
      good: {commit_freq: "> 3/week", review_pass: "> 75%"}

# 可替代率评估权重
replacement_risk_weights:
  coding_quality: 0.2
  problem_solving: 0.2
  system_design: 0.15
  efficiency: 0.15
  learning_ability: 0.15
  communication: 0.1

预置职业配置

职业类型 核心能力 专属能力
software_engineer 沟通、问题解决、效率、学习、责任 编码质量、代码审查、系统设计、故障排查
customer_service 沟通、问题解决、效率、学习、责任 响应质量、产品知识、冲突处理、客户满意度
office_admin 沟通、问题解决、效率、学习、责任 文档管理、日程安排、协调能力、行政效率
sales 沟通、问题解决、效率、学习、责任 客户关系、谈判能力、产品知识、销售业绩
product_manager 沟通、问题解决、效率、学习、责任 产品策略、需求分析、跨部门协调、用户洞察

快速开始

环境要求

  • Python 3.9+
  • uv 包管理器

安装

# 克隆项目
git clone https://github.com/your-org/employee2skill.git
cd employee2skill

# 安装依赖
uv sync

# 安装开发依赖
uv sync --extra dev

运行测试

# 运行所有测试
uv run pytest tests/ -v

# 运行带覆盖率
uv run pytest tests/ -v --cov=analysis_layer --cov=engine_layer --cov=output_layer

使用示例

示例 1:采集 ChatGPT 对话数据

from data_layer.gateway.base_collector import CollectorConfig
from data_layer.collectors.ai_chat.chatgpt_export_collector import ChatGPTExportCollector

# 配置采集器
config = CollectorConfig(
    name="chatgpt",
    params={"data_file": "data/chatgpt_conversations.json"}
)

# 执行采集
collector = ChatGPTExportCollector(config)
batch = collector.collect("emp001")

print(f"采集到 {batch.count()} 条对话记录")

示例 2:分析员工能力

from analysis_layer.extractors.core.communication_extractor import CommunicationExtractor
from analysis_layer.extractors.core.efficiency_extractor import EfficiencyExtractor
from analysis_layer.extractors.ai_interaction.ai_usage_extractor import AIUsageExtractor

# 创建分析器
comm_extractor = CommunicationExtractor()
eff_extractor = EfficiencyExtractor()
ai_extractor = AIUsageExtractor()

# 执行分析
comm_result = comm_extractor.analyze(batch, "software_engineer")
eff_result = eff_extractor.analyze(batch, "software_engineer")
ai_result = ai_extractor.analyze(batch, "software_engineer")

print(f"沟通能力: {comm_result.core_capabilities['communication']['score']}")
print(f"工作效率: {eff_result.core_capabilities['efficiency']['score']}")
print(f"AI协作能力: {ai_result.core_capabilities['ai_collaboration']['score']}")

示例 3:评估可替代率

from analysis_layer.base_analyzer import AnalysisResult
from engine_layer.replacement_evaluator.evaluator_engine import EvaluatorEngine

# 合并分析结果
combined_result = AnalysisResult(
    employee_id="emp001",
    profession_type="software_engineer",
    core_capabilities={
        "communication": {"score": 80, "level": "good"},
        "efficiency": {"score": 75, "level": "good"},
        "problem_solving": {"score": 85, "level": "excellent"},
        "learning_ability": {"score": 70, "level": "good"},
    },
    confidence=0.85
)

# 执行评估
evaluator = EvaluatorEngine()
evaluation = evaluator.evaluate(combined_result)

print(f"可替代率: {evaluation.replacement_rate}%")
print(f"风险等级: {evaluation.risk_level}")
print(f"改进建议: {evaluation.recommendations}")

示例 4:生成报告和 Skill

from output_layer.report_outputs.single_employee_report import SingleEmployeeReportBuilder
from output_layer.report_outputs.team_summary_report import TeamSummaryReportBuilder
from engine_layer.capability_extractor.skill_output.skill_builder import SkillBuilder

# 生成员工报告
report_builder = SingleEmployeeReportBuilder()
report = report_builder.build(evaluation, combined_result)
print(report)

# 生成 Skill
skill_builder = SkillBuilder()
training_skill = skill_builder.build_training_skill(
    capability_name="沟通能力",
    capability_data={"score": 80, "level": "good", "evidence": ["响应及时", "表达清晰"]},
    source_employee="张三"
)
print(training_skill)

# 生成团队摘要
team_builder = TeamSummaryReportBuilder()
team_report = team_builder.build([
    {"employee_id": "emp001", "risk_level": "irreplaceable", "replacement_rate": 15, ...},
    {"employee_id": "emp002", "risk_level": "medium_risk", "replacement_rate": 50, ...},
])

示例 5:导出 Skill

from output_layer.skill_outputs.skill_registry import SkillRegistry
from output_layer.skill_outputs.exporters.json_exporter import JSONExporter
from output_layer.skill_outputs.exporters.yaml_exporter import YAMLExporter
from pathlib import Path

# 注册 Skill
registry = SkillRegistry()
registry.register("skill-comm-001", skill_data, category="communication")

# JSON 导出
json_exporter = JSONExporter()
json_exporter.export_skill(skill_data, "skill-comm-001", Path("output/skills"))

# YAML 导出
yaml_exporter = YAMLExporter()
yaml_exporter.export_skill(skill_data, "skill-comm-001", Path("output/skills"))

# 保存注册表
registry.save()

API 参考

数据层 API

方法 说明
BaseCollector collect(employee_id) 执行数据采集
BaseCollector get_supported_data_types() 返回支持的数据类型
BaseCollector validate_config() 验证配置有效性
DataStandardizer process_batch(batch) 标准化数据批次
DataStandardizer merge_batches(batches) 合并多个批次

分析层 API

方法 说明
BaseAnalyzer analyze(batch, profession_type) 执行能力分析
BaseAnalyzer get_supported_dimensions() 返回支持的维度
AnalyzerHub load_profession_config(type) 加载职业配置
AnalyzerHub analyze_employee(batch, type) 分析员工数据

引擎层 API

方法 说明
EvaluatorEngine evaluate(analysis_result) 执行可替代率评估
RiskClassifier classify(replacement_rate) 分类风险等级
RiskClassifier get_recommendations(level) 获取改进建议
MultiDimScorer calculate_weighted_score(scores) 计算加权分数
SkillBuilder build_training_skill(...) 构建培训形态 Skill
SkillBuilder build_handover_skill(...) 构建交接形态 Skill

输出层 API

方法 说明
SingleEmployeeReportBuilder build(evaluation, analysis) 生成员工报告
TeamSummaryReportBuilder build(evaluations) 生成团队报告
SkillRegistry register(id, data, category) 注册 Skill
SkillRegistry save() / load() 保存/加载注册表
JSONExporter export(data, path) 导出 JSON
YAMLExporter export(data, path) 导出 YAML

扩展开发

添加新的采集器

from data_layer.gateway.base_collector import BaseCollector, CollectorConfig
from data_layer.standardization.data_models import RawDataBatch

class MyCustomCollector(BaseCollector):
    """自定义采集器"""
    
    def __init__(self, config: CollectorConfig):
        super().__init__(config)
        # 初始化配置
    
    def collect(self, employee_id: str) -> RawDataBatch:
        # 实现采集逻辑
        records = []
        # ...
        return RawDataBatch(
            source="my_custom_source",
            employee_id=employee_id,
            records=records,
            metadata={}
        )
    
    def get_supported_data_types(self) -> list[str]:
        return ["my_data_type"]

添加新的能力提取器

from analysis_layer.base_analyzer import BaseAnalyzer, AnalysisResult
from data_layer.standardization.data_models import RawDataBatch

class MyCapabilityExtractor(BaseAnalyzer):
    """自定义能力提取器"""
    
    def get_supported_dimensions(self) -> list[str]:
        return ["my_capability"]
    
    def analyze(self, batch: RawDataBatch, profession_type: str) -> AnalysisResult:
        # 实现分析逻辑
        score = self._calculate_score(batch)
        
        return AnalysisResult(
            employee_id=batch.employee_id,
            profession_type=profession_type,
            core_capabilities={"my_capability": {
                "score": score,
                "level": self._get_level(score),
                "evidence": [...]
            }},
            confidence=0.8
        )

添加新的职业配置

config/profession_configs/ 目录下创建 YAML 文件:

# config/profession_configs/my_profession.yaml
profession_type: my_profession
display_name: 我的职业

core_dimensions:
  - communication
  - efficiency
  
specific_dimensions:
  - my_special_skill
  
replacement_risk_weights:
  my_special_skill: 0.3
  communication: 0.2
  efficiency: 0.2

项目结构

employee2skill/
├── data_layer/                    # 数据层
│   ├── gateway/
│   │   └── base_collector.py      # 采集器基类
│   ├── collectors/
│   │   ├── monitoring/            # 监控软件采集器
│   │   │   ├── base_monitoring_collector.py
│   │   │   └── internal_platform_collector.py
│   │   ├── ai_chat/               # AI 对话采集器
│   │   │   ├── base_ai_chat_collector.py
│   │   │   ├── chatgpt_export_collector.py
│   │   │   └── claude_export_collector.py
│   │   └── docs/                  # 文档采集器
│   │       ├── pdf_collector.py
│   │       └── markdown_collector.py
│   └── standardization/
│       ├── data_models.py         # 统一数据模型
│       └── standardizer.py        # 数据标准化器
│
├── analysis_layer/                # 分析层
│   ├── base_analyzer.py           # 分析器基类
│   ├── analyzer_hub.py            # 分析调度器
│   └── extractors/
│       ├── core/                  # 核心能力提取器
│       │   ├── communication_extractor.py
│       │   ├── efficiency_extractor.py
│       │   ├── problem_solving_extractor.py
│       │   └── learning_ability_extractor.py
│       └── ai_interaction/        # AI 协作提取器
│           └── ai_usage_extractor.py
│
├── engine_layer/                  # 引擎层
│   ├── replacement_evaluator/     # 可替代率评估
│   │   ├── evaluator_engine.py
│   │   ├── scoring/
│   │   │   └── multi_dim_scorer.py
│   │   └── risk_assessment/
│   │       └── risk_classifier.py
│   └── capability_extractor/      # 能力抽取
│       ├── extractor_engine.py
│       └── skill_output/
│           └── skill_builder.py
│
├── output_layer/                  # 输出层
│   ├── report_outputs/
│   │   ├── single_employee_report.py
│   │   └── team_summary_report.py
│   └── skill_outputs/
│       ├── skill_registry.py
│       └── exporters/
│           ├── json_exporter.py
│           └── yaml_exporter.py
│
├── config/
│   └── profession_configs/        # 职业配置
│       ├── general.yaml
│       ├── software_engineer.yaml
│       ├── customer_service.yaml
│       ├── office_admin.yaml
│       ├── sales.yaml
│       └── product_manager.yaml
│
├── legacy/                        # 兼容层
│   └── bridge.py                  # 数据迁移桥接器
│
├── tests/                         # 测试
│   ├── test_data_layer/
│   ├── test_analysis_layer/
│   ├── test_engine_layer/
│   ├── test_output_layer/
│   └── test_integration/
│
├── docs/                          # 文档
│   └── superpowers/
│       ├── specs/                 # 设计规范
│       └── plans/                 # 实施计划
│
├── pyproject.toml                 # 项目配置
└── README.md                      # 本文件

许可证

MIT License


贡献指南

欢迎提交 Issue 和 Pull Request。请确保:

  1. 代码风格符合项目规范
  2. 新功能包含相应测试
  3. 提交信息清晰明确

更新日志

v2.0.0 (2026-04-01)

全新架构升级:

  • 四层架构设计(数据层、分析层、引擎层、输出层)
  • 职业配置驱动的能力分析
  • 多源数据采集支持(监控软件、AI 对话)
  • 可替代率评估引擎
  • 能力 Skill 生成器
  • 多形态输出(培训、Agent、知识库、交接)
  • 6 种预置职业配置
  • 119 个测试用例全覆盖

About

Automatically extracts core capabilities from multi-source employee data (chat logs, monitoring traces, AI conversations), generates reusable capability Skills in multiple forms (training/agent/knowledge base/handover), and produces replacement rate evaluation reports to drive organizational cost efficiency and talent management.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages