SDD开发实战:3小时从零构建可私有部署的AI助手

276 阅读7分钟

SDD落地实战、从0构建一个AI助手,以及如何绕过那些技术深坑

在AI应用蓬勃发展的今天,智能客服已成为各行各业的基础设施。虽然Coze等平台让搭建客服助手变得容易,但这些方案存在一些局限:难以本地部署、依赖第三方平台、存在数据安全风险。

基于这些考虑,我决定尝试一种不同的路径:使用SDD(规范驱动开发)方法,配合AI编程助手,独立搭建一个完全可控的客服聊天系统。

2个目的:

1: SDD 的效果验证

2: 建设一个我完全可控的智能助手

前天晚上,我打开Cursor编辑器,给自己设定了一个目标:能否在两个晚上的业余时间里,从零开始构建一个功能完整的客服聊天智能体?

我当时的预期并不乐观——我要打造是一个包括前后端的完整的系统,应该算一个小型的应用了。但结果,却完全出乎我的意料。

一、基于SDD:用规范驱动开发流程

我的起点很简单:给Cursor一个清晰的指令。

“开发一个客服支持的智能体,包括前端和后端,前后端分离。支持的功能包括:

聊天会话管理(新增、删除等),

聊天界面,设置(包括模型设置、知识库设置,模型可以选择,知识库支持多个知识库的知识导入、查看等)。

用户通过前端和智能体沟通,智能体查询相关的知识库,然后给用户适当的反馈,支持流式和非流式。”

接下来,我启动了SPEC KIT框架的标准化流程:

**第一步:需求规范(spec.md)**Cursor将我的自然语言描述转化为结构化的功能需求文档。24个具体需求点,10项可衡量的成功标准,每一个用户故事都配有明确的验收条件。 我对生成的需求进行了部分检查和修订

**第二步:技术方案(plan.md)**我补充了唯一的技术栈要求:“使用LangChain框架"

基于LangChain要求,Cursor设计了完整的架构方案:

  • 后端:FastAPI + LangChain + LangGraph + ChromaDB

  • 前端:React + TypeScript + Vite

  • 模块化分离:agent、tools、prompt、api等各司其职

第三步:任务分解(tasks.md)这是最令人印象深刻的部分。Cursor生成了97个具体开发任务,每个任务都精确到文件路径:

- [ ] T024 实现向量搜索工具:backend/src/tools/vector_search_tool.py
- [ ] T034 创建聊天界面组件:frontend/src/components/ChatInterface.tsx

自动分析了任务依赖关系,标注了哪些可以并行开发——前端界面与后端API可以同步推进,极大提升了开发效率。

第四步:一致性检查运行/speckit.analyze命令后,系统自动发现了8个潜在问题:术语不一致、定义模糊等。这步预防性检查,可能在后续开发中节省了数小时的调试时间。

完成产品的第一版展示如下:

second.PNG

设置页面:

three.PNG

二、遇到的问题:即使顺风顺水也难免偶尔逆流

开发过程并非完全一帆风顺,2个遇到的挑战是:

挑战一:Embedding模型

这是RAG系统的核心。

Cursor最初使用OpenAI的Embedding模型,但这对于国内和本地部署都不理想。

然后我选择使用Ollama 本地模型,但Ollama模型也不能下载下来

最后选择了最简单的langchain 自身携带的embedding 模型

挑战二:python环境问题

python包依赖问题还是比较复杂,出现几次pyhon包依赖版本的问题。例如使用的函数在安装的版本中已经不存在等。 不过解决问题不大。直接丢给Cursor即可

反思 环境和环境依赖管理是软件管理复杂度的一个核心和关键。 Cursor这类工具也难以解决的。

三、变更与迭代:氛围编程的流畅体验

项目开发完成后,变更难以避免。

Cursor体现了强大的能力,没有考虑使用OpenSpec等流程,直接将问题反馈给Cursor

示例一:增加聊天记录导出功能

我简单描述:“用户应该能够导出某个会话的完整聊天记录为文本文件。”

Cursor不仅添加了后端导出端点,还生成了前端导出按钮组件,并自动更新了相关API文档。

示例二:增加支持md文件导入知识库

我简单描述:“当前知识库加载仅仅支持pdf,txt等,需要支持md文件”

详细截图展示一下:

1.PNG

然后直接进行结果检查:

result.PNG

进行功能验证也完全正常

这种氛围编程的体验异常流畅:我不需要知道具体哪些文件需要修改,只需要关注功能需求本身。

这点应该是Cursor的核心能力,确实使用起来非常的丝滑。

四、核心收获:不只是代码,更是方法论

两个晚上后,我收获包括:

完整可用的智能客服核心

  • 基于知识库的精准问答(RAG架构)【知识库的效果需要继续打磨】

  • 流式/非流式双响应模式

  • 直观的聊天界面与会话管理

  • 可扩展的多模型支持框架

  • 知识库上传与管理功能

完整的开发资产包【SPEC】

  • 97个任务的详细开发清单

  • 清晰的技术架构文档

  • 模块化、可维护的代码结构

  • 随时可查的API规范

可复用的SDD工作流程

  • 从需求到实现的标准转化路径

  • 自动化的一致性检查机制

  • 支持后续迭代的文档基础

结语:从代码工人到系统架构师

这次SDD开发经历,让我体验到了一种全新的工作模式:我不再是那个埋头解决语法错误和调试细节的“代码工人”,而是更像一个系统架构师产品设计师

我的核心工作变成了:

  • 定义清晰的需求目标和成功标准

  • 设计合理的系统架构和模块划分

  • 制定明确的接口规范和数据流

而具体的代码实现、细节处理、错误修复,则交给了AI助手在SDD框架的约束下高效完成。

两个晚上的时间,我不仅构建了一个可用的客服系统,更重要的是验证了一种面向未来的开发范式

人类专注于高层设计和规范制定,AI负责细节实现和代码生成。

这种分工协作的效率,远超出我最初的想象。

AI和工具能力持续快速增强,我们唯一要做的是: 认识到当前AI的能力边界,跟上AI能力的发展

或许,这就是下一代软件开发的样貌:更智能的工具、更严谨的方法、更高效的协作。

也许:想到就可以实现并不遥远

而我们,正站在这场变革的最前沿。

完整代码(包括SDD的全部命令)已经归档到github:github.com/renhonglian…


我是AI时代原住民,欢迎关注我的公众号,一起在不确定的AI时代寻找确定性:

1:AI重构研发范式:

AI时代,你最大的能力变迁:从“我不行”到“我能行”!

AI重构软件研发全流程走向落地!亚马逊发布「AI驱动开发」全新方法论,完整解读十大核心原则

AI开发新范式——规范驱动开发(SDD)【第三篇】:通过OpenSpec实现增量开发

一图介绍清楚基于Spec Kit 框架的SDD(规范驱动开发)的详细过程【SDD第二讲]

五分钟带你理解AI时代的软件研发新范式——SDD(规格驱动开发) 【SDD第一讲】

重温氛围编程:是AI开发的明日新星还是皇帝的新装

华为《智能世界2035》揭示软件未来:人机协同编程重塑软件开发格局

2:AI重构软件组织:

AI组织-未来已来:10年以后的组织是什么样子?

AI组织是什么样子?来自微软的最新分析 – The Year of the Frontier Firm:

3:软件工程本质思考:

AI时代,重新温习软件工程经典巨作,思考软件工程的本质

4: 模型本质的认识:

OpenAI深度揭秘大语言模型的幻觉本质

5: 软件智能测试:

AI在软件测试中的理想与现实:一场尚未到来的革命