交互原语:poke/reaction/profile_like(Slice 3/5 of #19) #22
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#19(Phase 3 PRD:能力与多模态)
What to build
ConversationInput新增interaction: InteractionEvent | None字段,InteractionEvent {kind: "poke"|"reaction", target_message_id?, emoji?};render()渲染为固定 tag<poke>/<reaction emoji="..." target="...">,走既有 reactive 累积/触发路径(不新增独立调度通道)。新增两个可调用工具
poke_send(user_id)/reaction_send(message_id, emoji),capabilities.poke_send/capabilities.reaction_send为假时这两个工具不注册进TOOL_SCHEMAS(模型看不到,而非看到了调用报错)。
新增独立工具
like_profile(user_id);EgressPort新增like_profile(user_id) -> None;capabilities.profile_like为假时该工具同样不注册进TOOL_SCHEMAS。ingress 侧
poke/reaction_receive能力位是声明性的——host 自己决定是否接入对应平台事件,core 不需要对这两位做主动门控(
interaction字段出现就处理,不出现就没有)。Acceptance criteria
ConversationInput.interaction字段新增,InteractionEvent数据结构定义完成render()对带interaction的消息正确渲染<poke>/<reaction>固定 tag;与普通text消息同批次出现时两者都被正确渲染进
assemble_context()产出的 context,互不覆盖poke_send/reaction_send/like_profile工具 schema 新增,EgressPort对应新增方法capabilities.poke_send=False时poke_send不出现在当轮TOOL_SCHEMAS里;capabilities.reaction_send=False/capabilities.profile_like=False同理True时模型调用该工具会正确触发EgressPort对应方法FakeEgress新增记录pokes_sent/reactions_sent/likes,覆盖以上分支的测试Blocked by
#20(能力声明地基——需要
CapabilitySet契约存在)