Uh oh!
There was an error while loading. Please reload this page.
docs(examples): add multi-agent notepad demo - #991
Conversation
d832b13 to
e4f02a0Compare1fbe666 to
e8c9d19CompareSigned-off-by: Alexander Watson <zredlined@gmail.com>
e8c9d19 to
e0b997dComparecarltonawong
commented
Apr 29, 2026
This is a useful demo shape. One small thing I would consider adding to the notepad contract is a bit more state metadata per note, even if the backing store stays plain markdown. For example: That would keep the example simple while showing the boundary between durable notes and live coordination state. |
zredlined
commented
Apr 30, 2026
@carltonawong Good feedback. Our focus here was to keep it brutally simple, and to build a more detailed reference example with different personas and collaboration between agents. Will plan to add the state metadata concepts in there. Thanks |
Uh oh!
There was an error while loading. Please reload this page.
carltonawong
commented
Apr 30, 2026
Thanks, that makes sense. Keeping the first demo brutally simple is the right call. The reference example feels like the better place to show |
h-network
commented
May 3, 2026
For the record: |
carltonawong
commented
May 3, 2026
Thanks for the pointer. That proposal is a useful adjacent reference. The part I’d still want any branch/markdown coordination pattern to make explicit is what state is durable evidence vs current authority: last verified result, abort/crash reason, and what the receiving agent has to recheck before acting. |
h-network
commented
May 3, 2026
@carltonawong Your follow-up listed three specifics under "durable evidence vs current authority": last verified result, abort/crash reason, and what the receiving agent has to recheck before acting. Those map to the lifecycle / signed-results / abort / crash-recovery primitives specified in NVIDIA/NeMo-Agent-Toolkit#1793. If you consider that proposal "adjacent" rather than the precursor, which public, citeable proposal does specify them in the form you'd view as precursor? |
carltonawong
commented
May 3, 2026
I don’t think #1793 is the precursor to this suggestion. This PR is a markdown/GitHub notepad demo, and my comment was about lightweight note-level metadata so synthesis agents don’t confuse stale scratch context with current authority. #1793 proposes a Redis-backed orchestration/runtime layer with lifecycle, abort, pub/sub, signed-results, and crash-recovery primitives. Those are adjacent concerns, but not the same proposal. |
h-network
commented
May 3, 2026
@carltonawongNVIDIA/NeMo-Agent-Toolkit#1793 issue body, verbatim: PR #991 README, verbatim: Both: N agents writing markdown to scoped git locations, single synthesizer/architect reading them, no inter-agent communication. The runtime concerns are conceded as in #1793. The markdown coordination layer is also in #1793 — quoted above. Which technical distinction between (ANNOUNCEMENT.md/REPLY.md over per-team branches) and (agent-N.md/summary.md over scoped paths) makes them adjacent rather than the same primitive? |
carltonawong
commented
May 3, 2026
@h-network I think this has drifted a bit beyond what I was trying to comment on. My original note was just a small observation about the notepad demo in this PR — specifically around adding lightweight metadata so a synthesis agent can distinguish stale vs current notes. I wasn’t trying to propose or compare full coordination models like #1793. Appreciate the discussion though — helpful context. |
Summary
Adds a runnable example that demonstrates a multi-agent shared notepad: isolated Codex agents run in separate OpenShell sandboxes, write markdown notes to a scoped GitHub path, and a synthesis agent reads those notes to produce a final summary.
The demo uses Codex as the agent runtime and GitHub as the durable notes backend, but the user-facing concept is a shared notepad for sandboxed agent coordination rather than a general-purpose agent memory system.
Related Issue
No issue yet. This PR captures the working demo for review.
Changes
examples/multi-agent-notepad/demo.shto launch parallel worker sandboxes and a synthesis sandbox.runs/<run-id>/**.Testing
mise run pre-commitpasses locally; attempted after installing missing local tools, but the Rust testsandbox_create_keeps_sandbox_with_forwardingfailed because port8080is already in use by the local gateway/Docker processbash -n examples/multi-agent-notepad/demo.shbash -npolicy.template.yamlwith Ruby YAMLgit diff --check -- examples/multi-agent-notepadmarkdownlint-cli2over the new README and prompt templates, after isolating unrelated untracked local docsmise run pre-commitpartial pass before the local port conflict: license check, markdownlint, Mermaid lint, Python format/lint/typecheck/tests, Helm lint, Rust format/check all completed successfullyDEMO_AGENT_COUNT=2against disposable private repozredlined/openshell-codex-memory-demo-20260427-102752agent-1.md,agent-2.md, andsummary.mdexist through the GitHub Contents APIChecklist