客服排班测算

SKILL研究检索
研究检索 未标注权限 许可证不明确
安装这个技能

根据客服系统导出的时段话务数据,诊断现有人力的盈亏,并按目标接起率测算每个整点需要多少坐席,输出一条 24 小时人力需求曲线。当用户提到排班、人力测算、坐席数量、客服排班、话务量、进线量、接起率、排队、要几个客服、人手够不够、高峰时段人力、班次安排、workforce 时,都应当使用本技能。它不替企业决定几班制,只给出每个整点的合理人力,供企业自行套用到两班或三班制。联系方式:zenobiazizi.skills@foxmail.com

一句话选型结论

按资料字段整理

客服排班测算是研究检索类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类研究检索 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_ae827bc3/staffing-calculator
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

研究检索
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_ae827bc3仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791725674
正文体量11.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查资料并整理出处

让模型按主题查资料,并把引用来源整理成清单。

网页与文献要点提炼

把长文、论文、网页压成能直接看的要点。

竞品与行业汇总

按关键词汇总竞品动态与行业信息。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在研究检索场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
客服排班测算当前 未标注权限 未标注 未标注 未标注 有
寻找技能 浏览器控制 GitHub 仓库 3120.0 万 Codex、Claude、Cursor 有
自我改进 Agent 接触敏感数据 ClawHub 市场 1646.4 万 OpenClaw 有
灵魂追踪 联网访问 GitHub 仓库 758.9 万 Codex、Claude、Cursor 有
自我完善 联网访问 ClawHub 市场 682.9 万 OpenClaw 有
微软代工厂 调用外部服务 GitHub 仓库 661.4 万 Codex、Claude、Cursor 有

SKILL.md 全文

11.7 KB
模型实际读到的说明书原文,来自技能仓库

客服人力测算与排班诊断

把一张时段话务表,变成两样东西:一份「现在排得够不够」的诊断,和一条「每个整点该有几个人」的人力需求曲线。

本技能面向在线(livechat / IM)客服——坐席可同时接待多个会话。这与电话客服(一人同时只接一通)的算法口径不同,请勿用于纯电话呼叫中心。

这个技能做什么、不做什么

做:诊断历史人力盈亏、按目标接起率测算每小时所需坐席数、输出人力需求曲线和热力图。

不做:不生成具体班次表(不决定谁上早班、几点到几点)。原因是拼班次要考虑请假、技能组、个人偏好等企业内部约束,技能无从得知。技能只输出客观的「每个整点需要几人」,企业拿这条曲线去套自己的两班/三班制,既覆盖业务又不浪费人力。

工作流程

  1. 收集话务数据
  2. 清洗与字段识别,回显给用户确认
  3. 第一段——诊断现有人力盈亏
  4. 第二段——测算所需人力曲线
  5. 渲染成报告页面并交付

第一步:收集话务数据

需要用户提供按时段拆分的话务数据。让用户直接粘贴或上传从客服系统导出的表即可,不要求特定格式。

必备字段(名称允许变体,见下一步的识别规则):

  • 时段:小时或半小时粒度,如 09:00、9-10 点、09:00-10:00
  • 进线量:该时段呼入/咨询总量
  • 接起量:实际接通/受理的量
  • 平均会话时长:单通平均耗时

有则更准的字段:

  • 排队量:排队等待的会话数——有它诊断段能判断得更准

如果只有进线量、缺接起量,诊断段会退化为只能估算,仍可进行测算段。缺时段、进线量或会话时长任一项,无法计算,提示用户补充。

此外测算段用到一个参数:单人活跃并发数(默认 3)。可在收集数据时一并问用户「你们一个坐席一般同时接几个会话」,用户说不清就用默认 3,并在结果中说明用的是默认值。


第二步:清洗与字段识别(这一步最容易出错,必须认真做)

用户导出的表格式千差万别,直接计算几乎一定会出错。先清洗、回显、让用户确认,再算。

字段名识别(同义词映射)

  • 时段 ← 时段 / 时间 / 小时 / hour / 时间段 / 时点
  • 进线量 ← 进线量 / 呼入量 / 来话量 / 咨询量 / 会话量 / 总量 / inbound / offered
  • 接起量 ← 接起量 / 接通量 / 受理量 / answered / handled
  • 排队量 ← 排队量 / 排队数 / 等待数 / queued / waiting
  • 平均会话时长 ← 平均会话时长 / 平均通话时长 / 平均处理时长 / AHT / 平均时长 / avg handle time

