Coordinate independent reporting and an editor
Use INDEPENDENTLY EACH to give each assignment its own conversation, then combine the results. This newsroom has a reusable reporting process and an editor who receives the collected…
Coordinate independent reporting and an editor
Use INDEPENDENTLY EACH to give each assignment its own conversation, then
combine the results. This newsroom has a reusable reporting process and an
editor who receives the collected reports.
# Runnable newsroom desk: supplied evidence, isolated reporting, editorial join.
TEAM newsroom
reader USING "beat-reporter"
editor USING "news-editor"
END
PROCESS investigate(assignment) WITH reporter
ASK(reporter, "Report this beat. Distinguish the supplied facts from uncertainty.", assignment)
END
PROCESS cover_story(assignments) WITH reader, editor
reports = INDEPENDENTLY EACH assignment IN assignments
RUN investigate(assignment) USING reporter = reader
END
story = ASK(editor, "Combine these independent reports into a careful story. Preserve uncertainty.", reports)
{reports: reports, story: story}
END
report = cover_story([
{beat: "safety", evidence: "The Port Vale footbridge closed after inspectors found corrosion. The notice does not establish a collapse risk."},
{beat: "civic", evidence: "The council allocated 200000 for repairs. A reopening date has not been announced."}
]) USING newsroom
Each RUN investigate(...) creates fresh participant identities. The reporters
share the beat-reporter model configuration but do not share conversations.
The editor receives the ordered reports only after every assignment finishes.
The result contains both the reports, keyed by one-based input position, and
the edited story. An empty assignment list produces no reporting calls; the
editor still receives the empty collection.
A child may hold its own local discussion, including SHARE and UNSHARE among
its fresh participants. It receives only its explicit arguments, not the
parent's private history or disclosures. Keeping a parent model configuration
in USING does not copy that model's earlier conversations.
Run it in Desktop
- Save the source in Author.
- Open Agent → Tasks → Processes and choose
report. - Select configured models for
beat-reporterandnews-editor. - Press Start process. Inspect the reporter conversations, editor reply,
and structured
reports/storyresult in the same panel.
Saving and recalculation do not start inference. Start uses your configured provider account. A waiting human participant uses the existing reply controls; closing the panel does not cancel the process.
What independence means
Independence controls information flow. The current owner schedules these children serially, preserving the same isolated views and ordered join. It does not promise simultaneous provider calls. To continue one conversation across items, use ordinary EACH instead.
This initial independent data traversal admits pure work and fresh RUN
children. It rejects direct use of outer participants, outer disclosures,
borrowed rooms and external operations, including operations hidden in child
processes. A child cannot turn this restriction off. Independent work cannot
use a WITH carry. Return proposals first and perform external operations in
the sequential process after the join.
The current collection ceiling is 32 items. Parameter and computed collections reserve that ceiling even for shorter inputs. A directly authored literal list or an immutable local list/alias reserves its structural item count instead, with the admitted maximum checked before any child runs. Empty literals conservatively reserve one body. This example's single reporting call per child and final editor call fit the defaults. A failed or uncertain child stops the group; partial-success collection is not provided by this form.
The example uses supplied fictional evidence. Population-generated roles, authorized archive retrieval, citations, shared-document revision and correction memory are remaining pieces of the full newsroom scenario.