Skip to content

zhanglunet/mba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MBA — Metric Brand Auditor

多智能体并行调研 + 五人评委打分,把"品牌影响力是怎么搭起来的"拆成可量化、可演化、可复盘的版本化报告。

/mba 文件夹下的核心 skill 名为 Metric Brand Auditor(MBA)—— 一条由 Lead 编排、子 agent 并行执行、人物评委 panel 独立打分的品牌影响力审计流水线。默认 panel 是 5 位评委,行业 panel 可替换或扩展。整个仓库就是这条流水线的源代码 + 角色资料 + 历史报告。

团队 / Team

角色 成员
💡 创意 / Ideation Jason
🛠 实现 / Implementation 清风
🧭 顾问 / Advisor John

🤖 协作 AI:Claude Opus 4.7(Anthropic)


看一眼 / Live preview

网站 mbabrand.com

mbabrand.com 首页

样例报告 Lenovo 0992.HK · PDF · BotLearn 一键安装

Lenovo 审计报告 — 雷达图 / 异议热力图 / 影响力构造图

黑客松 5 分钟 Pitch 稿 · Markdown · HTML


一、设计思路:为什么要这样写

传统"品牌分析报告"有三个老问题:

  1. 单线程单视角 —— 一个人看一切,容易陷入自家叙事或调研者偏好。
  2. 不可复盘 —— 报告是一次性的,六个月后再看不知道哪些结论已变。
  3. 打分主观、口径漂移 —— 没有固定维度和评委,跨品牌不可比,跨时间不可比。

MBA 用三个核心机制对应这三个问题:

老问题 MBA 的应对
单线程单视角 N 路并行 sub-agent 各调研一个维度 + 人物评委 panel 用各自世界观独立打分,Lead 只做合成
不可复盘 版本化目录(reports/<brand>/versions/v1_*.md/.html),每次 evolution 写新版本,canonical report.md 滚动更新
打分漂移 固定 5 镜头 × 7 维度(见下文),所有品牌、所有评委、所有时间点同口径打分

第二条 evolution 机制特别重要:Lead 在 Phase 0 路由器里会先看目标品牌的 report.md 是否存在 —— 存在就走 EVOLUTION 模式(只研究变了的维度、只重判变了的维度),不存在才走 FRESH 模式跑全流程。这让 MBA 能持续追踪一个品牌而不是只评一次。


二、产品结构框架

仓库分四层,每一层对应流水线的一个阶段。

mba/
├── metric-brand-auditor/         ← 编排层:整个流水线的主 SKILL
│   ├── SKILL.md                       Lead 的工作手册:Phase 0 路由 → Phase 1-5 全流程
│   ├── references/                    复用的子模块
│   │   ├── dimensions.md                7 个默认维度的提示词模板(创始叙事/产品定位/分发/社区/视觉/竞品/情绪)
│   │   ├── judge-prompt-template.md     喂给评委的统一打分模板(5 镜头 × 1-10 分),judge 列表从 panel 读取
│   │   ├── wuying-browser.md            云浏览器 leg 的开会话/驱动/拆除规范
│   │   └── html-report-template.md      最终 HTML 报告的脚手架(Chart.js + Mermaid + Legal/IP)
│   ├── panels/                       ← 评委编组层:命名 panel 的 yaml 配置
│   │   ├── default.yaml                 默认上场阵容:傅盛 / Jobs / 李可佳 / 吴俊东 / 张一鸣
│   │   ├── tech-cn.yaml                 示例:全中文科技评委
│   │   ├── vc-en.yaml                   示例:英文 VC / 增长向评委
│   │   └── README.md                    panel yaml 字段说明 + 怎么写一个新 panel
│   └── reports/<brand-slug>/          每个品牌一个文件夹(运行 /mba <brand> 后生成)
│       ├── report.md                    当前 canonical 报告(滚动覆盖)
│       ├── report.html                  自包含 HTML 报告(雷达图 + 异议热力图 + 影响力构造图 + 法律声明)
│       ├── panel.yaml                   这个品牌锁定了哪一套 panel(首次运行写入,evolution 默认沿用)
│       ├── versions/v{n}_{date}.{md,html}  每次 evolution 的不可变快照
│       ├── _raw/                        过程文件:每个维度子 agent 的原始输出 + 云浏览器日志 + Lead 合成
│       └── reviews/                     评委独立打分卡(每位 judge-slug 一个 .md)
│
├── research/                     ← 工具层:复用的"PRD 多代理深度调研" skill
│   └── SKILL.md                       MBA 内部当作搜索建块,自身也可独立 `/research` 调用
│
├── *-perspective/                ← 评委层:production 人物视角 skill
│   ├── fusheng-perspective/           傅盛(猎豹/OpenClaw)
│   ├── jobs-perspective/              Steve Jobs
│   ├── likejia-perspective/           李可佳(BotLearn/Aibrary)
│   ├── wu-jundong-perspective/        吴俊东(Aibrary 联创、前 TAL 战投)
│   ├── zhang-yiming-perspective/      张一鸣(字节跳动)
│   ├── leijun-perspective/            雷军(小米)
│   ├── musk-perspective/              Elon Musk(Tesla / SpaceX)
│   ├── lixiang-perspective/           李想(理想汽车)
│   ├── hexiaopeng-perspective/        何小鹏(小鹏汽车)
│   └── libin-perspective/             李斌(蔚来)
│   每套 = 1 份 SKILL.md(含人格化触发规则、表达 DNA、anti-fabrication 约束)
│         + references/research/01-06.md(80% 一手来源的 6 路调研材料)
│         + 共享工具见 scripts/perspective-tools/
│
├── scripts/
│   ├── perspective-tools/           ← 字幕下载、研究合并、质量检查等 perspective 共用工具
│   └── wuying/                      ← 阿里云无影 AgentBay helper + smoke test
├── assets/judges/                   ← 评委插画头像
├── published/reports/               ← 已确认可公开发布的报告源
└── .env.example / .env              WUYING_API_KEY 配置

