dopetalk does not endorse any advertised product nor does it accept any liability for it's use or misuse


Our Discord Notification Server invitation link is https://discord.gg/jB2qmRrxyD

Author Topic: The Multi-Model AI Group Chat with Psuedo SHARED Mini Context Window RAG-style  (Read 121 times)

Offline smfadmin (OP)

  • SMF (internal) Site
  • Administrator
  • Sr. Member
  • *****
  • Join Date: Dec 2014
  • Location: Management
  • Posts: 586
  • Reputation Power: 0
  • smfadmin has hidden their reputation power
  • Last Login:Today at 06:24:20 PM
  • Supplied Install Member
πŸ“Ž Click on me to view the list of attachments
#FileSizeDL
1checkpoint.md7.5 KB⬇️
2shared_memory_3shr.json122.7 KB⬇️
3orchestrator.py46.5 KB⬇️
4Scripts.zip19.4 MB⬇️
5The AI Orchestrator dot py - Claude.pdf980.2 KB⬇️


TEAM CHECKPOINT β€” Multi-Agent Project Status

Last updated: 2026-08-06 22:43 AEST Paste this entire file into any session (web or native/API) to resync.

Agent Prefix Key

  • Cl1- = Claude A (analytical/detailed)
  • Cl2- = Claude B (concise/witty)
  • Ge-Β  = Gemini
  • OA-Β  = ChatGPT
  • Gr-Β  = Groq
  • Cl-chat- = Claude via claude.ai web/app chat (outside orchestrator.py itself β€” used for this checkpoint and for direct code edits to orchestrator.py)
  • Andrew edits carry no prefix (Architect/QA β€” final say, no attribution needed)

Rule: when adding a line to Verified Facts or Open Items, prefix it with your tag so edits don't get silently overwritten or misattributed. Edit Log entries always include prefix + timestamp.

Edit Log

  • [prior] Cl1- created initial checkpoint structure
  • [prior] Cl1- added prefix convention per Andrew's instruction
  • [2026-08-06] Cl-chat- rebuilt this checkpoint after a session adding /mode 2shr, /mode 3shr, mode-scoped /ping, and a cohesion-note bug fix to orchestrator.py

Team Roster & Roles

  • Andrew β€” Architect & QA Lead β€” Active
  • Claude A (Cl1-) β€” Lead Programmer (analytical/detailed) β€” Active
  • Claude B (Cl2-) β€” Lead Programmer (concise/witty) β€” Active
  • ChatGPT (OA-) β€” Systems Analyst / Assistant Programmer β€” Active
  • Gemini (Ge-) β€” Relief Programmer / Presentation Manager β€” Onboarded; not used in 3shr anymore (swapped for Claude A, see below) β€” role otherwise not yet exercised
  • Groq (Gr-) β€” Fast-inference agent (free tier, OpenAI-compatible) β€” Wired in, available
  • Grok (xAI) β€” Not integrated β€” separate from Groq, pending decision

File / Component Status

File / componentStatusUse it?
orchestrator.pyModified this session (2shr, 3shr, mode-scoped /ping, cohesion-note fix) β€” compiles clean (py_compile), not yet live-API-testedYes β€” this is the current version, supersedes any copy from before this session
history/shared_memory.jsonExisting groupchat pool β€” TF-IDF relevance Γ— recency Γ— diversity-cap retrieval, top-5/turn, filelock + atomic writesYes β€” unchanged, still backs groupchat mode
history/shared_memory_2shr.jsonNew β€” full-transcript pool (last 40 entries shown in full, not retrieval-filtered) for /mode 2shr (Andrew + ChatGPT only)Yes β€” created automatically on first 2shr use
history/shared_memory_3shr.jsonNew β€” same full-transcript approach for /mode 3shr (Andrew + ChatGPT + Claude A, not Gemini)Yes β€” created automatically on first 3shr use
memory_tools.py (standalone module, delivered separately, not yet pasted into orchestrator.py)Experimental β€” gives agents real function-calling read_memory/write_memory tools instead of always-inject. Built before orchestrator.py was uploaded, so its TF-IDF scorer is a reconstruction and does not match orchestrator.py's real shared_memory_retrieve() exactlyHold off β€” don't wire in as-is; if function-calling access is still wanted, redo it against the real shared_memory_retrieve()/_load_pool() methods instead of the standalone reimplementation
agents/claude_agent.py, agents/openai_agent.py, agents/gemini_agent.py, agents/groq_agent.pyUnchanged this sessionYes
PDFsearch.py / ISE project (drugs-and-users.org)Unrelated to this session's changes β€” see prior checkpoint facts belowYes, per prior status

