openclaw/plugin-sdk/channel-inbound를 사용합니다.
네이티브 전송, 수신 확인, 영속적 전달, 실시간 미리보기 동작에는
openclaw/plugin-sdk/channel-outbound를 사용합니다.
핵심 헬퍼
buildChannelInboundEventContext(...): 정규화된 채널 정보를 프롬프트/세션 컨텍스트에 투영합니다. 채널이 소유한 발신자/채팅 메타데이터는channelContext를 통해 전달하며, Plugin 훅에서는 이를ctx.channelContext로 확인합니다. 채널별 필드를 추가하려면 이 하위 경로의PluginHookChannelSenderContext또는PluginHookChannelChatContext를 확장합니다.runChannelInboundEvent(...): 하나의 인바운드 플랫폼 이벤트에 대해 수집, 분류, 사전 점검, 확인, 기록, 디스패치, 완료 처리를 실행합니다.dispatchChannelInboundReply(...): 이미 조립된 인바운드 응답을 전달 어댑터를 통해 기록하고 디스패치합니다.
runtime.channel.inbound.* 아래의 동일한 헬퍼를 호출할 수 있습니다.
dispatchChannelInboundReply(...) 입력을 조립합니다. 새로운 전송 경로에서는
대신 channel-outbound의 메시지 어댑터와 영속적 메시지 헬퍼를 사용해야 합니다.
마이그레이션
runtime.channel.turn.* 런타임 별칭은 제거되었습니다. 다음을 사용합니다.
- 원시 인바운드 이벤트에는
runtime.channel.inbound.run(...)을 사용합니다. - 조립된 응답 컨텍스트에는
runtime.channel.inbound.dispatchReply(...)를 사용합니다. - 인바운드 컨텍스트 페이로드에는
runtime.channel.inbound.buildContext(...)를 사용합니다. - 자체 디스패치 클로저를 이미 조립하는 채널 소유의 준비된 디스패치 경로에만
더 이상 권장되지 않는
runtime.channel.inbound.runPreparedReply(...)를 사용합니다.
turn이라는 이름의 채널 API를 도입하지 않아야 합니다. 모델 또는
에이전트 턴 관련 용어는 에이전트/제공자 코드 내부에서만 사용하고, 채널 Plugin에서는 인바운드,
메시지, 전달, 응답이라는 용어를 사용합니다.