This skill should be used when a group or channel has multiple speakers and the model needs to identify the current speaker, maintain a workspace-local CSV table, or look up a sender by channel/chatId/senderId instead of guessing.
本 skill 用于多角色沟通中的人物识别。
senderId 对应谁时,先查表,不要猜在以下场景读取并使用本 skill:
senderId 记成 alias / role / notescore 只负责提供原始身份事实,例如:
channelchatIdsenderId这些是事实输入,不是人物语义。
senderId -> alias / role / notes优先使用 workspace 内简单文本文件,不要引入数据库。
推荐路径:
.msgcode/character-identity/<channel>-<chat-token>.csv例如:
.msgcode/character-identity/feishu-oc_xxx.csv.msgcode/character-identity/telegram-123456.csv默认表头:
channel,chat_id,sender_id,alias,role,notes,first_seen_at,last_seen_at
示例:
channel,chat_id,sender_id,alias,role,notes,first_seen_at,last_seen_at
feishu,feishu:oc_xxx,ou_0443f43f6047fd032302ba09cbb374c3,老哥,owner,默认主要服务对象,2026-03-10T14:19:49Z,2026-03-10T14:28:56Z
feishu,feishu:oc_xxx,ou_abc123,产品同学,member,,2026-03-11T09:00:00Z,2026-03-11T09:20:00Z
优先从当前上下文读取:
chatIdsenderId这些事实缺失时,不要猜当前说话人是谁。
用 channel + chatId + senderId 在当前 workspace 的 CSV 中查找:
允许更新的情况:
senderId 命中不要因为语气或上下文猜测就直接写表。
这里要区分两类信息:
nickname / alias
owner
默认顺序:
不要直接脑补人物身份。
first_seen_atlast_seen_atalias / role / notesowner 配置是稳定事实,不等于人物表本身。可以使用:
MSGCODE_PRIMARY_OWNER_FEISHU_IDSMSGCODE_PRIMARY_OWNER_TELEGRAM_IDSMSGCODE_PRIMARY_OWNER_DISCORD_IDSMSGCODE_PRIMARY_OWNER_IMESSAGE_IDS作为判断 role=owner 的强证据,但人物表仍由本 skill 在 workspace 内维护。
冻结规则:
owner 角色只尊重配置匹配结果。owner。nickname / alias / notes。feishu_list_members 拉 senderId + name,再写入 CSV。一句话:
owner 是配置事实;昵称才允许靠自我介绍更新。
senderId 查人物识别先看 senderId,忘记就查当前 workspace 的 CSV;查不到再问,不要猜。