Agent is a singleton-per-session component without any graphical UI.
Agents can provide services to other modular components.
Any modular component can connect to an agent and access its services (including modules, shells, and other agents).
An agent is given access to two services provided by the modular framework in its incoming namespace:
fuchsia.modular.ComponentContext, which gives the agent access to functionality that is shared across components run under the modular framework (e.g. modules, shells, agents).
fuchsia.modular.AgentContext, which gives agents access to agent specific functionality.
An agent is expected to provide the following services to the modular framework in its outgoing namespace:
fuchsia.modular.Lifecycleallows the framework to signal the agent to terminate gracefully.
Agents are launched when a client requests a service that is provided by the agent.
"Session agents" and "startup agents", specified in a (Modular config)[guide/config.md], are started eagerly during session startup.
Exposing FIDL services
Agents can expose services to other components. They do so by publishing
these services in their outgoing directory. Other components (agents, shells, modules)
can connect to these services through their incoming directory (aka. namespace)
like any other service, provided a mapping in the
for the requested service exists.
See Guide to configuring the Modular Framework for information on