Repository navigation
MiniMax Bot Team: a real team of Bots, not one Bot wearing several masks - #120
Conversation
A team of MiniMax Code Bots that keeps working after the chat ends: a chief Bot takes the work, the members do it in their own chats, and an @-mention in a group chat is the hand-over. Every Bot carries its own identity files, and the runtime puts them into that Bot's prompt on every turn - so the files decide how good the team is. The common files and the shared cards belong to the user, and a card can name the Bots that read it. The bot-team-setup skill says what to write into all of it, in Chinese and English. Tested environment: MiniMax Code 3.1.11 on Windows 11 (x64). The package needs 3.1.2 or later, because it declares agentAccess and surface.window. macOS and Linux were not tested. The upstream check reports one warning for this package: ENTRY_STDOUT in miniapp/node/memory-bridge.mjs. The process.stdout.write there is inside the source of the helper script the plugin generates into dataDir/memory-bridge/search.mjs and runs as a child process; that helper's stdout is its result channel back to the plugin, not the Host's stdout. The plugin itself logs through context.logger.
MyPrototypeWhat
left a comment
There was a problem hiding this comment.
Thanks, this is a big, well-documented package. Two things need to change before merge, both about the Host's memory:
host_memory_search(miniapp/node/host-memory.mjs,mcp.mjs) reads~/.minimax/memories/scopes/globalwith no switch. In this repo, anything that reads the user's private data outsidedataDirhas to be off by default, behind an opt-in setting, and the README should say so.memory_pendingtells the main conversation to callmemories_add_ad_hoc_noteright away, in both the tool description and the result. A plugin shouldn't steer the Host's own memory writes, so please drop that instruction or put the whole bridge behind the same default-off setting.
Minor: the README says each Host-memory search spawns node <dataDir>/memory-bridge/search.mjs, but mcp.mjs calls searchHostMemory in-process and the generated helper is never used. Please remove the helper or update the README.
Everything else looks good. Thanks!
… ordering the Host to write it This answers the three points from the review. - Reading the memory of the Host is private data outside dataDir, so it is off by default now and opens only behind one setting: Settings -> General -> Host memory. While it is off, host_memory_search is not in the tool catalogue, a call to it refuses itself with a message that names the switch, the helper a Bot runs is not written (and one left over is removed), and the Bot brief carries no memory section at all. The README has a section of its own on this. - The plugin no longer tells the Host to write its own memory: the memory_pending description and its result text no longer name memories_add_ad_hoc_note, in Chinese and English. The hand-over stays - the conclusion reaches the caller as text, and what happens to it afterwards is the Host's and the user's business. - The helper and the README now agree: the helper is written only while the access is on, and the README describes the process it starts accurately. One correction for the record: the helper is not what mcp.mjs calls - that call is in-process - but it is not dead code either. It is the entry point for a Bot: the standing brief tells the Bot to run node "<dataDir>/memory-bridge/search.mjs" "<query>", and the script carries its own copy of the two modules it needs so it survives a restart of the unpacked package. Checks: the plugin suite passes 522/522, the upstream validator reports 0 errors and 1 warning for this package (ENTRY_STDOUT - the stdout in question is the helper's own output channel), and npm run check passes 92/92.
|
Thanks for the review - all three points are addressed, and I took the stricter option in each case. 1. Reading While it is off:
Turning it on writes the helper, offers the tool and adds the brief section. Nothing else changes: the files are still read-only, and the package still writes nothing into that directory. The README has a section of its own for this ("Host memory (off by default)"), and Data & access names the switch next to the files read outside 2. The plugin no longer orders the Host to write its own memory. The 3. The helper and the README now agree - with one correction. The helper is not what What I changed is the shape of the claim: the helper is written only while the access is on, and the README now describes the process accurately - it prints the JSON result on its own stdout for the Bot that ran it; it does not carry anything back to the plugin. Checks
The package version stays 1.0.0 (first release, not merged yet). |
|
@MyPrototypeWhat - all three points are done and CI is green, ready for another look. The Host-memory access is now behind an opt-in switch that is off by default (the tool is not offered, a call refuses itself, the helper is not written, the Bot brief carries no memory section); the instruction to write into the Host memory is gone from the Details in my comment above. |
MyPrototypeWhat
left a comment
There was a problem hiding this comment.
Thanks, all three points are addressed: host memory reads are now opt-in and off by default, the memory-write instruction is gone, and the READMEs match the code. Merging.
Today's bot is one person wearing several masks, taking turns with you. MiniMax Bot Team gives you a team instead: members with different skills and different temperaments, each guarding one field, and they can sit down together and argue about the same question from different angles.
What it does
create_botbuilds a Bot;main: truemarks the one that takes the work and hands it over. Each Bot answers in its own chat, so several of them can work at the same time.AGENTS.md(the role, the way of working, the delivery standard),IDENTITY.md(the name, the duty, the tone) andSOUL.md(the character, the principles, what it refuses to do) are put into that Bot's prompt on every turn. The files decide how good the team is.ENV.md,USER.md) and the shared cards (shared-*.md) belong to the user, who edits them in the settings. A card can name the Bots that read it.skills/bot-team-setup/SKILL.mdwalks the setup in Chinese and English: how many Bots, what each one writes into its three files, what the common and the shared files hold, when a group chat is needed and how the first task is handed over.Tested environment
agentAccessandsurface.window.Not verified
Notes for the reviewer
minimax-botpackage - the same file, byte for byte. This package is built on that Mini App, and the MIT notice is kept inLICENSE. Say the word if you would rather we ship an asset of our own.~/.minimax/memories/scopes/globalis off by default: the switch is Settings -> General -> Host memory, and while it is off nothing in that directory is read,host_memory_searchis not offered, and the helper is not written. The package README has a section of its own on it.npm run checkreports one warning for this package:ENTRY_STDOUTinminiapp/node/memory-bridge.mjs. Theprocess.stdout.writethere is inside the source of the helper script the plugin generates intodataDir/memory-bridge/search.mjsand a Bot runs as a child process; that helper's stdout is its result channel for the Bot that runs it, not the Host's stdout. The plugin itself logs throughcontext.logger.agentAccess: ["session.run"], onemcpEndpointsentry for the Bot tools, and one Skill. No microphone, camera, notification or Host navigation access, and no outbound network request.Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.