小白Vibe Coding Day1:我做了一个会“开庭审判”的 AI 法庭 Demo

5 阅读9分钟

最近在尝试用 vibe coding 的方式做一些小项目。

先解释一下我理解里的 vibe coding:不是从一开始就非常严谨地设计架构、写需求文档、拆技术方案,而是先有一个大概的产品脑洞,然后不断和 AI 对话,把想法一点点推成能跑的东西。

这次我做的小项目叫:

AI Court Demo:一个本地可运行的 AI 法庭 Web Demo

简单说,它不是让一个 AI 直接给答案,而是让多个 AI 角色围绕同一个任务进行“审判”:

用户输入任务
↓
执行 AI 先完成初版
↓
检察官 AI 挑错
↓
被告律师 AI 为初版辩护
↓
法官 AI 最终裁定
↓
输出最终版本和审判报告

听起来有点中二,但跑起来真的还挺有意思。

为什么想做这个?

平时用 AI 做工作的时候,我经常会遇到一个问题:

AI 给出的答案看起来很完整,语气也很自信,但我不知道它到底有没有偷懒。

比如让 AI 分析一批数据、筛选线索、修改文案、整理资料,它可能会:

  • 漏掉一部分输入材料
  • 把不确定信息说得很确定
  • 为了格式好看偷偷补内容
  • 没有严格按照用户要求来
  • 输出一堆看似正确但无法验证的结论

所以我当时就在想:

如果让另一个 AI 专门站在反方角度挑刺,会不会更可靠一点?

再进一步,如果把这个过程包装成“法庭”:

  • 执行 AI 是被告
  • 检察官负责质疑
  • 被告律师负责辩护
  • 法官负责裁定

那它既有一点工作流价值,也有一点观看乐趣。

于是这个项目就诞生了。

项目目前长什么样?

这个 Demo 是一个本地 Web 项目,核心技术栈比较常规:

React + Vite + TypeScript + Tailwind CSS + Express

模型调用部分使用 OpenAI-compatible API,所以理论上只要是兼容 /chat/completions 格式的模型服务,都可以接入。

目前项目里有三个主要页面:

1. Court Room 主页面

用户可以输入:

  • 任务标题
  • 任务描述
  • 审判标准
  • 输入材料

然后分别选择:

  • 执行 AI
  • 检察官
  • 被告律师
  • 法官

点击“开庭!”之后,系统会自动依次调用模型,完成四阶段流程。

2. Settings 设置页

这里可以配置两个 provider。

每个 provider 包括:

Provider Name
Base URL
API Key
Default Model

因为我一开始就希望这个项目不绑定某一个模型平台,所以这里做成了 OpenAI-compatible 的形式。

比如可以让 Provider A 用某个国产模型,Provider B 用另一个模型;也可以所有角色都用同一个模型,只是通过不同 prompt 扮演不同人格。

3. Character Settings 角色设定页

这是我觉得比较好玩的部分。

三个法庭角色都可以自定义:

  • 法官
  • 检察官
  • 被告律师

每个角色可以设置:

  • 角色名称
  • 性格描述
  • 语癖
  • 辩论风格
  • 严肃程度
  • 滑稽程度
  • 是否开启夸张表演

默认角色大概是这种风格:

法官:终审猫头鹰
检察官:红笔检察官
被告律师:乌龙辩护人

有一点像“酒馆角色卡”那种感觉,只不过它不是陪聊,而是参与一个工作审查流程。

实际跑起来是什么效果?

我用一个简单任务测试了一下:

请为新品发布写一版电商主图文案,包含主标题、副标题、三条卖点和行动号召。

输入材料大概是一个便携咖啡杯,卖点包括防漏、8 小时保温、单手开盖等。

执行 AI 先写了一版主图文案。

然后检察官开始挑刺,比如:

  • 主标题是不是有点生硬?
  • 副标题是不是太抽象?
  • 卖点表达是不是可以更贴近通勤场景?
  • CTA 是否可以更直接?

被告律师则开始辩护:

  • “滴水不漏”虽然直接,但功能冲击力强
  • “安心随行”比“颠簸不洒”更有专业感
  • “开盖无需停顿”比“行车无忧”适用场景更广

最后法官综合双方意见,采纳了一部分检察官建议,也保留了一部分原文案。

这个过程最有意思的地方在于:它真的有一点“AI 在互相扯头花”的感觉。

但它不是纯娱乐,最后确实得到了一个更稳的版本。

这个 Demo 目前有什么价值?

我觉得它目前有三个比较明确的使用场景。

1. 内容审稿

比如小红书、掘金、知乎、领英文案。

普通 AI 写完一版之后,检察官可以检查:

  • 有没有太像广告
  • 有没有太空泛
  • 有没有标题党
  • 有没有逻辑断层
  • 有没有不适合发布平台的表达

最后法官再融合成一个更适合发布的版本。

2. 商务材料复核

比如合作方案、销售话术、客户分析。

一个 AI 负责生成初稿,另一个 AI 站在客户视角挑问题:

  • 这个卖点客户真的关心吗?
  • 有没有讲清楚 ROI?
  • 有没有过度承诺?
  • 有没有缺少下一步行动?
  • 是否适合真实沟通场景?

对我这种刚开始接触 AI infra、又经常需要写业务材料的人来说,这个流程还挺实用。

3. 数据筛选和结论审查

比如筛选公司线索、展会名单、潜在客户、帖子内容。

执行 AI 先做筛选,检察官检查是否漏筛、误筛、标准不一致,法官最后给出最终表格。

