How I Designed:智团团 A K12 AI Agent Ep.1

ok,作为我第一次接手的比赛项目 我将在此从软件调研开始 从零讲起。
当然,我们不会过多的把精力聚焦于项目的相关文件和要求,只着重讲软件是如何根据需求去设计的.
一.项目软件总体研判
对我而言,从拿到比赛项目文档开始,在解析需求,痛点,竞品分析,功能需求之后;第一时间不是去拿着你的Prompt去跟大模型进行“抽卡",”许愿“;对我个人而言,我会先第一步进行进行研判
Why?
通俗一点来讲,如果是为了生成一个"玩具”类的软件,你可以这样做,因为这并不涉及太多的功能设计以及其他技术栈选择考虑。但是这毕竟是一个为了竞赛项目而服务的软件,我们需要认真的去对待他
1.1 我是如何进行研判的
首先,你做整个软件之前必须讨论出来你需要设计多少功能,以及项目软件的部署形态;这对后续开发软件起到非常关键的Init&Start
如果不明确部署形态和明确要有多少个功能,你是无法去更好选择不同的技术栈
当然,在目前AI编程时代,留给你多少时间去开发,打磨这个软件也是非常重要的一个指标
当我拿到这个项目文件 我个人的偏好是去选择把整个项目文件丢给不同的在线AI 然后他们根据我需要的功能去调研项目技术栈 技术路线 如何开发等一系列报告
为什么要扔给在线的AI 这种Web形态的去让他生成?
因为对比你自己api key接入Cherry Studio等等让他生成 他搜索效果其实不如你直接调用网页版的 他搜索的东西会更多更快一点 因为这种官方自己部署的 他们也可以检索Github等 不受你自己的网络限制
因为既然是研判 搜索到一些同类项目是有什么功能特点 Github上有什么可以拿来用的组件/库 现成的基础设施等
可以快速加快我们的开发速度 同时免去重复写轮子 避免Token的无效使用
当然 在这一过程中 越多AI去拿到你的项目文档和要求 生成的报告越多越好 因为肯定可以从不同的模型中
我们可以得到相同的结果和一些有趣的技术路线 功能设计
1.2 拿到研判报告以后我干了什么?
拿到研判报告以后其实就很好说了 我把我用Deepseek 豆包 千问生成的三份报告 复制为Markdown然后保存到本地
然后 在项目根目录创建一个docs文件夹 把md文件都扔进去
接下来 你可以像我一样 挑一个自己用得惯的Coding Agent
我这里用的是ZCode 当然这个因人而异 (*在项目初期阶段 还没有发生Z/ 上传代码事件 不喜勿喷)
然后把这三个报告整合到一起 成为一个总的项目报告
在上文我们提及到 一定是有不同的功能实现方式,那么我是如何进行整合的?
Matt Pocock的skills中的grill-me 我非常推荐你使用 这也是我本人在开发过程中用的最多的skill
当调用grill-me 然后再引用这三份文件进行整合时候 他会调用对话框来问你
这个功能的 取舍/实现形式 等等 这样其实非常的省心省力 同时第一个永远是推荐的选项 就算你什么都不知道 你也有一个永远被推荐的选择
1.3 整合为一个报告之后,接下来怎么做?
很简单,不要急着一句话直接开始"按照这个计划帮我开发"
因为这涉及到大模型和harness之间的一个问题
假设你直接读取整个计划,放入到上下文之后;模型输出前一两个功能写完之后 随着上下文的不断膨胀和注意力机制的问题
你的计划的上下文的在大模型的注意力机制的权重会下降,也就是像人一样
刚说完一整个计划,实现了一两个功能,实现完成以后会把计划的很多 功能细节的实现要求忘记掉
这会直接导致以下几点后果
1.功能开发不全
2.功能不尽人意 没有达到你想象中的预期
3.甚至大概率是会丢失 你想要的功能实现细节和具体机制+很多功能没有去实现
一个很好的解决办法就是 让模型自己把计划拆开
按照从环境部署-->大体机制-->细致功能实现-->原子化拆分Ticket-->让Coding Agent读取Ticket逐个实现
这样会有一下几点好处
1.功能的细致化 你永远可以去看生成的Ticket中 最小的一个功能实现有没有你想要的想法
2.避免上下文膨胀导致的模型幻觉,在大部分情况下 如果没有好的Harness设计或者说好用的Coding Agent
(这就是为什么我要选择ZCode的原因 因为他开启Goal模式之后会自动校验目标是否完成 一直迭代知道完全实现)
会产生幻觉 "我以为我已经做完这个功能了" 实际上有可能只是他自己cot里面这样想的 或者说是草草的给这个Ticket打了个勾
这是在软件功能实现上最需要避免的情况 而且也是最不容易发现的情况
Why Not PRD?
为什么不先生成PRD(产品需求文档)?
这取决于你的软件开发时间有多长 如果是较长时间去讨论功能 用户体验 UI交互等
你完全可以去跟AI/你的队友去讨论
但是对于这个项目而言 实际上只有14天的从0开发的时间 我也只能草草交流一下
人肉PRD了
