# ADR 7: Platform-Native Plugin Contracts **Date**: 2026-04-28 ### Decision Each platform uses its native plugin interface: Hermes `BasePlatformAdapter`, pi extension API, Agent Zero plugin system. ### Context Each platform has matured, battle-tested interfaces for receiving and sending messages. A unified A2A contract would add unnecessary abstraction and latency for local agent communication. Platform-native contracts are reliable, handle connection-state/retry automatically, and follow each platform's established patterns. - **Hermes**: `BasePlatformAdapter` — Python, gateway-based, handles connection lifecycle - **pi**: Extension API — TypeScript modules in `~/.pi/agent/extensions/`, registers tools via `pi.registerTool()`, hooks lifecycle events. See pi docs at `/usr/lib/node_modules/@earendil-works/pi-coding-agent/docs/extensions.md` - **Agent Zero**: A0 plugin system — Python, agent-native plugin API ### Consequences - Three separate plugin implementations - Each plugin leverages platform-specific reliability features - Plugin developers need familiarity with each platform - Cross-platform @all-bots still works because each bot processes the same Zulip event independently