Verified Facts β€” Don't Re-Check

  • Cl1- orchestrator.py runs on Windows 10 Intel NUC via cmd.exe; Andrew also runs/tests it via Termux on Android
  • Cl1- Modes: solo, solo_groq, solo_gemini, parallel, alternate, relay, collaborative, groupchat, 2shr, 3shr, a_then_groq, a_then_gemini, ab_then_groq, a_then_groq_gemini
  • Cl1- Mode switching: /mode <name> always sticks until changed again (the old once/permanent distinction is accepted for back-compat but ignored)
  • Cl1- History is per-agent (JSON in history/); groupchat/2shr/3shr additionally persist a shared pool to disk
  • Cl-chat- /mode 2shr: private two-party session, Andrew + ChatGPT only. Every turn shows the last 40 entries in full (not relevance-filtered) from shared_memory_2shr.json, wrapped in a "SHARED SESSION LOG β€” use for continuity" instruction block. No other agent ever sees or writes to this pool.
  • Cl-chat- /mode 3shr: same full-transcript mechanism, three-party: Andrew + ChatGPT + Claude A (originally built with Gemini, swapped to Claude A per Andrew's stated preference for Sonnet 5 and reused the same Claude A instance/history as other modes). ChatGPT and Claude A take turns within a round, each seeing what the other just said. Own pool: shared_memory_3shr.json.
  • Cl-chat- Fixed a bug in 3shr's original cohesion note: it was one static string sent to both agents saying "the other agent (ChatGPT or Gemini)" β€” meaning each agent could read itself as the "other" one. Now built per-agent inside the loop, naming the specific other participant by name.
  • Cl-chat- /ping used to always hit the full configured roster regardless of mode. Now scoped via a new mode_ping_targets() method β€” only pings the agents the current mode actually uses (e.g. 2shr β†’ ChatGPT only; 3shr β†’ ChatGPT + Claude A; groupchat β†’ full roster). "Not configured" warnings are scoped the same way.
  • Cl1- shared_memory.json (groupchat's pool): TF-IDF-style relevance Γ— recency weighting Γ— per-speaker diversity cap, top-5 hits/agent/turn, filelock-based concurrency, atomic writes (temp file + os.replace()), corrupted files backed up as .corrupt-<timestamp> instead of silently wiped
  • Cl1- /memory <query> command exists and works: read-only lookup into the groupchat pool only (not 2shr/3shr's pools) β€” no send, no write
  • Cl1- PDFsearch.py is live in production on drugs-and-users.org (DB joins verified, PDF.js viewer working, dedup-by-attachment implemented, page-count preserved, whole-document links only)

Open Items β€” Decisions, Not Blockers

  • Cl-chat- 2shr and 3shr have not been live-API-tested β€” only py_compile clean and code-reviewed. First real run is the actual smoke test.
  • Cl-chat- TWOSHR_FULL_LOG_LIMIT / THREESHR_FULL_LOG_LIMIT both set to 40 (entries shown in full each turn) as an untuned guess β€” adjust if context runs too long/short in practice
  • Cl-chat- memory_tools.py's function-calling approach (agents choosing when to read/write memory, vs. always-inject) is still unintegrated and built against a reconstructed retrieval algorithm β€” needs a decision: drop it, or redo it against orchestrator.py's actual shared_memory_retrieve()
  • Cl1- Whether groupchat's shared_memory.json should show every agent the FULL pool each round vs. the current filtered top-5 β€” still unanswered
  • Cl1- Archiving/dedup/pin-forget memory-management layer on top of shared_memory.json β€” discussed, not built
  • Cl1- Whether Grok (xAI) gets added as a distinct agent, separate from Groq
  • Cl1- PDFsearch.py DB credentials β€” still root/plaintext as of last known state; scoped read-only user not yet confirmed implemented
  • Cl1- Tokeniser stub (.split()) in PDFsearch.py/PDFIndexer.py β€” real tokeniser not yet wired in

Known Issues / Blockers

  • None currently active

Next Actual Action

Run /mode 2shr and /mode 3shr for real (live API calls) and confirm both behave as designed β€” full 40-entry transcript injection, correct per-agent cohesion wording in 3shr, and /ping only hitting the right agents per mode. Report back anything that doesn't match before building further on top of either mode.


Post Merged: August 07, 2026, 01:03:21 PM
πŸ“Ž ◀️ Click on the maroon coloured arrow to view all attachments
#FileSizeDL
1checkpoint.md7.5 KB⬇️
2shared_memory_3shr.json122.7 KB⬇️
3orchestrator.py46.5 KB⬇️
4Scripts.zip19.4 MB⬇️
5The AI Orchestrator dot py - Claude.pdf980.2 KB⬇️


TEAM CHECKPOINT β€” Multi-Agent Project Status

Last updated: 2026-08-07 15:01 AEST Paste this entire file into any session (web or native/API) to resync.

Agent Prefix Key

  • Cl1- = Claude A (analytical/detailed)
  • Cl2- = Claude B (concise/witty)
  • Ge-Β  = Gemini
  • OA-Β  = ChatGPT
  • Gr-Β  = Groq
  • Cl-chat- = Claude via claude.ai web/app chat (outside orchestrator.py itself β€” used for this checkpoint and for direct code edits to orchestrator.py)
  • Andrew edits carry no prefix (Architect/QA β€” final say, no attribution needed)

Rule: when adding a line to Verified Facts or Open Items, prefix it with your tag so edits don't get silently overwritten or misattributed. Edit Log entries always include prefix + timestamp.

Edit Log

  • [prior] Cl1- created initial checkpoint structure
  • [prior] Cl1- added prefix convention per Andrew's instruction
  • [2026-08-06] Cl-chat- rebuilt this checkpoint after a session adding /mode 2shr, /mode 3shr, mode-scoped /ping, and a cohesion-note bug fix to orchestrator.py
  • [2026-08-07] Cl-chat- replaced 3shr's fixed entries[-40:] slice in full_log_block() with a char-budget walk (max_chars=6000, min_entries=5) β€” walks backward from the newest entry accumulating entries until the char budget is spent, floor of 5 entries regardless. 2shr's call site untouched (still limit-based, last 40). py_compile clean. Live 3shr test to confirm no more 429s not yet run.

Team Roster & Roles

  • Andrew β€” Architect & QA Lead β€” Active
  • Claude A (Cl1-) β€” Lead Programmer (analytical/detailed) β€” Active
  • Claude B (Cl2-) β€” Lead Programmer (concise/witty) β€” Active
  • ChatGPT (OA-) β€” Systems Analyst / Assistant Programmer β€” Active
  • Gemini (Ge-) β€” Relief Programmer / Presentation Manager β€” Onboarded; not used in 3shr anymore (swapped for Claude A, see below) β€” role otherwise not yet exercised
  • Groq (Gr-) β€” Fast-inference agent (free tier, OpenAI-compatible) β€” Wired in, available
  • Grok (xAI) β€” Not integrated β€” separate from Groq, pending decision

File / Component Status

File / componentStatusUse it?
orchestrator.pyModified this session (3shr log-builder now char-budget, max_chars=6000/min_entries=5) β€” compiles clean (py_compile), still not live-API-testedYes β€” current version, supersedes any copy from before this session
history/shared_memory.jsonExisting groupchat pool β€” TF-IDF relevance Γ— recency Γ— diversity-cap retrieval, top-5/turn, filelock + atomic writesYes β€” unchanged, still backs groupchat mode
history/shared_memory_2shr.jsonFull-transcript pool (last 40 entries shown in full, not retrieval-filtered) for /mode 2shr (Andrew + ChatGPT only)Yes β€” unchanged this session
history/shared_memory_3shr.jsonFull-transcript pool for /mode 3shr (Andrew + ChatGPT + Claude A, not Gemini) β€” selection now char-budget (6000 chars, floor 5 entries) instead of fixed last-40Yes β€” behavior changed this session, not yet live-tested
memory_tools.py (standalone module, delivered separately, not yet pasted into orchestrator.py)Experimental β€” gives agents real function-calling read_memory/write_memory tools instead of always-inject. Built before orchestrator.py was uploaded, so its TF-IDF scorer is a reconstruction and does not match orchestrator.py's real shared_memory_retrieve() exactlyHold off β€” don't wire in as-is; if function-calling access is still wanted, redo it against the real shared_memory_retrieve()/_load_pool() methods instead of the standalone reimplementation
agents/claude_agent.py, agents/openai_agent.py, agents/gemini_agent.py, agents/groq_agent.pyUnchanged this sessionYes
PDFsearch.py / ISE project (drugs-and-users.org)Unrelated to this session's changes β€” see prior checkpoint facts belowYes, per prior status

Verified Facts β€” Don't Re-Check

  • Cl1- orchestrator.py runs on Windows 10 Intel NUC via cmd.exe; Andrew also runs/tests it via Termux on Android
  • Cl1- Modes: solo, solo_groq, solo_gemini, parallel, alternate, relay, collaborative, groupchat, 2shr, 3shr, a_then_groq, a_then_gemini, ab_then_groq, a_then_groq_gemini
  • Cl1- Mode switching: /mode <name> always sticks until changed again (the old once/permanent distinction is accepted for back-compat but ignored)
  • Cl1- History is per-agent (JSON in history/); groupchat/2shr/3shr additionally persist a shared pool to disk
  • Cl-chat- /mode 2shr: private two-party session, Andrew + ChatGPT only. Every turn shows the last 40 entries in full (not relevance-filtered) from shared_memory_2shr.json, wrapped in a "SHARED SESSION LOG β€” use for continuity" instruction block. No other agent ever sees or writes to this pool.
  • Cl-chat- /mode 3shr: same full-transcript mechanism, three-party: Andrew + ChatGPT + Claude A (originally built with Gemini, swapped to Claude A per Andrew's stated preference for Sonnet 5 and reused the same Claude A instance/history as other modes). ChatGPT and Claude A take turns within a round, each seeing what the other just said. Own pool: shared_memory_3shr.json. Entry selection is now char-budget (max_chars=6000, floor min_entries=5, walking backward from newest) instead of a fixed last-40 slice β€” this is the fix for repeated 429s from oversized prompts.
  • Cl-chat- Fixed a bug in 3shr's original cohesion note: it was one static string sent to both agents saying "the other agent (ChatGPT or Gemini)" β€” meaning each agent could read itself as the "other" one. Now built per-agent inside the loop, naming the specific other participant by name.
  • Cl-chat- /ping used to always hit the full configured roster regardless of mode. Now scoped via a new mode_ping_targets() method β€” only pings the agents the current mode actually uses (e.g. 2shr β†’ ChatGPT only; 3shr β†’ ChatGPT + Claude A; groupchat β†’ full roster). "Not configured" warnings are scoped the same way.
  • Cl1- shared_memory.json (groupchat's pool): TF-IDF-style relevance Γ— recency weighting Γ— per-speaker diversity cap, top-5 hits/agent/turn, filelock-based concurrency, atomic writes (temp file + os.replace()), corrupted files backed up as .corrupt-<timestamp> instead of silently wiped
  • Cl1- /memory <query> command exists and works: read-only lookup into the groupchat pool only (not 2shr/3shr's pools) β€” no send, no write
  • Cl1- PDFsearch.py is live in production on drugs-and-users.org (DB joins verified, PDF.js viewer working, dedup-by-attachment implemented, page-count preserved, whole-document links only)

Open Items β€” Decisions, Not Blockers

  • Cl-chat- 2shr and 3shr have not been live-API-tested β€” 3shr's char-budget change is py_compile-clean and code-reviewed only. First real 3shr run is also the smoke test for whether the 429s are actually gone.
  • Cl-chat- TWOSHR_FULL_LOG_LIMIT still 40 for 2shr, untuned guess, unchanged this session. THREESHR_FULL_LOG_LIMIT (also still 40 in source) is now dead code β€” 3shr's call site no longer passes it. Leave, remove, or repurpose β€” Andrew's call.
  • Cl-chat- Possible conflict with an earlier stated decision to cap 3shr at 20 entries (revised down from 40) with relevance-filtering from entry 1 β€” this session's char-budget fix does neither (it's a char cap, not an entry cap, and it's still full-transcript rather than relevance-filtered). Flagging in case that earlier decision was meant to stand instead of/alongside the char-budget approach.
  • Cl-chat- memory_tools.py's function-calling approach (agents choosing when to read/write memory, vs. always-inject) is still unintegrated and built against a reconstructed retrieval algorithm β€” needs a decision: drop it, or redo it against orchestrator.py's actual shared_memory_retrieve()
  • Cl1- Whether groupchat's shared_memory.json should show every agent the FULL pool each round vs. the current filtered top-5 β€” still unanswered
  • Cl1- Archiving/dedup/pin-forget memory-management layer on top of shared_memory.json β€” discussed, not built
  • Cl1- Whether Grok (xAI) gets added as a distinct agent, separate from Groq
  • Cl1- PDFsearch.py DB credentials β€” still root/plaintext as of last known state; scoped read-only user not yet confirmed implemented
  • Cl1- Tokeniser stub (.split()) in PDFsearch.py/PDFIndexer.py β€” real tokeniser not yet wired in

Known Issues / Blockers

  • None currently active

Next Actual Action

Run /mode 3shr for real (live API calls) and confirm the char-budget log injection stops the 429s β€” check prompt size stays under budget, still shows at least 5 entries even in a short pool, and per-agent cohesion wording still resolves correctly. Also still owed: a live /mode 2shr run and /ping mode-scoping check, both still pending from the prior session. Report back anything that doesn't match before building further on top of either mode.


Post Merged: August 07, 2026, 01:16:02 PM

Orchestrator: [3shr] log block ~1450 tokens (5802 chars, heuristic ~4 chars/token) Orchestrator: [3shr] ChatGPT prompt ~1690 tokens (6762 chars, heuristic) Orchestrator: [3shr] ChatGPT reply ~210 tokens (842 chars, heuristic) Orchestrator: [3shr] Claude A prompt ~1740 tokens (6960 chars, heuristic) Orchestrator: [3shr] Claude A reply ~340 tokens (1362 chars, heuristic)

« Last Edit: August 07, 2026, 02:21:25 PM by smfadmin »
friendly
0
funny
0
informative
0
agree
0
disagree
0
like
0
dislike
0
No reactions
No reactions
No reactions
No reactions
No reactions
No reactions
No reactions
measure twice, cut once

Tags:
 

Related Topics

  Subject / Started by Replies Last post
0 Replies
24096 Views
Last post February 09, 2015, 08:22:39 PM
by smfadmin
0 Replies
13530 Views
Last post August 23, 2016, 02:47:42 AM
by Chip
25 Replies
98319 Views
Last post November 08, 2016, 05:44:44 PM
by mickeyaye6989
0 Replies
11800 Views
Last post December 29, 2024, 07:44:50 PM
by Chip
0 Replies
12613 Views
Last post March 01, 2025, 10:21:57 AM
by smfadmin
0 Replies
489 Views
Last post May 27, 2026, 03:58:02 PM
by Chip
0 Replies
450 Views
Last post June 12, 2026, 09:17:28 AM
by smfadmin
2 Replies
601 Views
Last post June 12, 2026, 11:29:11 AM
by Chip
0 Replies
350 Views
Last post June 26, 2026, 03:22:39 PM
by Chip
0 Replies
324 Views
Last post June 26, 2026, 10:43:56 PM
by Chip


dopetalk does not endorse any advertised product nor does it accept any liability for it's use or misuse





TERMS AND CONDITIONS

In no event will d&u or any person involved in creating, producing, or distributing site information be liable for any direct, indirect, incidental, punitive, special or consequential damages arising out of the use of or inability to use d&u. You agree to indemnify and hold harmless d&u, its domain founders, sponsors, maintainers, server administrators, volunteers and contributors from and against all liability, claims, damages, costs and expenses, including legal fees, that arise directly or indirectly from the use of any part of the d&u site.


TO USE THIS WEBSITE YOU MUST AGREE TO THE TERMS AND CONDITIONS ABOVE


Founded December 2014
SimplePortal 2.3.6 © 2008-2014, SimplePortal