conference (v1)
CRITICAL — 开始前 MUST 先阅读 ../ihr-shared/SKILL.md,其中包含共享运行规则、时间处理原则和 JSON 协议。
核心概念
- ConferenceSession:面谈/会议会话,通过
conferenceSessionId标识。 - Search Result:首轮搜索返回的候选会话集合,包含
conferenceSessionIds、returnedCount、truncated和可选previewItems。 - Preview Item:标准化会话预览项,包含搜索状态、时间、多类预览文本,以及
currentQueryUserIdentity。搜索结果没有基础信息权限时会删除整条预览项,其他受限字段返回null。 - Session Documents:按会话 ID 读取的文档化结果,是搜索后的第二步动作;每项通过
access表达四类内容权限,按需使用fullDetail=true读取完整转写。 - Avatar Template:数字人面试配置模板。
+search-avatar-template和+create-avatar-template返回的templateId是数字人模板业务 ID,可作为+launch --interviewCode使用;它不是 conference 大纲模板templateId。 - Launch Request:带参创建并发起面谈的请求。目的和模板使用静态 ID,普通系统内人员必须先通过
ihr-cli base +selectStaffs查找并确认;可选outline.mdText传入 Markdown 格式面谈大纲。数字人面谈通过thirdPartyPlatform=DIGITAL_AVATAR或interviewMode=DIGITAL_AVATAR和digitalAvatarConfig.interviewCode选择,不暴露后端角色码。
核心场景
1. 搜索历史面谈记录
- 当用户在问“开过的会”“历史面谈”“最近发生过的面谈”“某段时间聊过什么”时,优先使用本技能。
- 默认先执行搜索,再决定是否继续读取会话文档。
- 搜索结果很多时,优先返回候选和预览,不要直接全量读取详情。
2. 读取会话文档
- 当用户已经指定会话,或明确需要摘要、待办、转写摘要、完整转写等内容时,再读取会话文档。
+documents是+search之后的第二步动作,不应默认替代搜索。- 只有用户明确需要逐句完整转写时才开启
--fullDetail,避免不必要地读取和返回大体量内容。
3. 创建并发起面谈
- 当用户明确说“发起、预约、创建会议、安排面谈”时,才使用
+launch。 - 如果用户只说“准备一下、拟一个面谈安排”,不要发起;可以先整理参数或使用
--dry-run。 - 如果只给了人员姓名,优先按内部人员处理,先调用
ihr-cli base +selectStaffs查找候选并确认id,不能凭姓名猜 staffId;只有用户明确说明是外部人员,或内部人员查找无匹配且用户确认按外部人员处理时,才允许不传staffId。 - 如果缺少时间、面谈官、面谈对象,先追问,不调用发起接口。
- 用户提供面谈大纲时,按 Markdown 文本传入
--outlineMdText或 JSON 的outline.mdText;未提供或内容为空时由服务端后台自动生成。 - 如果用户明确要求数字人面谈,先确认数字人面试模板:已有模板时可用
+search-avatar-template查询;没有合适模板时可用+create-avatar-template创建。返回的templateId填到+launch --interviewCode。 - 数字人面谈候选人必须有
name和phone或email,可以没有staffId。 - 数字人面谈不要要求或构造
roleCode、DA_*、REGULAR_*。数字人面谈官用sourceType=DIGITAL_HUMAN表示,staffId是数字人配置 ID;未给面谈官或唯一数字人面谈官未给staffId时会默认补1。
资源关系
ConferenceSession
├── Search Result
│ ├── conferenceSessionIds[]
│ └── previewItems[]
│ ├── status
│ ├── startTime / endTime / createTime
│ ├── finalScore
│ ├── basicText / outlineText / smartMinutesText / topicText
│ ├── summaryText / todoText / transcriptSummaryText
│ └── currentQueryUserIdentity
└── Session Documents
└── previewItems[]
├── access.basicInfo / outline / smartSummary / transcript
├── status
├── startTime / endTime / createTime
├── basicText / outlineText / smartMinutesText / topicText
├── summaryText / todoText / transcriptSummaryText
├── currentQueryUserIdentity
└── transcriptSegments[] # 仅 fullDetail=true 且允许查看转写时返回
Launch Request
├── purposeId / templateId
├── startTime / duration / interviewMode / thirdPartyPlatform
├── digitalAvatarConfig
├── interviewers[]
├── interviewees[]
├── others[]
└── outline.mdText
Avatar Template
├── templateId # 用作 +launch --interviewCode
├── templateName / interviewName
├── jobTitle / digitalHumanId
├── questionsCount / usageCount / hasDraft
└── updatedAt
路由规则:用户先问“有哪些历史面谈/聊过什么/最近开过什么”时,优先使用
+search。只有在用户明确需要阅读内容、摘要、待办、转写摘要,或已指定conferenceSessionId时,才进入+documents。用户明确要创建、预约或发起面谈,且关键参数已确认时,才进入+launch。禁止误用:
+launch有真实副作用,会创建会话并发起三方会议。人员、时间或意图不确定时不要调用。默认策略:先搜候选,再按需读文档;不要把会话文档读取当成首轮入口。
权限语义:
+search与+documents的无权限响应不同。搜索没有基础信息权限时删除整条previewItem,且不返回access;文档批量读取会按请求顺序保留每个 session,无基础信息权限或 session 不可用时仅返回conferenceSessionId和四项全为DENIED的access,其他业务字段为null。人员依赖:
+launch依赖ihr-cli base +selectStaffs。拿到姓名时优先查找内部人员;分项参数或 JSON 里的内部人员必须使用已确认的staffId,不要把姓名直接当作人员 ID。只有用户明确说明是外部人员,或内部人员查找无匹配且用户确认按外部人员处理时,外部人员才可以没有staffId,但必须提供姓名、手机号、邮箱等足够识别和联系的信息。参与人未传sourceType时,有staffId的人员按当前产品补IHR360/WORK100,没有staffId的人员补EXTERNAL。面谈大纲:
+launch支持 Markdown 格式大纲。传入outline.mdText后,服务端会直接保存该大纲,不触发后台自动生成;不传或传空白时,服务端按模板后台生成大纲。数字人面谈:数字人面谈仍使用
+launch,传thirdPartyPlatform=DIGITAL_AVATAR或interviewMode=DIGITAL_AVATAR,并传digitalAvatarConfig.interviewCode。如果用户没有给出可用interviewCode,先用+search-avatar-template搜索;没有合适模板时再用+create-avatar-template创建。候选人只允许一个,必须有联系方式;others不支持;真人监考官只有在允许介入时才作为非DIGITAL_HUMAN面谈官传入,且必须且只能有一个。不要向用户暴露后端角色码。
Shortcuts(推荐优先使用)
Shortcut 是对常用操作的高级封装(ihr-cli conference +<verb>)。有 Shortcut 的操作优先使用。
| Shortcut | 说明 |
|---|---|
+search |
搜索历史面谈记录,支持结构化条件、文本搜索和首轮预览 |
+documents |
按会话 ID 读取文档化预览或完整转写详情 |
+search-avatar-template |
查询已有数字人面试模板,返回可作为 interviewCode 的 templateId |
+create-avatar-template |
创建并发布数字人面试模板,返回可作为 interviewCode 的 templateId |
+launch |
带参创建并发起面谈,要求人员 ID 已确认 |
Current Implementation
当前主实现已经在 ihr-cli 子项目内:
| Shortcut | 当前命令 |
|---|---|
ihr-cli conference +search |
ihr-cli conference +search |
ihr-cli conference +documents |
ihr-cli conference +documents |
ihr-cli conference +search-avatar-template |
ihr-cli conference +search-avatar-template |
ihr-cli conference +create-avatar-template |
ihr-cli conference +create-avatar-template |
ihr-cli conference +launch |
ihr-cli conference +launch |
Scenes
可复用的自然语言测试问题集位于:
scenes/ihr-conference-skill-test-questions.txt
能力入口
公开入口只有 ihr-cli conference +search、ihr-cli conference +documents 和 ihr-cli conference +launch。字段契约通过命令 help 或 schema 能力确认;不要在 skill 中暴露底层路径,也不要使用 ihr-interface、raw API、curl/httpie/wget 或自写 HTTP client。