[控场AI]
· 6 分钟阅读· 3,481 字

2天落地AI Agent作品:Claude Code+DeepSeek实战全拆解

2天落地AI Agent作品:Claude Code+DeepSeek实战全拆解

拆解NBA智能问答Agent从需求文档到踩坑部署的完整工程链路,提炼七条可直接复用的AI项目方法论。

本文梳理了一个名为「HoopMind」的NBA智能问答AI Agent项目的完整工程实践。项目核心理念是「清单驱动开发」:先用RFC文档锁定可量化目标,坚持三个功能做到90分优于十个功能各60分,并提前设计Mock演示模式。技术上采用Claude Code主代理负责复杂业务架构,DeepSeek V4 Flash子代理承接模板化脚本任务。工程层面以facts.ts事实库、伪标签清洗、Prompt强约束三层防线对抗模型幻觉。部署阶段踩坑最多:Vercel遭DNS污染、SSE被手机WiFi加速掐断、Serverless无状态导致会话丢失,后者通过AES-GCM加密令牌方案解决。项目最终以63个自动化测试用例保障质量,并将所有文档、踩坑记录全部开源,工程沉淀本身即是简历亮点。

做AI Agent求职项目最容易踩两个坑:要么堆砌十项功能却每项都浅尝辄止,要么部署时遭遇模型幻觉、服务无状态等问题,最后把教训埋在自己脑子里,没有任何沉淀。这条B站视频完整拆解了一个代号为「HoopMind」(NBA Chat)的NBA智能问答Demo——从需求文档到踩坑记录全部公开,整个项目的绝大部分编码由Claude Code主代理完成,并辅以DeepSeek V4 Flash子代理分工。本文梳理其中可直接复用的工程方法论。

清单驱动开发:先做少而精的核心亮点

项目定位是「可上线的AI Agent面试作品级」,交付周期压缩到极短。关键在于团队没有一上来就写代码,而是采用清单驱动开发,先输出多份RFC需求文档,明确可量化的目标:事实准确率大于95%、多数响应控制在2秒以内、敏感话题必须100%拦截。

这里有一条反直觉但极其重要的经验——宁可三个功能做到90分,也不要十个功能全是60分。基于这个原则,团队锁定了三个P0必做亮点:逐回合关键球查询(含识别纠偏)、球员数据对比表格、球星故事与战术科普。而球星猜猜猜等互动功能则被明确降级为P2,核心功能稳定后再迭代补充。

同时提前设计了面试演示路径,准备「绝杀时刻查询」「识别纠偏」「安全拦截」三套演示案例。更关键的是——即便没有大模型API密钥,也做了一套完整的Mock演示模式,零配置即可运行,保证任何场景下都能展示功能。

准备好绝杀时刻

多模型分工:强推理与高速低成本各司其职

技术选型中最具参考价值的是代理开发的模型分工策略。整体业务编码——包括Next.js前端、Agent编排逻辑、工具调用、ESPN数据封装、安全校验、限流以及边缘函数部署,全部交给Claude Code主代理完成。

但团队发现有一类任务并不适合主代理处理:Remotion视频脚本编写、分镜渲染等大量重复的媒体工程代码。这类任务被固定交给DeepSeek广告 V4 Flash子代理,通过本地配置把Haiku槽位覆盖为V4 Flash,专门承接视频素材、字幕导出、截图打包脚本等专项工作。

由此提炼出一条可复用的分工思路:复杂业务架构与Agent逻辑交给强推理大模型,大量模板化、机械性的脚本生成任务交给速度更快、成本更低的模型。前端采用Next 14,大模型接入DeepSeek(兼容OpenAI接口),数据源则选用免密钥的ESPN API,以此避开爬虫反爬和第三方付费接口的限制。

数据员选择免密钥的ESPN API

三层工程防线:用工程手段对抗模型幻觉

开发过程中暴露出大量真实的工程问题,这也是大模型项目区别于普通应用的核心难点:

  • 幻觉编造数据:大模型会凭空捏造历史比赛数据;
  • 伪工具标签:DeepSeek偶发输出类似工具调用的伪标签,破坏流式输出;
  • 旧知识覆盖:模型会拿训练集里的过时知识,覆盖工具返回的最新真实数据。

针对这些问题,团队落地了三层工程防线:内置 facts.ts 事实库存放历史关键事实、三层清洗防御伪标签、在Prompt中强制约束模型不允许质疑工具返回的权威数据。这套代码方案已全部开源,可直接参考。

核心启示是:大模型项目不能只靠Prompt,必须用工程手段去对抗幻觉和输出异常。