流水线五阶段(FRESH 模式)

Phase 0  Router          Lead 检查 reports/<brand>/report.md 是否存在
                         → 存在 + 没传 --refresh ⇒ EVOLUTION 模式
                         → 否则 ⇒ FRESH 模式
   │
Phase 1  Discovery       Lead 起草 PRD(品牌一句话定位 / 7 默认维度 / 评委名单 / 是否走云浏览器)
   │                     GATE 1:用户确认或调整维度
   │
Phase 2  Parallel Search 一条消息派发 N 个 general-purpose sub-agent(每维度 1 个,最多 5 个/批)
   │                     + 1 个 wuying 云浏览器 sub-agent(--quick 时跳过)
   │                     每个 agent 把原始输出写到 _raw/dimension_n_*.md / wuying_browse.md
   │
Phase 3  Synthesis       Lead 读完所有 _raw/,产出 _raw/synthesis.md
   │                     (执行摘要 / 杠杆地图 / 脆弱边缘 / 跨维度矛盾 / 引用索引)
   │
Phase 4  N-Judge Panel   Lead 读取 panel.yaml (品牌已绑定 / CLI 覆盖 / 默认 default)
   │                     并行派发 panel 里列出的 N 个评委 agent,每人 LOAD 自己的 perspective skill
   │                     在 5 镜头(原创性 / 范畴命名 / 杠杆质量 / 身份一致性 / 真实信号)上各打 1-10 分
   │                     + 一句人格化金句 + 关键缺口 + 行动建议
   │                     独立打分,互不可见,落到 reviews/<judge>.md
   │
Phase 5  Lead Merge      Lead 合并 synthesis + 5 份 reviews,产出:
                         • report.md(canonical Markdown)
                         • report.html(自包含 HTML,Chart.js 雷达 + 异议热力图 + Mermaid 影响力流程图 + Legal/IP/Disclaimer)
                         • versions/v{n}_<date>.{md,html}(冻结快照)

EVOLUTION 模式跳过 Phase 1 起草,改为 Phase 1E diff plan:列出"自上版以来可能变了什么",只重跑变了的维度 + 让评委只在受影响维度上重打分,然后 Phase 5 把版本号 +1 写新快照。


三、5 镜头 × 7 维度的打分坐标系

7 个调研维度(子 agent 跑的横向)

# 维度 关键问题
1 创始 & 起源叙事 谁讲的故事 / 创世神话省略了什么 / 一手 vs PR 复用
2 产品 & 定位 一句话定位 / 新品类宣称 / 主动比较与回避比较
3 分发 & 渠道 在哪里第一次被看到 / 自有 vs earned vs paid
4 社区 & PR 谁在站台 / 谁在攻击 / 各自利益
5 视觉 & 语言 命名 / slogan / 元符号(如 OpenClaw 的 🦞 )
6 竞品 & 格局 谁让出地盘 / 谁借用了它的语言
7 接收 & 情绪 搜索趋势 / 增长 / 媒体口径