数值清洗

  • 千分位逗号:1,234 → 1234
  • 百分号:接起率若给的是 95% 这类,转成小数 0.95
  • 空值/横杠:-、空白、N/A → 该时段按缺失处理,不参与该项计算,并在回显中标注

时长归一化(务必转成「秒」再算)

时长字段格式多样,统一转为秒:

  • mm:ss(如 03:45)→ 分×60+秒 = 225 秒
  • hh:mm:ss(如 00:03:45)→ 225 秒
  • 带单位(225秒、3.75分钟)→ 抽数字按单位换算
  • 纯数字且单位不明:数值 < 60 视为分钟(3.75 → 225 秒),≥ 60 视为秒(225 → 225 秒)。这是推测,必须在回显里写明「识别为 X 秒/通」让用户核对。

回显确认

清洗完,向用户展示一份简短的识别结果再继续:

  • 识别到的时段数、时间粒度(整点/半点)
  • 平均会话时长识别为多少秒/通
  • 哪些时段的哪些字段缺失、如何处理的
  • 一句话:「以上识别无误的话我就开始测算,有出入请指出」

用户确认或未提异议,进入计算。


第三步:诊断现有人力盈亏

目标:不需要用户告诉我们「当时排了几个人」,用结果指标反推每个时段的人力状态。

反推当时的在线人力

该时段实际消耗工时(人) ≈ 接起量 × 平均会话时长(秒) ÷ 3600

这是「至少投入了这么多人力」的下限估计。

判定每个时段的状态

按目标接起率 95%(见第四步说明)为基准线,结合三个信号打标签:

  • 人手不足(红):接起率明显低于目标(接起量/进线量 < 0.95),或排队量显著偏高。说明当时人不够,在丢客户。
  • 基本匹配(绿):接起率达标且排队可控。
  • 人力过剩(黄):接起率满、话务量低于该时段人力可承载量较多。说明当时人闲着。

诊断段输出

  • 一句总体结论:全天有几个时段人手不足、几个过剩
  • 逐时段的状态标签(喂给热力图)
  • 点名最突出的问题时段:「周二 20:00-22:00 接起率仅 82%、排队严重,是全周最缺人的时段」「周三 14:00-16:00 接起率 100% 但话务量低,人力偏富余」

诊断的价值在于具体——不要泛泛说「高峰要加人」,要指到具体时段、给出具体数字。


第四步:测算所需人力(在线客服并发口径)

这是技能的计算内核。分两步:先用排队论(Erlang C)算出需要多少「会话通道」以保证目标接起率,再按坐席的活跃并发能力把通道数换算成实际人数。

为什么不能用「话务量 × 时长 ÷ 3600」这种朴素公式:它假设话务均匀到达,会系统性少算——真实话务会扎堆,要用排队论才能保住目标接起率。

为什么要除以并发数:在线客服一个坐席能同时处理多个会话,所以真正需要的人数是「会话通道数 ÷ 单人活跃并发数」。若不除,会得出电话客服口径的人力(数倍虚高),完全不符合 livechat 场景。

参数

  • 目标接起率:默认 95%,即 95% 的会话在 20 秒内被接起。可让用户指定(行业常见 95%–99%);未指定就用 95%/20秒。
  • 平均会话时长:用清洗后的秒数。
  • 单人活跃并发数:默认 3。指一个坐席同时真正在处理的会话数(不是系统设置的接待上限,也不含已咨询完但未关闭的静默会话)。3 是在线客服较理想的活跃并发,再高坐席会吃力、回复变慢。可让用户按自身业务复杂度调整——简单咨询可高些,复杂问题应低些。

> 关于并发口径:本技能用「进线量 × 会话时长」计算工作负荷,这个口径只包含真正处理会话所消耗的时间,静默挂着、已咨询完未关闭的会话不产生会话时长、不进这个账。因此反推得到的是活跃并发的等效负荷,天然排除了「挂着但没在聊」的僵尸会话,无需额外校正。

计算方法(对每个时段分别算)

第一步用 Erlang C 求出满足目标接起率所需的最少「会话通道数」,第二步除以并发数并向上取整得到人数。参考实现(agent 按此逻辑用代码计算,不要心算):

import math

