Harmonia
Owns intent routing, authoritative reads, handoffs, bounded correction, and escalation.
Nimi & Ryan
Produce grounded analysis, strategy, and content plans.
Temi
Agentically operationalizes an approved Ryan strategy; deterministic code persists the plan and selects one item.
Writing & review
Deterministic code runs separate typed Noni and Dara calls for the selected item.
Team topology
Managed invocation lifecycle
1
Reconstruct a typed snapshot
The worker reads authoritative Firestore state and creates a serializable invocation seed.
2
Create or resume a namespaced session
Agent Engine receives a deterministic session identity derived from the user and operation. Existing managed state is read without mutating the caller’s payload; a missing session is created once and reused after process restarts.
3
Stream typed deltas
ADK
output_key values and event state_delta records carry specialist handoffs. Required keys are validated before use.4
Persist validated results
Deterministic routes write accepted results to Firestore. Session state alone cannot advance the workflow.
5
Reconcile interrupted streams
If the managed event stream terminates after state was durably committed, Harmonia rereads the session and accepts only validated state that differs from the invocation seed. Missing or partial output remains a visible failure.
AgentContractError with a role, stable code, safe operator message, and optional schema path. The failure pipeline retains these fields in its typed envelope and durable activity event; model output and validation payloads never become operator-facing error text.
Coordination and bounded course correction
Harmonia is the deterministic ADK root. The host places the exact requested specialist in session state; the root resolves that registered child directly instead of asking a model to invent or rewrite an agent transfer. Every specialist receives a host-createdharmonia.handoff/v1 envelope and acknowledgement bound to the specialist, operation ID, input digest, and output contract.
Specialists return semantic judgment only. Application code computes canonical identifiers and digests, materializes artifacts, records actual callback/tool evidence, and decides whether an output can advance. A missing authority read, invalid evidence reference, malformed structured result, or incomplete acknowledgement produces a safe repair code. Harmonia can run at most two issue-specific corrections against the original trusted input. A third invalid result becomes agent_output_repair_exhausted and is escalated; the coordinator does not broaden authority, change the goal, or fabricate a successful handoff.
Structured output remains enabled for tool-capable Gemini specialists. Tool calls and output schemas are complementary boundaries: callbacks record real tool execution, while the schema constrains the final semantic result. Skill activation records are identified separately and are never presented as tool results.
Activity and telemetry
Every specialist invocation emits a strict metadata-only log, trace, and metric projection with tenant, job, operation, agent, stage, model, timing, usage counts, outcome, and real W3C trace/span IDs. Tool activity is projected only when ADK supplies real trace context. Unknown fields fail validation, and the schema cannot carry prompts, model responses, transcripts, drafts, credentials, or provider bodies. The projection powers Monitoring → Agent activity. Native ADK OpenTelemetry signals continue to Cloud Logging, Cloud Monitoring, and Cloud Trace; the projection is a bounded operator view, not a replacement for those backends and never an authority source.Versioned ADK skills
Nimi loads exactly onenimi-analysis-skills skill and at least one relevant allow-listed analysis
reference. This filesystem skill contains method guidance only.
Dara loads exactly one dara-editing-skills skill and at least one approved editing reference before
review. The seven references route editorial triage, grounding and claims, structure and clarity,
brief/voice/audience fit, platform/CTA usability, safety and inclusion, and bounded feedback. Dara
has no search, Memory Bank, workflow, approval, or effect tool. Runtime callbacks record the actual
loader sequence and deterministic validation rejects missing, duplicate, out-of-order, or
unapproved resources. The guidance can shape editorial judgment but cannot serve as factual
evidence, a brand constraint, or authority.
Noni loads exactly one noni-writing-skills skill and at least one approved writing reference before
drafting.
Temi loads exactly one temi-editorial-planning-skills skill and at least one of six allow-listed
planning references. Its separate read-only tools expose commitments, capacity, asset readiness,
verified posting-window observations, calendar projection state, and blocked dependencies from the
exact immutable planning snapshot. The trace must load references before data reads and every read
must match the request’s snapshot ID. Skill prose is methodology and never evidence.
Runtime research tools
Search and internal-data reads are tools, not skills. Nimi’s optional native Google Search and Vertex AI Search tools run in isolated request-bound child agents. The runtime validates a separate research trace and native grounding metadata before persistence. Noni has two separate read capabilities:search_verified_publications for tenant-scoped posts with applied receipts and successful
verification, and native ADK google_search through an isolated brief-bound research agent.
It has no trend-feed, Memory Bank, approval, or effect tool. The eleven references cover thought leadership,
hooks and introductions, MECE structure, case studies, storytelling, bad-content diagnosis,
persuasion, outlining, titles and headlines, convincing content, and narrated short-form video scripts. Skill guidance shapes writing
but never counts as evidence for a factual claim. Research-derived claims and URLs must cite the
live tool evidence ID recorded in the actual trace.
Nova loads exactly one skill before any data tool. The runtime records the real
skill/tool envelopes in managed ADK state and rejects answers whose selected
skill, tool sequence, retry behavior, status, errors, claims, or evidence IDs
do not match that trace. Skill prose guides reasoning; deterministic validation
enforces the boundary.
See Agent tool contracts for the exact envelope and permission model.