5 个打分镜头(评委做的纵向)

  1. 原创性(Origin authenticity)—— 创始人/公司叙事是否站得住
  2. 范畴命名(Category coinage)—— 是否真的命名了一个新东西、且粘住了
  3. 杠杆质量(Leverage quality)—— 主导影响力渠道是否结构性可持续
  4. 身份一致性(Identity coherence)—— 视觉/语言/产品是否传递同一种感觉
  5. 真实信号(Real-world signal)—— 评委自己愿意为之下注的程度

7 维度 × 5 镜头不是矩阵相乘 —— 维度是"调研的输入",镜头是"评委的尺子",二者通过 _raw/synthesis.md 这个中间层耦合。


四、评委 panel:换一套评委 / 保存一套 / 按品牌调用

5 镜头是固定的尺子,坐在尺子后面打分的人是可换的。MBA 把"哪 N 位评委上场"这个决定从 SKILL.md 里抽出来,放进 metric-brand-auditor/panels/ 下的命名 yaml,一个 yaml = 一个 panel。

三件事各自独立:建一套 / 存一套 / 按品牌调用

4.1 Panel 是什么 —— 一份 yaml

# metric-brand-auditor/panels/default.yaml
name: default
display_name: Default 5-Judge Panel
description: MBA 默认上场阵容;混合中英文 / 创始人视角 / VC 视角 / 字节系产品视角
judges:
  - slug: fusheng              # 必填,跟 ${PERSPECTIVES_PATH}/<slug>-perspective 对齐
    display_name_cn: 傅盛
    display_name_en: Fu Sheng
    language: zh               # zh / en — 决定该评委在 reviews/*.md 里用哪种语言落笔
    portrait: 傅盛.jpg         # 可选,相对 ${IMAGES_DIR};没有就走 emoji / monogram 兜底
    weight: 1.0                # 可选,默认 1.0;Phase 5 算 mean 时的权重
  - slug: jobs
    display_name_cn: 乔布斯
    display_name_en: Steve Jobs
    language: en
    portrait: jobs.jpg
  - slug: likejia
    display_name_cn: 李可佳
    display_name_en: Ethan Li
    language: zh
    portrait: 李可佳.jpg
  - slug: wu-jundong
    display_name_cn: 吴俊东
    display_name_en: Frank Wu
    language: zh
    portrait: 吴俊东.jpg
  - slug: zhang-yiming
    display_name_cn: 张一鸣
    display_name_en: Zhang Yiming
    language: zh
    portrait: 张一鸣.jpg

字段约束:

  • slug 必须能在 ${PERSPECTIVES_PATH}(继承自 SKILL.md 的 Path resolution)里找到 <slug>-perspective/SKILL.md,否则该评委 MISSING,panel 自动降级为 N-of-M
  • panel 至少留 1 位评委,不强制 5 位 —— 3 人 panel / 7 人 panel 都合法
  • weight 只在 Phase 5 的 mean 里生效,雷达图 / 异议热力图按 raw score 画,不被权重污染

4.2 新建一套评委 —— 端到端 6 步

假设你想加一个新评委 pmarca(Marc Andreessen)进 panel。

1. 复制视角 skill 模板
   cp -r fusheng-perspective pmarca-perspective

2. 改 pmarca-perspective/SKILL.md frontmatter
   - name: pmarca-perspective
   - description: Marc Andreessen / a16z 创始合伙人 ...
   - 显式触发:「用 pmarca 视角」「Andreessen 会怎么看」
   - 不要激活:用户问 Netscape 浏览器代码细节 / pmarca 家庭隐私 ...
   - anti-fabrication 段:不替本人编造未公开内容、不伪造私下场景

3. 跑 6 路并行调研,填 references/research/01-06.md
   /research Marc Andreessen --persona-mode
   (或手工:01 身份卡 / 02 表达 DNA / 03 心智模型 / 04 决策启发式 /
    05 反共识立场 / 06 anti-fabrication 边界)

4. (可选)放一张插画头像
   assets/judges/pmarca.jpg  ← 插画 / 卡通 / monogram 都行,严禁真人照片

5. 单独跑一次,确认 perspective 自己可用
   /pmarca-perspective 帮我看一眼龙虾这个事

6. 注册进一个 panel
   编辑 metric-brand-auditor/panels/<panel-name>.yaml,在 judges: 下追加 pmarca 条目

第 3 步是大头 —— 评委之所以"像"靠的是 80% 一手访谈 / 文章 / 播客 transcript 的高密度调研材料,不是 SKILL.md 里的几句口令。research/ skill 已经把 6 路并行调研模板化了,新评委照着跑就行。

4.3 保存一套 panel —— 起个名字写进 yaml 就完事

panel 没有"保存"动作 —— 写进 metric-brand-auditor/panels/<name>.yaml 就是保存了。Git 跟踪,跨机器同步。

常用模式:

metric-brand-auditor/panels/
├── default.yaml            # 当前默认:傅盛 + Jobs + 李可佳 + 吴俊东 + 张一鸣
├── tech-cn.yaml            # 全中文科技评委(如:张一鸣 + 傅盛 + 李可佳 + 王兴 + 黄峥)
├── vc-en.yaml              # 英文 VC / 增长(如:Jobs + pmarca + naval + paulg)
├── consumer-cn.yaml        # 消费品牌评委(如:江南春 + 钟睒睒 + 张鹏 + 罗永浩)
└── solo.yaml               # 单视角速读;只放一位,等价于 /<persona>-perspective

下次 --panel tech-cn 直接复用 —— 不需要改 SKILL.md,不需要 deploy。

4.4 不同品牌调用不同 panel —— 四层优先级

每次 /mba <brand> 走以下顺序解析,先命中先用:

CLI flag (--panel <name>)
  > CLI flag (--industry <name>) → industries.yaml → panel name
  > reports/<brand-slug>/panel.yaml 里 panel: <name> 字段
  > metric-brand-auditor/panels/default.yaml

具体规则:

场景 行为
/mba lenovo 首次跑 default panel,跑完把 panel: default 写进 reports/lenovo/panel.yaml
/mba lenovo --panel vc-en 首次跑 vc-en,写进 reports/lenovo/panel.yaml(品牌从此默认绑定 vc-en)
/mba lenovo(已有 v1) 走 EVOLUTION,从 reports/lenovo/panel.yaml 读出绑定的 panel,不重选
/mba lenovo --panel consumer-cn(已有 v1) EVOLUTION 用新 panel —— 但 Lead 会 GATE 一次告诉你"评委换了,旧 reviews/ 不可直接 diff,会全员重打",等用户确认
/mba lenovo --no-judges 跳过 Phase 4,panel 解析也跳过

reports/<brand>/panel.yaml 长这样:

# 由 Phase 0 router 在首次运行后写入
panel: default                  # 引用 panels/default.yaml
locked_at: 2026-05-17           # 首次绑定日期
mba_version: 0.2.24             # 当时的 mba 版本号(后续可观测兼容性)
overrides:                      # 可选 —— 在 panel 之上的局部调整
  drop: []                      # 跳过这次不出场的评委 slug
  add: []                       # 临时加挂的评委(不写回 panels/)

4.5 新增 CLI 子命令

为支持 panel,/mba 新增以下子命令(由 SKILL.md 在后续版本接入,本节先固化语义):

/mba panels                       # 列出 panels/ 下所有 panel,显示 judge 列表 + 用过的次数
/mba panels show <name>           # 打印一个 panel 的完整 yaml 内容
/mba panels new <name>            # 从 default.yaml 复制出一份新 panel 骨架到 panels/<name>.yaml
/mba <brand> --panel <name>       # 该次运行用指定 panel(首次会写回品牌的 panel.yaml)
/mba <brand> --panel-add <slug>   # 在本次运行临时追加一位评委,不改 panel 文件
/mba <brand> --panel-drop <slug>  # 在本次运行临时跳过一位评委,不改 panel 文件

--panel-add / --panel-dropoverrides,只影响本次输出,不修改 panels/<name>.yaml —— 用来做"这次想加 pmarca 试一下,但还不确定要不要进 tech-cn 常驻"这种探索。

4.6 评委 panel 与品牌之间的耦合面 —— 不要破坏的几条

写新 panel / 改品牌绑定时这几条不能踩:

  1. 改了 panel 后不要去改旧 versions/v{n}_*.md —— 那是当时 panel 给出的冻结快照,不该被新评委的分数污染。新 panel 重打分,在 v{n+1} 写新版本。
  2. 旧的 reviews/<judge-slug>.md 留着 —— 哪怕 panel 里删掉了该 judge,它的历史打分仍在,EVOLUTION 模式可以 diff(v2 by pmarca vs v1 by zhang-yiming)。
  3. panel 切换会写进 versions/v{n+1} 的 metadata —— Phase 5 报告头部必须显式列出 Panel: tech-cn,不要让读者以为"分数变了"是品牌变了,实际上是评委换了。
  4. 判分语言跟随 judges[*].language,不要被品牌语种盖住 —— 给中文品牌找 Jobs 打分,他还是用英文,Lead 再翻译进合成报告。

五、调用方式

/mba <brand>              # 标准全流程(Lead 自动判断 FRESH / EVOLUTION,用 default panel 或品牌已绑定 panel)
/mba OpenClaw             # 仓库内置的 demo case
/mba <brand> --quick      # 跳过云浏览器 leg(只走开放网,WebFetch+WebSearch)
/mba <brand> --refresh    # 强制 EVOLUTION 重跑(已有报告会归档到 versions/)
/mba <brand> --no-judges  # 只做合成,跳过评委 panel
/mba <brand> --focus 1,3,7  # 只调研指定维度
/mba <brand> --panel <name>       # 这次用指定 panel(首次会写回 reports/<brand>/panel.yaml)
/mba <brand> --panel-add <slug>   # 本次临时加一位评委,不改 panel 文件
/mba <brand> --panel-drop <slug>  # 本次临时跳过一位评委,不改 panel 文件
/mba list                 # 列出已审计的品牌 + 各自版本数 + 绑定的 panel
/mba panels               # 列出所有 panel,显示 judge 列表
/mba panels show <name>   # 打印一个 panel 的完整 yaml
/mba panels new <name>    # 从 default.yaml 复制出骨架到 panels/<name>.yaml

也可以单独调任何一个 perspective skill 做"一句话点评"(/fusheng-perspective ...)—— 那走的是单视角通道,不触发 MBA 流水线。


六、环境配置

本项目使用阿里云无影 AgentBay 服务做云浏览器 leg(免费 Lite 层即可,不需要 Pro)。

cp .env.example .env
# 编辑 .env,填入 WUYING_API_KEY=akm-xxx
# API key 从 https://wuying.aliyun.com 控制台 → AgentBay 应用获取

.env 已在 .gitignore 中,不会进版本库。本机调通后跑一次:

python3 scripts/wuying/smoke_test.py    # 冒烟测试,自动创建 → 取 endpoint → 删除
python3 scripts/wuying/open.py    # 创建会话并打印 SESSION_ID + RESOURCE_URL,会话保持活跃

注意:免费 Lite 层 拿不到 CDP 的 wss URL(get_endpoint_url() 是 Pro/Ultra 独享)。 这意味着 agent-browser CLI 无法直接附着到云浏览器。 Lite 层只能用 ResourceUrl 在本地浏览器里以"看画面 + 键鼠交互"的形式使用。 Pipeline 在 Lite 层运行时会自动降级为 WebFetch + WebSearch + 用户手动观察的混合策略。


七、文件级路标(给读源码的人)

  • 想读流水线的人 → metric-brand-auditor/SKILL.md(主手册,~600 行)
  • 想看一个报告长啥样 → 跑一次 /mba <你关注的品牌>,在 reports/<slug>/report.html 生成
  • 想加一个新维度 → metric-brand-auditor/references/dimensions.md
  • 想改评委的打分模板 → metric-brand-auditor/references/judge-prompt-template.md
  • 想换 HTML 报告的图表样式 → metric-brand-auditor/references/html-report-template.md
  • 想加一个新评委(persona) → 看本文§4.2 的 6 步;模板目录是任意 *-perspective/
  • 想存 / 切 / 查 panel → metric-brand-auditor/panels/ 下加减 yaml,字段定义见本文§4.1
  • 想给某个品牌换一套评委 → /mba <brand> --panel <name>(详见本文§4.4)
  • 想理解多代理调研本身怎么写的 → research/SKILL.md(被 MBA 复用,也可独立 /research 调用)

许可与边界

  • Production 人物视角 skill 都基于公开一手资料(访谈、文章、播客 transcript),每套 SKILL.md 顶部有明确的 anti-fabrication 红线 —— 不替本人编造未公开内容。
  • 仓库不附任何品牌的样板报告;每次 /mba <brand> 跑完的报告归用户所有,不入版本库,需自行管理隐私。

技术支持:marsdata.ai

About

Matrix Brand Auditor Skills

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors