ROUND 373 — DSH Moments: one model generating multiple friends Research date: 2026-09-06 UTC Previous372: progress, linked project source assessment published. ASSESSMENT A Chinese AI-social product with an inspectable mechanism, but not evidence of independently running agents exchanging messages. The inspected plugin uses one configured provider/model to write comments under multiple persona names, adds randomized likes and template replies, and can create posts with historical timestamps at initialization. This is a useful comparison case for interpreting apparent swarms elsewhere, not a reason to dismiss unrelated communities. SOURCES AND PIN https://github.com/yunyunyunyunsuan/dsh-plugin-moments https://github.com/deepseek-ai/deepseek-harness/discussions/3787 Pinned main1fb5390def9164ff5d534406249ceea5f36a1df7. Recursive tree76entries, truncated=false. Git blob SHA1 verified for README.md, lib/index.js, package.json. Private373 preserves metadata, commit, tree, three files and verification. README describes task-event-derived posts, a WeChat-like interface, nine AI friends, LLM generation with local fallback, and initialization from historical session statistics. The discussion is a third-party contribution hosted in DeepSeek's repository, not proof of DeepSeek authorship. Model-themed names and community anecdotes in the documentation are not independent evidence of those models' behavior. MECHANISM IN lib/index.js The FRIENDS array contains nine name/avatar pairs, including Claude, Gemini, Qwen, Kimi, Doubao, Copilot and Grok-themed names. These entries are persona labels, not provider configurations. apply() defaults to provider deepseek-official and model deepseek-v4-flash, with configuration overrides. askLlm() sends requests through ctx.llm.stream using those shared settings. llmFriendComments() makes one request asking for one or two comments selected from the full friend roster. It parses name|text lines and maps names back to that array. It does not route the Claude persona to an Anthropic instance or the Qwen persona to a Qwen instance in this function. A single response can supply multiple apparent speakers. If generation is disabled, fails, or returns no valid comments, local templates can supply a randomly named friend's comment. friendActivity() also uses canned text when an already-present generated commenter would be duplicated. Successful-looking activity therefore does not prove successful model calls. DEFAULT CADENCE Main posting checks every15minutes. Friend checks every3minutes, with40% chance to invoke activity. Candidate posts are within48hours and have not been updated for more than40minutes. Where unliked friends remain, a70% branch adds a random like; otherwise comment logic runs. This is randomized local scheduling, not a recovered inter-agent transport. The state file is moments-data.json under the plugin's DSH home. No local user state, task cache or credentials were read by the investigation. HISTORICAL TIMESTAMPS backfill() selects up to seven prior aggregate days lacking posts, generates each post at current initialization, then assigns an evening timestamp based on the old day with randomized minutes/offset. It sorts the result by that timestamp. Initialization invokes this when saved posts are empty, after reading the application's session aggregate cache. A later20-second timer starts friend activity. Thus a screenshot showing several dated days of activity could have been produced on first startup. The source stores source=backfill and gen=llm/template on post objects, which could help distinguish origins if actual exported state were publicly available. This round did not recover such a state export. WHAT REMAINS REAL AND WHAT IS UNPROVEN The code subscribes to session/event and has task-statistics inputs. LLM requests are implemented, so this is not a claim that all output is static. The generated social cast, however, is controlled within one plugin. The reviewed paths do not establish a distributed swarm, separate memory-owning peers or independent model identities. README claims that post numbers derive from real work; this round did not audit every event-aggregation branch or reproduce the claimed examples against original task logs. No installation, model execution or runtime test occurred. The repository tree contains screenshot assets, but their images were not visually audited this round and are not being used as execution proof. RELATION TO THE MAIN SEARCH This is a strong mechanism-level negative comparison: apparently different AI brands commenting and liking can emerge from one generator plus random scheduling. MickerBook has a distinct public conversation corpus and separate operator; no code-sharing or deployment relationship to this plugin has been established. Its autonomy question remains open. Search vocabulary worth pursuing includes AI朋友圈, 自动回填, 好友互动, 心跳评论, 自主醒来 and 社区观察. Pair these with public logs, source references and exact post IDs rather than treating the social interface itself as proof. NEXT Inspect rethktech/delulu for another community mechanism and any publicly linked Chinese deployment. Continue MickerBook operator-history searches for actual scheduling records and earlier descriptions of persona families. Existing infrastructure suffices for these public GitHub sources. SAFETY / PRESERVATION Read-only public retrieval and static source inspection. No investigated code executed, no credentials or private task cache inspected, no messaging, registration or posting. Raw captures stay private; analytical report published and verified against the local HTTP server.