当然,这一类任务对 token 消耗和上下文管理要求更高,目前 Demo 还只是初版。

目前暴露出来的问题

这个项目虽然已经能跑,但初版问题也很明显。

1. Token 消耗偏高

现在是四阶段串行调用:

Worker → Prosecutor → Defense → Judge

也就是说,一个任务至少要调用四次模型。

如果输入材料很长,后面几轮还会叠加初版结果、检察官意见、辩护意见,token 消耗会明显变高。

后续可能会加几种模式:

单次开庭:一个模型一次性扮演多个角色
快速复核:Worker + Prosecutor + Judge
严格审判:完整四角色流程

这样用户可以自己在“便宜、快速、严谨、好玩”之间选择。

2. 最终版本和审判过程需要更好地分离

现在法官输出里有时候会把“最终裁定”和“最终交付版本”混在一起。

这对看报告没问题,但如果用户只是想复制最终版本,就会有点麻烦。

后续应该把每个阶段改成结构化 JSON 输出,比如:

{
  "verdictSummary": "",
  "finalAnswer": "",
  "confidence": 92,
  "humanReviewItems": []
}

前端再按字段展示。

3. 戏剧感和工作感需要平衡

“肃静!”“异议!”“法槌敲击!”这些确实很有趣,但如果是严肃工作场景,可能会显得太吵。

所以后面也可以加一个风格开关:

严肃审查
轻度戏剧
逆转法庭

轻任务可以玩得中二一点,正式交付就收敛一点。

Vibe Coding 的真实感受

这次做下来,我对 vibe coding 的感受是:

它很适合从 0 到 1 做一个有产品感的小 Demo。

尤其是当你的需求并不是“我要实现某个标准功能”,而是“我有一个奇怪但具体的产品脑洞”时,AI 真的很适合帮你快速搭出第一版。

但它也有几个坑:

1. 你不能只说“做个好看的项目”

要尽量把流程说清楚:

  • 页面有哪些
  • 每个页面做什么
  • 数据结构是什么
  • 模型调用顺序是什么
  • 错误处理怎么做
  • README 怎么写
  • 什么功能先不要做

需求越清楚,AI 越不容易乱发挥。

2. 第一版能跑不代表产品就完成了

比如这次 Demo 已经能跑出完整审判报告,但马上就暴露出 token 消耗、结构化输出、语气死板、最终版本提取等问题。

所以 vibe coding 更像是快速造一个原型,然后你再拿着原型继续判断:

这个东西有没有意思?
有没有人真的会用?
哪里需要改?
哪里只是好玩但不实用?

3. 小白也能做,但要学会看报错

本人是完全不会看报错所以都丢给GPT帮我分析了

这次本地启动时也遇到过端口占用问题,比如:

EADDRINUSE: address already in use :::8787

意思就是后端端口被占了,不是项目炸了。

关掉旧进程或者换端口就能解决。

所以小白 vibe coding 最重要的不是一上来就会写代码,而是能慢慢看懂:

  • 它在报什么错
  • 哪个文件可能出问题
  • 这个问题是环境问题、接口问题,还是逻辑问题

项目后续想做什么?

如果继续迭代,我大概会优先做这些:

  1. 增加低成本模式,减少 token 消耗
  2. 把每个阶段输出改成结构化 JSON
  3. 支持 CSV / Excel 文件上传
  4. 增加“复制纯净最终版”按钮
  5. 增加审判风格切换
  6. 增加 token 粗略估算
  7. 后续也许做成浏览器插件侧边栏,用来审查网页里的 AI 输出

目前它还不是一个成熟产品,更像是一个“想法验证型 Demo”。

但我觉得它已经证明了一件事:

AI 不一定只能给答案,也可以参与“审查答案”的过程。

这可能比单纯多接几个模型更有意思。

最后夹带一点私货

这个 Demo 里用到的是 OpenAI-compatible API 调用方式,所以只要平台兼容对应接口,就可以拿来接不同模型测试。

5oiR546w5Zyo5a6e5Lmg55qEIEFJIOWIneWIm+W5s+WPsOS5n+WcqOWLn+mbhuS4gOaJueenjeWtkOeUqOaIt++8jOS4u+imgeaYr+aDs+aJvuS4gOS6m+aEv+aEj+aKmOiFviBBUEnjgIFBZ2VudOOAgemFkummhuOAgUFJR0PjgIHlsI/lt6XlhbfjgIF2aWJlIGNvZGluZyDnmoTmnIvlj4vluK7lv5nor5XnlKjlkozmj5Dlj43ppojjgIIKCuS4jeaxguWIq+eahO+8jOWHkeS4quS6uuWktOOAgee7meS6m+ecn+WunuWPjemmiOa1i+ivhOWwseWlveOAggoK546w5Zyo5rOo5YaM5Lya6YCBICoqNTDwn6WVIEFQSSDpop3luqYqKu+8jERlZXBTZWVrIFY0IOS5n+WPr+S7peWFiOWFjei0ueivleivle+8jOWQjumdouW6lOivpei/mOS8muacieS4gOS6m+WFtuS7luS8mOaDoOa0u+WKqOOAggoK5oSf5YW06Laj5Y+v5Lul5oiz5oiz5oiR6aKG5YWl5Y+j44CCCg==

#api #deepseek #deepseekv4 #人机恋 #aigc #airp #代码 #vibecoding #酒馆 #LLM #AI工具 #多Agent #AI应用开发