# AIwelink 项目讨论过程总结 > 用途:记录 AIwelink 从最初想法到当前产品和技术共识的形成过程,帮助新开发者理解决策背景。 > > 文档性质:这是讨论过程记录,不替代具体技术规范,也不替代飞书中的正式商业和运营文档。 > > 当前阶段:方向已完成初步收敛,代码目录和 Agent 具体实现尚未定型。 ## 1. 最初设想 项目最初的设想是建设一个项目合作平台: - 用户可以上传简历和个人资料。 - 用户可以发布自己的项目。 - 用户可以发布召集令,寻找队友或协作者。 - 平台面向大学竞赛,也面向真实开发者项目。 - 平台未来保留运营和商业化空间。 最开始看起来像是“项目合作 + 人才资料 + 组队”的平台,但讨论很快发现,如果只是简历、帖子、私聊和找队友,产品会接近校园墙或垂直交友平台,缺乏长期差异化。 ## 2. 第一次收窄:先服务大学生竞赛 为了降低冷启动难度,第一阶段选择大学生竞赛作为主要市场,而不是同时服务大学生和成熟开发者。 选择原因: - 需求集中在明确的赛事周期内。 - 学校、社团、校园墙和学生组织是可触达的渠道。 - 组队需求明确,容易观察“发布、申请、成队”的闭环。 - 技术类竞赛可以自然连接 AI API、课程和工具包。 第一阶段优先关注 AI、软件、数据分析、创新创业等技术关联竞赛,后续再扩展到更多竞赛、科研、开源、企业命题和创业项目。 ## 3. 从“交友平台”转向“任务型协作平台” 讨论中确认:如果平台只是“上传简历、发布召集令、私聊”,就会像校园版交友平台。 因此产品目标从“让人认识更多人”调整为: > 以明确的项目或竞赛任务为中心,帮助用户找到合适的能力、角色和协作者,并把项目真正做完。 平台的成果不应只是浏览、点赞或聊天,而应包括: - 有效申请。 - 成功组队。 - 持续协作。 - 完成作品。 - 提交竞赛。 - 赛后复盘。 ## 4. 与校园墙的区分 校园墙负责让信息被看见,AIwelink 负责让项目推进和结果沉淀。 区分重点: | 校园墙 | AIwelink | | --- | --- | | 单校或本地信息 | 跨学校的机会和项目网络 | | 非结构化临时帖子 | 绑定赛事、角色、时间和能力要求 | | 发帖后转到微信 | 记录申请、授权、组队和项目过程 | | 主要关注曝光 | 关注成队率、完赛率和作品数量 | | 广告或推广为主 | API、课程、导师、赛事和机构服务 | 校园墙不必完全视为敌人,也可以成为分发渠道:校园墙提供本地触达,AIwelink 承接标准化报名、组队、工具和成果记录。 ## 5. 商业化方向的形成 讨论中明确,平台不应主要依靠向学生收取“找队友”会员费。更自然的商业闭环是: ```text 免费赛事与项目机会 -> 用户组队并开始真实项目 -> 产生 AI 工具和能力需求 -> 使用模型 API、工具包、课程或导师服务 -> 后续对接学校、赛事方和企业 ``` 主要商业化方向: 1. 面向竞赛团队的模型 API 和场景化工具包。 2. 面向具体赛事的课程、训练营、作品评审和答辩辅导。 3. 学校、社团和赛事方的报名、组队和运营服务。 4. 企业命题赛、模型或算力赞助、品牌合作。 5. 基于真实项目经历的人才发现和项目推荐。 商业表达不应聚焦“帮助用户访问国外 AI”,而应聚焦国内稳定可用、人民币结算、适合竞赛场景的 AI 能力。 API 和课程不应在用户刚进入平台时硬推,而应在用户进入项目、遇到具体困难或进入备赛阶段后出现。 ## 6. 首页心智的讨论结果 首页不以产品介绍、API 或课程商城为中心,也不以简历瀑布流或泛校园信息流为中心。 首页应该围绕“机会”和“下一步行动”: > 找到适合你的下一次挑战,并知道现在应该做什么。 首页的优先内容: 1. 适合用户的竞赛和项目。 2. 即将截止或正在招募的机会。 3. 用户正在参与的项目。 4. 自我认知和成长任务。 5. 真实项目成果和经验。 6. 与当前项目有关的 API、课程和导师服务。 登录策略初步确定为:未登录用户可浏览部分公开机会;收藏、报名、申请组队或开始个性化自我认知时再要求登录。微信作为主登录入口,邮箱作为绑定、验证和恢复方式。 ## 7. 自我认知方向的形成 讨论进一步从“竞赛组队”转向“帮助用户了解自己”。用户真正想知道的不是简单人格标签,而是: - 自己擅长什么。 - 适合做什么类型的任务。 - 适合承担什么项目角色。 - 更适合什么工作环境和协作方式。 - 容易在哪些环节遇到困难。 - 下一步应该学习或尝试什么。 因此,心理测评不能只是一次性结果。平台应形成: ```text 自我评估 -> 选择项目 -> 真实行动 -> 队友反馈 -> 项目复盘 -> 更新自我认知 ``` 测评结果是当前阶段的假设,真实项目行为和合作反馈是更有价值的证据。 平台不做心理疾病诊断,不用单次测评淘汰用户,也不把用户固定成某种人格类型。 ## 8. 自我认知 Agent 与推广机制 随后提出将自我认知 Agent 作为推广阶段的独立产品入口: ```text 免费自我认知 Agent -> 生成个人报告 -> 分享安全摘要 -> 邀请朋友 -> 解锁双人或团队分析 -> 推荐项目和竞赛 ``` 积分可以作为增长工具,但奖励不应只绑定链接点击或注册,而应绑定有效行为: - 完成个人报告。 - 被邀请者完成授权。 - 双人报告生成。 - 参与项目或挑战。 - 完成项目复盘。 积分可以兑换深度报告、API 额度、课程优惠、导师问答或挑战资格。 ## 9. 双人画像与社交属性 讨论确认,社交属性可以存在,而且可能是产品传播力的一部分,但应该围绕“共同做事”展开。 用户邀请朋友并获得双方授权后,可以生成: - 彼此互补的优势。 - 适合的分工方式。 - 可能发生冲突的地方。 - 推荐的沟通方式。 - 适合一起参加的项目。 - 合作前应该约定的规则。 社交产品结构可以逐步演进为: ```text 个人画像 -> 双人协作画像 -> 三到五人的团队画像 -> 项目复盘 -> 长期成长和合作关系 ``` 共享必须是双向、明确、可撤销的授权。默认私密,用户可以选择共享优势、偏好、协作建议或成长方向,不应默认共享原始回答和敏感结论。 第一阶段优先面向已经认识的朋友、同学和队友,暂不把陌生人交友或恋爱社交作为主场景。 ## 10. 个性化推荐方向 推荐系统被定义为平台的长期核心能力,推荐对象包括: - 竞赛。 - 项目。 - 学科。 - 学习内容。 - 项目角色。 - 合作对象。 - 课程、导师和 AI 工具。 推荐依据不只包括兴趣,还包括: - 用户能力和目标。 - 可投入时间。 - 工作偏好。 - 已完成或放弃过的项目。 - 项目中的真实行为。 - 队友反馈和复盘结果。 第一阶段采用可解释的规则、标签、行为信号和必要的向量召回,不直接引入复杂黑箱模型。 ## 11. 技术选型过程 ### 11.1 后端语言 讨论过 Go、TypeScript 和 Python 的适用性。 结论是:全栈 TypeScript 足以支撑第一阶段,因为业务主要是网络 I/O、数据库读写和第三方模型调用。Go 可以作为未来独立高性能服务的选择,Python 更适合未来算法和数据科学任务,但当前不需要为了 AI 提前拆成多语言微服务。 ### 11.2 React 与 Next.js 确认 React 是 UI 库,Next.js 是基于 React 的应用框架。由于平台同时需要公开机会页、分享页、搜索收录和登录后的个性化工作台,最终选择: > Next.js + React + TypeScript Next.js 负责 Web 应用,视觉质量由设计系统、信息层级、动效、响应式布局和性能实现决定,而不是由框架本身决定。 ### 11.3 Web 与 REST API 确认采用 Next.js 与独立 REST API,而不是把核心业务全部放入 Next.js Route Handler。 第一阶段使用同域名反向代理: ```text https://aiwelink.com/ -> Next.js https://aiwelink.com/api/v1/* -> 独立 REST API ``` 这样可以保留独立 API 边界,同时避免第一阶段的跨域和子域名复杂度。 ### 11.4 API 框架 确认使用: > NestJS + Fastify Adapter NestJS 负责模块、依赖注入、权限 Guard、异常处理和 OpenAPI;Fastify 作为底层 HTTP 适配器。 ### 11.5 数据访问 对比 Prisma、Drizzle 和原生 SQL 后,确认: > Drizzle ORM 作为默认数据访问工具,原生 SQL 作为复杂查询补充。 普通 CRUD 和事务使用 Drizzle;pgvector、全文搜索、推荐排序和复杂报表通过 Repository 使用参数化原生 SQL。 ### 11.6 身份系统 确认在 API 内部建立 Identity 模块,统一管理微信登录、邮箱绑定、会话、验证和登录审计。第一阶段不把身份体系绑定在 Next.js 上。 ### 11.7 数据与基础设施 确认使用: - PostgreSQL 作为业务主数据库。 - `pgvector` 作为 PostgreSQL 扩展。 - Redis 用于缓存、限流和队列基础设施。 - 阿里云 OSS 存储简历、作品、报告和附件。 - Docker 容器化 Web、API 和 Worker。 - 自有 ECS + Docker Compose 作为第一阶段部署方式。 - 后续业务规模增长后再迁移 Kubernetes。 - Uptime Kuma 作为第一阶段基础可用性监控。 数据按身份、资料、原始测评、推测画像、行为证据、公开画像和授权审计分层存储。提前按业务边界分表,但不提前做跨库分片。 ## 12. Monorepo 与文档管理决定 确认使用单 Git 仓库和 Monorepo,代码按以下概念划分: - `apps/web`:Next.js Web。 - `apps/api`:NestJS REST API。 - `apps/worker`:异步任务,Agent 方案暂不定型。 - `apps/admin`:后续运营后台。 - `packages/contracts`:OpenAPI、DTO 和共享接口。 - `packages/db`:Drizzle Schema、迁移和种子。 - `infra`:Docker、ECS 和未来 Kubernetes。 文档边界确定为: | 文档内容 | 位置 | | --- | --- | | 总体架构、技术栈、工程规范 | 根目录 `docs/`,进入 Git | | API 具体接口和模块实现 | `apps/api/docs/`,进入 Git | | 数据库规范 | `packages/db/docs/`,进入 Git | | 技术部署和备份 | `infra/docs/`,进入 Git | | 临时需求和未确认讨论 | `docs-local/`,Git 忽略 | | 商业、市场、运营和合作 | 飞书,不进入 Git | ## 13. 当前已确认与未确认 ### 已确认 - 第一阶段面向大学生竞赛和技术项目。 - 平台核心是自我认知、项目机会、真实协作和成长反馈。 - 社交围绕双人或团队协作画像展开。 - 推荐系统要可解释并帮助用户理解自己。 - 使用 Next.js + React + TypeScript。 - 使用独立 REST API,路径为 `/api/v1`,与 Web 同域名反向代理。 - 使用 NestJS + Fastify Adapter。 - 使用 Drizzle + 原生 SQL。 - 使用 API 内部 Identity 模块。 - 使用 PostgreSQL、pgvector、Redis 和阿里云 OSS。 - 使用 ECS + Docker Compose,后续迁移 Kubernetes。 - 商业和运营文档使用飞书。 ### 暂未定型 - Agent 使用的具体模型供应商和模型路由。 - Agent 的对话编排框架。 - 长报告和复杂任务的具体队列实现。 - 推荐系统是否拆为独立服务。 - 测试工具和完整可观测性方案。 - 生产数据库和 Redis 的最终托管或自建形态。 - 具体的第一场竞赛、运营节奏和商业价格。 ## 14. 新开发者阅读顺序 建议按以下顺序了解项目: 1. 阅读本文,理解产品为什么不是校园墙或普通交友平台。 2. 阅读 `docs/project-handoff.md`,了解当前工程共识和接手规则。 3. 阅读 `docs/architecture/technology-stack.md`,了解技术基线。 4. 阅读 `docs/architecture/technology-stack-details.md`,了解 API、数据和部署细节。 5. 阅读对应模块下的文档和决策记录。 6. 对未定型事项先保持接口边界,不要擅自提前固化实现。 ## 15. 总结 本次讨论的核心收敛过程是: ```text 项目合作平台 -> 大学生竞赛组队 -> 区别于校园墙的任务型协作 -> 以自我认知为长期核心 -> 个性化推荐项目、学科和合作对象 -> 双方授权后生成协作画像 -> 通过真实项目形成成长和关系数据 -> 用 API、课程、导师和机构服务商业化 ``` 技术选择遵循同一个原则:先用清晰、稳定、可迭代的模块化架构验证真实用户价值;在规模和业务证据出现后,再增加 Agent 编排、复杂推荐、Kubernetes 或专用基础设施。