6.11.1 Introduction
Agent Platform describes the assistants of Moonitoring and how they are allowed to act. One agent runtime serves every assistant: MooChat for Organizations and the assistant of the Console for staff are two agent definitions with their own tools and model profiles. Tools are published by the products, like capabilities; a tool is offered to the model only when the sender of the latest message may use it, and a tool that writes waits for the user's confirmation. Model profiles are managed in the Console, and every change is a PlatformAuditEvent.
6.11.1.1 Model notes¶
One runtime, many agents¶
One agent runtime, many agents. MooChat for Organizations and the assistant in the Console for staff are two AgentDefinitions run by the same code, with different tools and model profiles. The runtime holds no model key and reads no database: it asks the AI gateway for completions and the products' MCP servers for facts.
Permissions come from the caller¶
- Permissions come from the caller, never from the agent. A tool is offered to the model only when the sender of the latest message holds every one of the tool's required capabilities (none required: any sender of the agent) and, for an Organization, active entitlements for the agent's feature and for every feature the tool requires.
- A plan is a set of entitlements, so a tool reserved to a plan names the feature only that plan grants. Every message is authorized as its own sender, so a shared conversation never widens anyone's rights.
- A tool that writes is never run on the model's word alone: the user confirms it, and the confirmation is the message that authorizes the call.
Model profiles¶
Model profiles are managed in the Console: staff with moochat.agent_models.manage create and edit them and choose which one an agent uses by default; every change is a PlatformAuditEvent. The profile's data classes make the residency rule structural: a profile that is not EU-only can never receive the output of a personal-data tool.
6.11.1.2 Diagram¶
Entities of this domain, their subtypes and the references between them. References to other domains are listed on each entity page.
6.11.1.3 Entities¶
- AgentDefinition: A configured assistant: its purpose, who may use it (Organizations or staff), the entitlement feature it needs, the tools bound to it and the model profile it uses by default.
- AgentModelProfile: A model and its settings as the AI gateway calls it: provider, model id, region, the data classes it may receive, its tier and parameters.
- AgentTool: One callable the model can see, published by a product together with its capabilities.
- AgentToolBinding: Which tools an agent may use.
- AgentConversation: A thread between a user and an agent.
- AgentMessage (immutable): One message of a conversation: from the user, the assistant or a tool.
- AgentToolCall (immutable): One invocation of a tool during a turn and its outcome: run, denied for lack of a capability or entitlement, refused by the user, or failed.
- AgentConnector (future work): A kind of external system a tool may need per-Organization credentials for: a vendor cloud, a calendar, e-mail.
- AgentConnectorInstance (future work): One Organization's connection to a connector: who consented, where the credential lives (the secret manager, never the database) and whether it was revoked.