def erlang_channels(calls_per_hour, aht_seconds, target_sl=0.95, target_wait_sec=20):
    if calls_per_hour &lt;= 0:
        return 0
    intensity = calls_per_hour * (aht_seconds / 3600.0)   # 话务强度(Erlang)
    N = max(1, math.ceil(intensity))
    while True:
        A = intensity
        if N &lt;= A:
            N += 1; continue
        sum_terms, term = 0.0, 1.0
        for k in range(N):
            if k &gt; 0: term = term * A / k
            sum_terms += term
        top = term * A / N
        pw = (top * (N/(N-A))) / (sum_terms + top * (N/(N-A)))   # 排队概率
        sl = 1 - pw * math.exp(-(N-A) * (target_wait_sec / aht_seconds))
        if sl &gt;= target_sl:
            return N
        N += 1

def required_staff(calls_per_hour, aht_seconds, concurrency=3,
                   target_sl=0.95, target_wait_sec=20):
    channels = erlang_channels(calls_per_hour, aht_seconds, target_sl, target_wait_sec)
    return math.ceil(channels / concurrency)   # 通道数 → 实际人数

对半点粒度的数据,把该半小时的会话量换算成每小时速率(×2)再代入。

测算段输出

  • 一条 24 小时人力需求曲线:每个整点建议的坐席数
  • 全天折算:总人时、按 8 小时/人折算的全职人数
  • 一句引导:「以上是各整点满足 95% 接起率所需的人力(按单人活跃并发 3 计算),贵方可据此曲线安排两班或三班制,使排班既覆盖高峰又不在低谷浪费人力」

第五步:渲染报告并交付

不要自己手写报告 HTML 或重新实现算法。 本技能自带 scripts/staffing_report.py,Erlang C 算法、并发换算、数据清洗辅助、报告模板都在里面,且已验证。你只需:清洗数据 → 构造 records → 调用 build_report()。

import sys
sys.path.insert(0, &#x27;scripts&#x27;)  # 指向技能包内的 scripts 目录
from staffing_report import build_report, clean_number, to_seconds

# records:每个时段一条,aht 用 to_seconds() 转成秒,数值用 clean_number() 清洗
records = [
    dict(seg=&quot;09:00&quot;, offered=1234, answered=1180, queued=45, aht=to_seconds(&quot;03:20&quot;)),
    # ... 其余时段
]

# verdict_lines 传入你根据诊断结果撰写的结论句子(可含 &lt;span class=&#x27;hi&#x27;&gt;...&lt;/span&gt; 高亮),
# 不传则用脚本的自动结论。建议自己写,更具体、更有价值。
verdict_lines = [
    &quot;全天有 &lt;span class=&#x27;hi&#x27;&gt;3 个时段人手不足&lt;/span&gt;,集中在晚间高峰。&quot;,
    &quot;&lt;span class=&#x27;hi&#x27;&gt;20:00 最缺人&lt;/span&gt;——接起率仅 86.2%、排队 260,应配 50 人。&quot;,
    &quot;午间 12:00-13:00 人力宽松,可后移支援晚高峰。&quot;,
]

out_path, summary = build_report(
    records, concurrency=3, target_sl=0.95, target_wait_sec=20,
    verdict_lines=verdict_lines,
    out_path=&#x27;人力测算报告.html&#x27;)

参数说明:concurrency 用第一步问到的并发数(默认 3);target_sl/target_wait_sec 用目标接起率(默认 0.95/20秒)。函数返回报告路径和汇总 dict(含 peak、shorts、total、fte 等,可用于写交付话术)。

报告已包含:顶部参数概览、诊断结论、现状 vs 建议人力曲线图、分时段明细表、使用说明。生成后用 present_files 交付给用户。

交付时必须说明的口径

  • 目标接起率用的是多少(默认 95%/20秒)
  • 单人活跃并发数用的是多少(默认 3,或用户指定值)——并说明这是最敏感的参数,业务复杂度不同应相应调整
  • 平均会话时长按 X 秒计算
  • 若时长做过「单位不明」的推测,重申一次识别值
  • 技能给的是「每整点所需人力」,班次由企业自行套用

交付话术保持专业、不生硬(面向企业场景)。不要在交付时罗列每个时段的数字——报告里都有,用户打开就看到,文字部分只点关键结论。


计算与数据不外传

本技能全部计算在本地完成,用户上传的话务数据不发送到任何外部服务。这是与「问卷生成」等需要云端模型的技能的关键区别——排班测算是确定性计算,无需外部 API。

常见问题

5 问
答案由本站依据条目字段整理
客服排班测算怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_ae827bc3/staffing-calculator。安装方式为未标注。装完刷新技能列表或重开客户端。

客服排班测算支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

客服排班测算权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

客服排班测算收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

客服排班测算用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。