Module: visibility¶
from adk_fluent._visibility import infer_visibility, VisibilityPlugin
Event visibility controls which agent outputs are shown to end users in multi-agent pipelines.
infer_visibility(node, has_successor=False, policy="filtered") -> dict[str, str]¶
Walk an IR tree and classify each agent’s visibility.
Parameters:
node— IR node (frompipeline.to_ir())has_successor— Whether this node has a successor in the pipeline (default: False)policy— Visibility policy:"filtered","transparent", or"annotate"(default: “filtered”)
Returns: Dictionary mapping agent names to visibility classifications: "user", "internal", or "zero_cost".
Example:
ir = pipeline.to_ir()
vis = infer_visibility(ir)
# {"classifier": "internal", "handler": "user"}
VisibilityPlugin¶
ADK BasePlugin that filters or annotates agent events based on visibility classification.
Constructor¶
VisibilityPlugin(visibility_map, mode="filter")
Parameters:
visibility_map— Dict frominfer_visibility()mode—"filter"(strip content from internal events) or"annotate"(add metadata tags)
Behavior¶
Runs on
on_event_callbackafter each event is appendedIn
filtermode: stripscontent.partsfrom internal agent eventsIn
annotatemode: adds_visibilitykey to event metadataError events always pass through regardless of visibility
Pipeline Policies¶
Builder methods on pipelines that configure visibility:
Method |
Effect |
|---|---|
|
All agents user-facing |
|
Only terminal agents user-facing |
|
All events pass through with metadata |
Per-Agent Overrides¶
Method |
Effect |
|---|---|
|
Force agent events to be user-facing |
|
Force agent events to be internal |