Parent RFC: #254
Scope
本 RFC 所有跨边界类型先以 .proto 定义,遵循 AGENTS.md "先 proto 再实现" 强约束。
Proto files
-
agents/Aevatar.GAgents.Channel.Abstractions/protos/chat_activity.proto
ChatActivity / ConversationReference / ParticipantRef / MessageContent / AttachmentRef / AttachmentKind / ActionElement / CardBlock / MessageDisposition / ActivityType / ConversationScope / ChannelId / BotInstanceId / TransportMode
-
agents/Aevatar.GAgents.Channel.Abstractions/protos/channel_contracts.proto
EmitResult / ComposeCapability / ComposeContext / ChannelCapabilities / StreamingSupport / AuthContext / PrincipalKind / StreamChunk
-
agents/Aevatar.GAgents.Channel.Abstractions/protos/schedule.proto
ScheduleState / ProjectionVerdict
-
agents/Aevatar.GAgents.Channel.Runtime/protos/conversation_events.proto
ConversationTurnCompletedEvent
ConversationContinueRequestedEvent(actor-to-actor proactive command envelope)
ConversationContinueRejectedEvent
ConversationContinueFailedEvent(含 oneof retry_policy { google.protobuf.Empty not_retryable; int64 retry_after_ms; })
ChannelBotRegistrationEntry / UserAgentCatalogEntry / DeviceRegistrationEntry(含 IsDeleted bool for tombstone retention)
RejectReason / FailureKind enums
-
agents/Aevatar.GAgents.Channel.Runtime/protos/session_store.proto
SessionState / LeaseToken
- 注意:
LeaseToken.Owner = bytes owner = 1;(Guid 16 bytes);LeaseToken.ExpiresAt = int64 expires_at_unix_ms(不用 google.protobuf.Timestamp)
-
agents/Aevatar.GAgents.Channel.Runtime/protos/interaction_journal.proto
-
agents/Aevatar.GAgents.Channel.Runtime/protos/payload_quarantine.proto
PlatformQuarantineEnvelope(metadata + encrypted_blob_ref;不含明文 raw payload)
Out of proto scope(保持 C# only)
ResolvedAuthContext(进程内 runtime-only,禁止跨 actor / 跨网络)
- Adapter-specific native payloads:
LarkCardPayload / SlackBlockKitPayload / DiscordEmbedPayload
- Interface types (
IChannelTransport / IChannelOutboundPort / IBot / IMessageComposer / ITurnContext)
Acceptance
References
- RFC §4.1 实施约束:跨边界类型 Proto 先行
- RFC §4.1.1 Proactive command events field schemas
Dependencies
Parent RFC: #254
Scope
本 RFC 所有跨边界类型先以
.proto定义,遵循AGENTS.md"先 proto 再实现" 强约束。Proto files
agents/Aevatar.GAgents.Channel.Abstractions/protos/chat_activity.protoChatActivity/ConversationReference/ParticipantRef/MessageContent/AttachmentRef/AttachmentKind/ActionElement/CardBlock/MessageDisposition/ActivityType/ConversationScope/ChannelId/BotInstanceId/TransportModeagents/Aevatar.GAgents.Channel.Abstractions/protos/channel_contracts.protoEmitResult/ComposeCapability/ComposeContext/ChannelCapabilities/StreamingSupport/AuthContext/PrincipalKind/StreamChunkagents/Aevatar.GAgents.Channel.Abstractions/protos/schedule.protoScheduleState/ProjectionVerdictagents/Aevatar.GAgents.Channel.Runtime/protos/conversation_events.protoConversationTurnCompletedEventConversationContinueRequestedEvent(actor-to-actor proactive command envelope)ConversationContinueRejectedEventConversationContinueFailedEvent(含oneof retry_policy { google.protobuf.Empty not_retryable; int64 retry_after_ms; })ChannelBotRegistrationEntry/UserAgentCatalogEntry/DeviceRegistrationEntry(含IsDeletedbool for tombstone retention)RejectReason/FailureKindenumsagents/Aevatar.GAgents.Channel.Runtime/protos/session_store.protoSessionState/LeaseTokenLeaseToken.Owner = bytes owner = 1;(Guid 16 bytes);LeaseToken.ExpiresAt = int64 expires_at_unix_ms(不用google.protobuf.Timestamp)agents/Aevatar.GAgents.Channel.Runtime/protos/interaction_journal.protoPreAckJournalEntryagents/Aevatar.GAgents.Channel.Runtime/protos/payload_quarantine.protoPlatformQuarantineEnvelope(metadata +encrypted_blob_ref;不含明文 raw payload)Out of proto scope(保持 C# only)
ResolvedAuthContext(进程内 runtime-only,禁止跨 actor / 跨网络)LarkCardPayload/SlackBlockKitPayload/DiscordEmbedPayloadIChannelTransport/IChannelOutboundPort/IBot/IMessageComposer/ITurnContext)Acceptance
protolint/buf lint)References
Dependencies
IProjectionWriteDispatcher.DeleteAsync定义影响 projector proto)