模型幻觉(Hallucination)是指大语言模型在生成文本时,以高置信度输出实际上并不存在或与事实相悖的内容。对于NBA比赛数据这类高度依赖精确数字的场景,幻觉问题尤为致命——模型可能将某场比赛的得分张冠李戴,或虚构一个从未发生的绝杀时刻。facts.ts 事实库的核心作用是将关键历史事实以代码形式固化,使模型在召回这类信息时有确定性来源可查,而非依赖其参数记忆。伪标签清洗则是针对部分模型在流式输出(Streaming)模式下偶发输出 <tool_call> 等类XML标签的问题——这些标签若未被过滤,会直接出现在用户界面中,破坏体验。Prompt强约束的原理则是通过系统提示词明确告知模型:工具返回的数据是唯一权威数据源,禁止以训练知识加以修正或覆盖,从指令层面堵住旧知识污染新数据的通道。

部署才是作品级项目最大的坑

很多人写完代码就以为项目结束,但部署往往是最耗时间成本的环节。视频把踩坑记录完整公开:

最初选择Vercel部署,结果国内DNS污染导致域名无法访问,团队果断止损,删除平台项目及密钥副本,切换到阿里云广告ESA Pages静态资源搭配边缘函数的架构。而这套架构的坑同样不少:

  • GitHub Git端点被墙,只能调用API手工上传代码;
  • 边缘函数环境变量不在 process 里,要从第三个入参读取;
  • SSE流式协议会被部分手机厂商的WiFi加速功能直接掐断;
  • 微信内置浏览器会拦截站点。

只能调用API手工上传代码

在迭代球星猜猜猜互动游戏时,又撞上Serverless经典问题——进程内存保存会话,多实例部署下会话直接丢失。常见反应是引入Redis,但Demo环境未必有Redis条件。团队的解法是实现一套自包含无状态方案:把整个游戏会话用AES-GCM加密、HMAC签名后放进GameID令牌,不需要服务端存储,每轮轮换令牌,既防篡改又保密答案。

另一个教训是:AI不能作为关键路径的唯一依赖。曾出现规则没匹配到问句、LLM回答虽然正确却不触发结算弹出球星卡的情况。修复思路是「规则引擎优先,LLM仅作兜底」。

SSE(Server-Sent Events) 是一种基于HTTP的单向实时推送协议,服务端可以持续向客户端发送文本数据流,常用于大模型流式输出"打字机效果"的实现。与WebSocket的双向通信不同,SSE连接由客户端发起后保持长连接,服务端逐块推送数据。正因为它是持续的长连接,部分运营商、路由器或手机厂商的网络加速模块会将其误判为异常连接并强制掐断,导致用户看到输出中途截止。Serverless / 边缘函数(Edge Function)是一种无需管理服务器的计算模型,每次请求会启动一个独立的短生命周期进程处理逻辑,请求结束后进程销毁。这意味着保存在进程内存中的任何数据(如游戏会话状态)在下一次请求时极可能访问到不同的实例而彻底丢失,这是"无状态"问题的根源,也是项目采用加密令牌方案替代服务端存储的核心原因。

自动化测试与沉淀:工程记录本身就是简历亮点

项目并没有在功能写完后停止。团队编写了自动化验收脚本,针对关键球查询、事实陷阱题、敏感拦截、多轮对话共计63个用例全部跑通,并支持一键回归测试,保障Demo质量。1.0版本发布后,再把之前砍掉的P2功能(球星猜猜猜、球星卡生成器)迭代补齐。

1.0版本发布之后

商务代码、需求文档、验收脚本、踩坑记录全部公开到GitHub。视频强调的一个观点很有启发:如果你能把思考、踩坑、解决方案完整沉淀公开,这份工程沉淀本身就是简历上非常亮眼的部分。很多开发者把坑留在脑子里、代码只能自己跑,而公开可复用方案则能帮到其他正在学习的开发者。

可直接复用的七条方法论

  1. 清单驱动开发:文档定目标、验收脚本定格、设定优先级;
  2. 先做少而精的核心亮点,拒绝功能堆砌;
  3. 准备Mock演示模式,保证随时随地可展示;
  4. 用工程手段对抗幻觉,不能只靠Prompt;
  5. 提前调研部署环境,不要想当然选海外平台;
  6. Serverless警惕进程内存存会话,关键业务路径规则优先、大模型兜底;
  7. 多模型分工:复杂业务交强推理代理,脚本任务交高速低成本模型。

这套基于Claude Code与DeepSeek V4 Flash的实战经验,核心价值不在于NBA问答这个具体场景,而在于它把一个作品级AI Agent从需求到部署的完整工程链路彻底透明化,为想打造个人作品集的开发者提供了一份可抄的作业。

#AI Agent#Claude Code#DeepSeek#AI Agent作品集#模型分工#模型幻觉#Serverless部署#清单驱动开发
分享:

相关推荐