Skip to content

[Channel RFC] Proto schema definitions (7 proto files) #256

@eanzhao

Description

@eanzhao

Parent RFC: #254

Scope

本 RFC 所有跨边界类型先以 .proto 定义,遵循 AGENTS.md "先 proto 再实现" 强约束。

Proto files

  1. agents/Aevatar.GAgents.Channel.Abstractions/protos/chat_activity.proto

    • ChatActivity / ConversationReference / ParticipantRef / MessageContent / AttachmentRef / AttachmentKind / ActionElement / CardBlock / MessageDisposition / ActivityType / ConversationScope / ChannelId / BotInstanceId / TransportMode
  2. agents/Aevatar.GAgents.Channel.Abstractions/protos/channel_contracts.proto

    • EmitResult / ComposeCapability / ComposeContext / ChannelCapabilities / StreamingSupport / AuthContext / PrincipalKind / StreamChunk
  3. agents/Aevatar.GAgents.Channel.Abstractions/protos/schedule.proto

    • ScheduleState / ProjectionVerdict
  4. 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
  5. 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
  6. agents/Aevatar.GAgents.Channel.Runtime/protos/interaction_journal.proto

    • PreAckJournalEntry
  7. 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

  • 7 个 proto 文件生成并验证通过
  • C# generated types 可编译
  • proto lint CI gate 通过(protolint / buf lint

References

  • RFC §4.1 实施约束:跨边界类型 Proto 先行
  • RFC §4.1.1 Proactive command events field schemas

Dependencies

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions