Install
openclaw skills install @legionspace-hackathon/legionclaw-create-ai-meeting在 LegionClaw 中为用户创建智能会议。
openclaw skills install @legionspace-hackathon/legionclaw-create-ai-meetingcreate-ai-meeting,或需要创建智能会议。调用固定接口,为用户创建智能会议。userId 作为 URL 查询参数拼接在请求地址上。其中 userId 取值为 LegionClaw 会话标识串按 : 拆分后的第二段 agentid 的前 32 位(若 agentid 不足 32 位,直接传完整 agentid)。解析规则见下文。成功后在对话正文中向用户展示会议号。
本技能面向 在 LegionClaw 内执行的 Agent:会议与当前任务所绑定的 agentid(会话标识第二段)对应。
agent:<agentid>:<渠道>:<用户 id>。渠道为空时为三段 agent:<agentid>:<用户 id>(无 ::);有渠道时为四段起。拆段后 URL 查询参数 userId 的值仅允许为第 2 段 agentid 的前 32 位(不足 32 位则传完整 agentid)。code == "000000" 或 code == 0 为成功标志;HTTP 状态码为 2xx 不代表业务成功。curl 或等价请求须在 LegionClaw 下发任务时的运行环境中发起。agentid,除非用户明确要求排查。https://legion.tongfudun.com/im/meeting/saveMeeting/v1ForAiPOSTuserId=<agentid前32位>https://legion.tongfudun.com/im/meeting/saveMeeting/v1ForAi?userId=fe535f475db6471d81cf0a1fcd5566bd响应为 JSON,按以下结构解析:
| 字段 | 含义 |
|---|---|
code | 业务状态码;成功为字符串 "000000" 或数值 0;其他值表示失败 |
message | 业务提示信息 |
data.meetingId | 会议唯一标识 |
data.callId | 通话标识 |
data.code | 会议号(用户可见,格式如 435 959 951) |
data.imPin | 会议 PIN 码 |
示例:
{
"code": "000000",
"message": "成功",
"data": {
"meetingId": "0e0602fcd2414ca9ac93d276f2a10a03",
"callId": "8cee7ace26cc4c35995b42da23daea6d",
"code": "435 959 951",
"imPin": "241796"
}
}
在响应 JSON 中 code 为 "000000" 或 0 时,在用户可见消息中输出会议创建成功提示。
固定格式:会议创建成功,会议号:<data.code>
data.code 是会议号,格式如 435 959 951会议创建成功,会议号:435 959 951
data.code 缺失或为空:仍按成功处理,输出 会议创建成功(不显示会议号)。出现以下任一情况时,按以下优先级返回(对用户不要暴露 URL/IP/端口):
message 字段:基于 message 原意做简短、友好的用户提示。msg 而无可用 message:可基于 msg 原意做简短友好提示。message 与 msg:返回固定回复 创建会议失败,请联系管理员。适用场景包括但不限于:
code 不为 "000000" 或 0 的业务失败不要依赖用户手动粘贴整串会话标识作为默认流程。
OPENCLAW_SESSION_ID)。agent:...)。不要把「请用户手动粘贴整串会话标识」作为默认或首选步骤。userId 值时,校验非空后可直接作为请求体 userId(不要求 agent: 前缀);这不替代从 LegionClaw 自动取会话标识的常规流程。LegionClaw 会话标识串的语义为:
agent:<agentid>:<渠道>:<用户 id>
渠道省略(为空)时,实际传输格式为三段(不会用 :: 占位),第三段直接是用户 id:
agent:<agentid>:<用户 id>
有渠道时为四段(第三段为渠道名,第四段为用户 id),例如:
agent:<agentid>:openai-user:<用户 id>
按英文冒号 : 拆段后:
| 形态 | 段数(典型) | 第 1 段 | 第 2 段 agentid | 第 3 段 | 第 4 段 |
|---|---|---|---|---|---|
| 有渠道 | 4 | agent | agentid,只取此段 | 渠道 | 用户 id |
| 无渠道 | 3 | agent | agentid,只取此段 | 用户 id(不是渠道占位) | — |
与旧规则一致:无论三段或四段,agentid 一律为拆段后的第 2 段;不要把第 3 段(无渠道时的用户 id)误当 agentid。
解析规则:将整串按 : 拆分;若第一段为 agent 且至少两段(NF >= 2)且第二段非空,则 agentid = 第二段。然后取 agentid 的前 32 位作为 URL 查询参数 userId(若 agentid 长度不足 32 位,则使用完整 agentid)。否则视为无效格式,不要猜测;应**重新按「获取会话标识串」**从 LegionClaw 侧取得合法串后再解析。若用户主动提供了可与 userId 同用的 agentid 值,校验非空后可直接用作查询参数(不再要求 agent: 前缀)。
典型示例(有渠道,四段):
agent:fe535f475db6471d81cf0a1fcd5566bd1684487565205:openai-user:703f56dd37f84fa682266a8471f26984agentid:fe535f475db6471d81cf0a1fcd5566bd1684487565205userId(前 32 位):fe535f475db6471d81cf0a1fcd5566bd渠道为空(三段,无双冒号):
agent:fe535f475db6471d81cf0a1fcd5566bd1684487565205:703f56dd37f84fa682266a8471f26984agentid:fe535f475db6471d81cf0a1fcd5566bd1684487565205userId(前 32 位):fe535f475db6471d81cf0a1fcd5566bd更多示例:
| 会话标识串(整串) | agentid | userId(前 32 位) |
|---|---|---|
agent:fe535f475db6471d81cf0a1fcd5566bd1684487565205:openai-user:703f56dd37f84fa682266a8471f26984 | fe535f475db6471d81cf0a1fcd5566bd1684487565205 | fe535f475db6471d81cf0a1fcd5566bd |
agent:fe535f475db6471d81cf0a1fcd5566bd1684487565205:703f56dd37f84fa682266a8471f26984 | fe535f475db6471d81cf0a1fcd5566bd1684487565205 | fe535f475db6471d81cf0a1fcd5566bd |
agent:test_001:main | test_001 | test_001(不足 32 位,传完整) |
agent:alice:worker | alice | alice(不足 32 位,传完整) |
userId 取值,可直接采用。再按上文规则解析出 agentid,截取前 32 位作为 URL 查询参数 userId。curl(将 USER_ID 替换为解析结果):curl -sS -X POST "https://legion.tongfudun.com/im/meeting/saveMeeting/v1ForAi?userId=${USER_ID}"
可用一行从环境变量中的会话标识串解析 agentid 并截取前 32 位(示例变量名 OPENCLAW_SESSION_ID,以实际运行时提供的变量名为准):
AGENTID=$(echo "${OPENCLAW_SESSION_ID}" | awk -F: '$1=="agent" && NF>=2 && length($2)>0 {print $2; exit}')
USER_ID=$(echo "${AGENTID}" | cut -c1-32)
curl -sS -X POST "https://legion.tongfudun.com/im/meeting/saveMeeting/v1ForAi?userId=${USER_ID}"
code 为字符串 "000000" 或数值 0,视为成功;否则按失败口径处理。agent、第二段非空。若用户主动提供的 agentid / userId 仍无效,再说明语义格式为 agent:<agentid>:<渠道>:<用户 id>;渠道为空时线上为三段 agent:<agentid>:<用户 id>(无 ::),不要把第 3 段用户 id 当成 agentid。userId 是否为空或含非法字符。通用安全输出要求:
若 URL、字段名、成功响应 JSON 结构或会话标识格式变更,请同步更新本文件,避免 agent 与真实服务不一致。