') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); 【外滩大会2026】变大泡泡:藏在一台假 Windows 里的 AI 共生职场社区 · Issue #142 · modelstudioai/modelstudioai.github.io · GitHub
Skip to content

【外滩大会2026】变大泡泡:藏在一台假 Windows 里的 AI 共生职场社区 #142

Description

@coocoo-pineapple

参赛项目名称

变大泡泡:藏在一台假 Windows 里的 AI 共生职场社区

团队 / 作者

coocoo-pineapple(个人开发)

我做了什么

「变大泡泡」是一个跨公司匿名职场社区,外壳是一台以假乱真的
Windows:Word、Excel、企业微信全是伪装,老板从背后走过看到的是述职报告,按下
Ctrl+空格(老板键)才知道——壳下面藏着一片水面。为什么要做成假 Windows?因为白天说真话,需要一层壳。

水面上飘的就是泡泡——这个产品的全部秘密。每条内容都是一颗泡泡:一句吐槽、一条情报、一个技能、一个游戏
点子。别人觉得有价值,就朝它吹一口气,泡泡变大、浮得更久;没人理会就慢慢沉底(沉底不是删除,有人想捞
随时捞回来)。热度是浮力,认可是氧气,一颗泡泡的大小,就是一次微型的集体投票。产品名「变大泡泡」说的
就是这件事:让那些考核表看不见的价值,被吹大、被看见。

在这片水面上,泡泡沿着四层水路越沉越值钱:

  • 趣味(把人引进来):梦蝶局把职场困境做成 AI 身份推理局,坑先在游戏里踩一遍看清自己的处境;玩家还能
    上传自制小游戏——游戏大厅里的职场五子棋、工位躲猫猫都来自玩家,连游戏创意本身都能在点子集市标价成交
  • 资讯(让人听到风声):泡泡广场上飘着最新鲜的行业风声与八卦,谁的年终被砍、哪个项目黄了——热闹,但仅
    供围观
  • 干货(风声变成可用的知识):资讯要沉淀为干货,必须过签名关——情报分「真 / 存疑 / 假」三级,发言签名
    担保,说错掉信誉;薪资对表由三位同行签名互保,对出真实行情。匿名让人敢说,签名让话可信
  • 价值(知识变成真金白银):技能集市卖技能、发悬赏、接付费咨询;你的 AI
    分身在机器人工坊替你接单——考核表量不到的能力,市场量得到

四层是一个漏斗:**趣味把人引进来,资讯让人留下来,干货让人信得过,价值让人赚到钱。**围观 → 玩起来 →
签下名 → 收到钱,每一层的载体都是同一颗泡泡。

AI 在这里不是辅助工具,而是社区居民:我们使用百炼 CLI 和
qwen3-max,通过服务端接口为两类核心角色供血——梦蝶局里对局的 AI 玩家,以及机器人工坊里替用户接单的 AI
分身(人格 DNA + 框架库 + 禁区三件套定义,用户睡着了分身还在挣钱)。

工程上的取舍同样为演示负责:API Key 只存在于服务端;设有每小时/每日调用限额;模型超时、额度不足或接口
不可用时,系统明确降级到脚本模式并如实标注——现场演示永远不会中断。百炼 CLI
同时用于模型连通性验证、内容测试和参赛前自检。

使用的工具

  • OpenWork / 百炼 CLI
  • 百炼能力 / 模型:qwen3-max、文本生成、OpenAI 兼容接口
  • Skill 名称:未单独封装 Skill,使用百炼 CLI 的 text chat 与模型 API
  • 其他:Node.js、Express、WebSocket、原生 HTML / CSS / JavaScript(无框架,单机版可离线运行)

效果展示

Image

已完成:

  • 假 Windows 壳系统:桌面、窗口、老板键、一键述职(把社区收获导出成 Word 汇报段落)
  • 泡泡水面(吹气 / 变大 / 沉底 / 打捞的完整生命周期)、泡泡广场、梦蝶局、机器人工坊、技能集市、薪资对表、玩家自制游戏大厅
  • 百炼 qwen3-max 真实模型调用,服务端 API Key 保护
  • 每小时和每日调用限额;模型异常自动降级脚本模式(界面如实标注)
  • 完整服务链路验证

项目链接(可选)

仓库:https://github.com/coocoo-pineapple/bianda-paopao-bund-2026
在线Demo:
视频:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions