原文:https://dev.to/yashraj_val8/how-i-built-a-45-agent-ai-panel-to-brutally-roast-startup-ideas-architecture-deep-dive-3ha0(作者 @yashraj_val8)
每个创业者都熟悉这种感觉:你把一个新的创业点子分享给朋友,他们全都微笑着说:“听起来太棒了!”
六个月过去、几千美元烧完之后,你才发现根本没人真的需要它。
标准 LLM 有一模一样的毛病:极度谄媚(sycophancy)。如果你问 ChatGPT“我的创业点子好不好?”,它会写出一篇十段长文,论证你的遛狗无人机创业拥有万亿美元级潜力。
为了解决这个问题,过去几个月我一直在打造 val8.app——一个 AI 验证引擎,它能模拟出一屋子 45 个真实又挑剔的利益相关者,在你写下第一行代码之前,就对点子展开辩论和压力测试。
下面是它底层工作原理的架构拆解。
1. 挑战:解决 AI 谄媚问题
让单个 LLM 去评估一个点子时,标准的提示词工程会失效。它倾向于磨平棱角、保持讨好,最后生成一份泛泛而谈的 SWOT 分析。
为了模拟真实世界的张力,val8 在 3 个不同的集群(cluster)中生成角色(persona):
- 投资人集群(15个角色):痴迷于单位经济模型、TAM、防御性、切换摩擦和退出路径。
- 领域专家集群(15个角色):毫不留情地戳穿技术可行性、合规和运营瓶颈上的漏洞。
- 目标用户集群(15个角色):对“自己真实的付费意愿、使用惯性和日常习惯”高度怀疑。
我还在提示词 grounding 中注入了故意的 "Roaster"(毒舌)和 "Ragebait"(引战) 两种声音。这些角色被要求绝不客气、直接点名隐藏假设,模拟你在董事会或 Reddit 上可能遇到的最严苛批评者。
2. 多集群淘汰架构
由于 token 上限、跨智能体上下文漂移和延迟问题,在单个上下文窗口里同时跑 45 个智能体是不可能的。
取而代之,我们搭建了一套分层辩论架构:
- 集群内轮次:每个集群(投资人、领域专家、用户)内部的 15 个角色进行内部审议和互相挑战。
- 集群决赛选手:系统对论点进行排序,每个集群筛选出前 5 名决赛选手(共 15 个)。
- 跨集群综合:15 个幸存的决赛选手进入最终的跨集群辩论——投资人可以质疑用户的付费意愿,领域专家可以戳破投资人的可扩展性假设。
- 评分裁决:生成共识分数(1-100)和可落地的反对意见报告。
3. 技术栈
- 框架:Next.js 16(App Router)+ React 19
- 数据库与认证:Supabase(带 RLS 的 PostgreSQL)+ Prisma ORM
- 异步任务队列:BullMQ + Redis(ioredis),用于处理长时间运行的模拟 worker
- 流式 UI:通过
EventSource使用 Server-Sent Events(SSE),配合partial-json解析实现实时辩论渲染 - 样式:Tailwind CSS,搭配自定义字体组合(Fraunces + Work Sans + IBM Plex Mono)
- 支付:Razorpay(面向国内外用户的积分制微交易)
4. 处理实时多智能体流式输出
最难的环节之一,是让用户在 45 个角色生成成百上千 token 辩论内容的同时获得视觉反馈。
我把生成过程解耦到 worker 进程(bullmq)中,worker 通过一个 SSE 端点流式输出分块:
// 客户端 EventSource 监听器,用于流式接收各集群数据
const sse = new EventSource(`/api/runs/${runId}/stream`);
sse.onmessage = (e) => {
const payload = JSON.parse(e.data);
if (payload.type === "chunk") {
// 不等完整生成结束,增量解析部分 JSON
const partialData = parse(payload.content);
updateClusterPreview(payload.cluster, partialData);
}
};
这样在激烈的多智能体审议过程中 UI 不会卡死,还能给用户一种实时“围观辩论室”的体验。
原文:https://dev.to/yashraj_val8/how-i-built-a-45-agent-ai-panel-to-brutally-roast-startup-ideas-architecture-deep-dive-3ha0(作者 @yashraj_val8)



