全部文章
发布于 2026-07-10

对话生成员工画像:操作指南

在消息里对助手说话,完成探索、固化技能、按固定流程出画像。

来源 docs/技术博客/对话生成员工画像操作指南.md

表述:本文面向 工作区管理员与日常用户,说明如何在 消息 里对工作智能体说话,完成「探索 → 固化技能 →(可选)创建应用 → 按固定流程出报表」,无需在技能中心手工粘贴脚本或配置文件。实现对照见文末 实现对照

日期:2026-07-10 示例与模板examples/employee-profile-pipeline/ 相关机制docs/core-mechanisms/技能组成规范.mddocs/core-mechanisms/工作区应用.mdhelp/product-features/writing-workspace-skills.md


结论

Cadau 支持把 员工画像 类需求做成 可重复执行的程序管线,而不是每次让模型临场写 SQL、拼 HTML。

推荐路径:

  1. 在对话里 试跑一次(可选);
  2. 说一句 「创建员工画像技能」 → 平台安装内置模板(pipeline + 脚本 + 版式)并绑到当前智能体;
  3. 管理员在对话里 写入预定义查询(一次性);
  4. 日常只说 「生成某某的员工画像」 → 按固定步骤取数、组装、交付 HTML;
  5. 需要桌面入口时,对话 「做一个员工画像应用」

开始前:环境要求

说明
工作区已选工作区,且在 消息 中与 工作智能体 对话(非帮助智能体专用场景亦可,但需已绑定 HR 相关能力)
数据集成工作区 助手能力包 已开通 数据连接;成员已被授权访问 HR 库
HR 数据连接至少一条指向 HR / 人事库的连接(连接串、表权限在 管理端或协作设置 中配置——尚无「对话里新建数据库连接」
脚本执行平台与工作区已开通 脚本执行,且你的账号未被禁止;否则技能里的 run_script 无法跑组装脚本
管理员写入预定义查询(query.upsert)须 工作区管理员

五步操作(推荐话术)

第 1 步:探索(可选,第一次)

消息 输入:

生成赵江的员工画像

会发生什么

  • 智能体通过 数据连接 试查 HR 数据,并尝试生成一版画像(可能是 HTML 或结构化说明)。
  • 若尚未配置 预定义查询,可能只用 表预览 看样例——不能当作正式生产流程。

建议:探索满意后,用第 2、3 步固化为程序;不要长期依赖「临场发挥」。


第 2 步:一句话创建技能(核心)

同一会话或新会话工作智能体 说:

创建员工画像技能

或更完整:

创建一个员工画像技能,按固定 pipeline 取数,脚本组装 HTML

平台会自动

动作说明
写入 技能中心含取数清单(pipeline)、Python 组装脚本、HTML 版式模板
绑定当前智能体后续对话会自动参考该技能
填入 数据连接 slug若工作区已有名称/slug 含 HR、员工、人事 的连接,会自动替换模板中的占位

注意区分两种「生成技能」说法

你说得到什么
把刚才的流程沉淀成技能 / 根据对话生成技能从聊天记录 摘录 Markdown 步骤(说明书型,模型仍可能即兴改 SQL/HTML)
创建员工画像技能安装 内置程序模板(pipeline + 脚本 + 固定版式)——新建请用这句
更新 @某技能,按固定 pipeline 取数,脚本组装 html已有技能 替换为 pipeline 模板(正文 + 附属文件)——迁移旧技能用这句

第 2b 步:已有技能迁移为 pipeline(可选)

若技能中心里已有一条「员工画像」类技能(例如 LLM 写的说明书版),在 消息 中 @ 该技能后说:

更新 @生成员工画像HTML(含证件照与统计图),按固定 pipeline 取数,脚本组装 html

须同时包含更新/修改 + pipeline(或「固定取数」)+ 脚本组装 + 员工画像/HTML 等关键词。

平台会写入 references/pipeline.jsonscripts/assemble_profile.pyassets/profile.html,并发布新版本——不是仅用 AI 改 Markdown 正文。

若你只说「更新这条技能」而不提 pipeline,仍会得到 说明书型修订,不会自动安装固定取数流程。


第 3 步:写入预定义查询(管理员,一次性)

HR 库表结构因客户而异,需把 只读查询 配进数据连接。管理员可在对话中说:

帮我把员工画像需要的预定义查询写入 HR 数据连接

并补充:

请按 examples/employee-profile-pipeline 里 query-defs 的清单,逐条 query.upsert;写完后用「赵江」逐条 query.run 验证。

查询清单概要(完整 JSON 见 examples/employee-profile-pipeline/data-connection/query-defs.example.json):

query_id用途
employee_by_name按姓名查员工主档(得 empId、工号、入职日等)
employee_contact_by_emp_id联系方式
employee_org_by_emp_id部门、职务、上级
employee_contract_by_emp_id合同(可选)
employee_salary_by_emp_id薪资摘要(可选,视权限)
eaemp_photo_by_id / mostayentryphoto_by_empname证件照

验证示例(管理员或智能体在工具调用中):

{
  "source_slug": "你的HR连接slug",
  "action": "query.run",
  "params": {
    "query_id": "employee_by_name",
    "params": { "empName": "赵江" }
  }
}

若 SQL 与真实 CareTop/HR 表不一致,在对话中说:「按我们库表校正 employee_by_name 这条查询」,由管理员确认后 query.upsert 更新。

缺某条查询时(对话里临时补充)

不必事先配齐全部 query。用户问统计、查重、查证件号等而 query.list 无匹配时,智能体应:

  1. 提议一条只读 SELECT 与建议的 query_id(参数用 ?,勿用 @empName);
  2. 等用户确认(如「可以,加上并查」);
  3. 管理员 query.upsert,并 同一会话 query.run 给出结果。

禁止表预览 的前若干行回答「有没有重名」「身份证是否相同」等——表预览不能代表全库。

预定义查询 SQL 占位符:须 WHERE empName = ?params? 个数一致;@empName 会导致保存失败或执行报错。


第 4 步:创建应用(可选)

需要 应用桌面 入口(输入姓名即可出画像、看历史)时,在 消息 说:

做一个员工画像应用,输入姓名、能看历史记录

平台会

  • 应用 桌面创建 员工画像 应用(表单 + 历史列表);
  • 创建时写入 Python 脚本logic/generate_profile.py、组装脚本与版式资源);
  • 在应用里提交姓名后,直接运行这些脚本取数并生成 HTML,不必再绕回对话。

日常仍可在消息里说「生成某某的员工画像」;两种入口共用同一套取数与版式。


第 5 步:日常使用

配置完成后,用户只需:

生成赵江的员工画像

预期行为(固定程序,非临场编写):

sequenceDiagram
  participant U as 用户
  participant A as 工作智能体
  participant DS as 数据连接
  participant S as 组装脚本

  U->>A: 生成赵江的员工画像
  A->>A: 召回「员工画像」技能
  loop pipeline 各步骤
    A->>DS: query.run 固定 query_id
    DS-->>A: 行数据 / 照片 upload_id
  end
  A->>S: run_script 填入 HTML 模板
  S-->>A: output_files/*.html
  A->>U: 预览 / 下载链接

交付物:固定版式的 HTML 员工画像;缺字段显示「无」或「—」,不编造。

重名时:按姓名查到 多条 员工时,须列出 工号、创建时间、状态 等请用户选定 empId,未确认前 不得 继续取后续数据。

重名后的追问(如「这三人身份证是否相同」):应走 查证件号 的预定义查询(或按上文 提议 → 确认 → 保存 → 执行); 用表预览扫全表。


常见问题

照片不显示

  • HTML 内 img 须使用 /api/v1/uploads/{upload_id},不要用占位符域名。
  • 查询结果中的 BLOB 照片应由平台落盘为附件后再嵌入。

说「创建员工画像技能」没反应

  • 确认在 已选工作区工作智能体 会话中;
  • 话术须含 「员工画像」+「技能」+「创建/生成」(例如「生成赵江的员工画像」是 出报表,不是 建技能);
  • 后端需已部署含 员工画像内置模板 的版本(见实现对照)。

脚本执行失败

  • 检查 助手能力包 → 脚本执行 与工作区成员授权;
  • 在技能中心打开该技能,确认存在 scripts/assemble_profile.py

只有说明书、没有 pipeline

  • 说明用了 「沉淀对话」普通「更新技能」;请 @ 目标技能后说:「更新,按固定 pipeline 取数,脚本组装 html」,或在技能中心回滚后再迁移。

查重名 / 证件号答不准

  • 表预览 只能看未筛选的前若干行,不能用来判断全库有没有重名或对比身份证。
  • 应配置 预定义查询(如按姓名查 citizenID),或让管理员在对话确认后 保存查询再执行
  • SQL 须用 ? 占位,勿用 @empName

智能检查校正很慢或看不到进度

  • 数据集成 → 数据连接 表单中,「智能检查校正」会 逐条 检查;条目多时请等待进度条。
  • 全屏编辑 预定义查询时,进度对话框显示在页面最上层;若仍无响应,确认已配置 AI 服务后重试。

生成到一半停了、让你说「继续」

  • 直接在同一会话说:「继续把周珊珊的员工画像做完」「继续生成画像」 即可,不必解释技术细节。
  • 平台会在后台尽量自动续跑;若仍只说话不出结果,可新开一句:「生成某某的员工画像」(带上已确认的正确姓名)。
  • 若卡在 重名确认姓名候选,按智能体列表选好再回一句「就是这个」。

与管理端手工配置的关系

能力对话能否完成备注
创建员工画像 技能「创建员工画像技能」
已有技能 → pipeline「更新 @技能,按固定 pipeline 取数,脚本组装 html」
创建员工画像 应用「做一个员工画像应用」
写入 预定义查询能(管理员)query.upsert
新建 HR 数据库连接不能须在协作/管理端配置连接串与授权
开通 脚本执行不能须管理员在平台/能力包配置
日常出报表「生成某某的员工画像」

实现对照

用户概念实现
对话创建员工画像技能skillfromchat.tryEmployeeProfileSkillDraft,模板目录 backend/internal/skillfromchat/bundled/employee-profile/
对话创建员工画像应用appfromchat.FastRoute → 模板 employee_profileworkspaceapp.employeeProfileAppSpec
取数清单技能 references/pipeline.json
字段映射references/field-mapping.json
HTML 组装scripts/assemble_profile.py + assets/profile.html
示例仓库路径examples/employee-profile-pipeline/
平台动作入口skillfromchat.TryExecute(技能)、appfromchat.TryExecute(应用),在 handlers/chat.go 工作区会话中触发

延伸阅读

  • 员工画像 Pipeline 与数据连接对齐指南 — 管理员一次性 upsert 话术与对齐判据
  • 技能撰写要求:help/product-features/writing-workspace-skills.md(§8.4 脚本类、§8.6 预定义查询)
  • 工作区应用:docs/core-mechanisms/工作区应用.md
  • 从探索到程序化的设计思路:可与同事分享 examples/employee-profile-pipeline/README.md 中的架构说明