AI Scaffold 系列收官:从脚手架到 AI 应用工程化体系 📅 2026/7/13 11:10:37 上一篇文章讨论了如何把 AI Scaffold 做成开源项目。从 README、示例项目、Roadmap、Issue 模板、贡献说明、License、测试和 CI 这些基础建设开始一个脚手架项目才不只是作者自己的工具而是可以被别人理解、试用、反馈和参与的开源项目。到这里AI Scaffold 系列可以做一个阶段性收官。这 20 篇文章真正想回答的问题其实只有一个AI 应用从 Demo 走向工程项目中间到底差了什么如果只看表面差的是代码量。但如果看工程本质差的是结构、边界、治理、复用和持续维护能力。AI Scaffold 这个系列就是围绕这些问题展开的。一、为什么从脚手架讲起AI 应用开发一开始很容易让人产生错觉。接一个模型 API。写几句 Prompt。做一个输入框和输出框。一个 Demo 很快就能跑起来。但 Demo 跑起来不代表项目能长期维护。真实项目里问题会很快出现配置写死在代码里。Prompt 散落在函数中。模型调用无法切换。Tool 调用没有边界。Workflow 逻辑越来越乱。日志缺失问题难以排查。部署方式不清楚。安全和权限没有治理。所以这个系列从脚手架讲起。因为脚手架不是为了炫技。它是为了在项目一开始就把工程边界立起来。二、Demo 和工程项目的差别Demo 关注的是能不能跑通工程项目关注的是能不能维护 能不能扩展 能不能排查 能不能部署 能不能治理这两者不是同一个层次的问题。一个 AI Demo 可以把所有逻辑写在一个脚本里。但一个 AI 工程项目不能这样做。它需要有配置层、模型层、Prompt 层、Workflow 层、Tool 层、Repository 层、安全层、日志层和部署层。这些内容单独看都不复杂。但如果一开始没有组织好后面就会不断变成维护成本。AI Scaffold 解决的不是某一个模型调用问题。它解决的是 AI 应用工程化的组织问题。三、项目结构是第一道边界一个项目的目录结构决定了代码未来怎么长。如果所有内容都放在一个文件里项目很快会变成一团。所以系列里专门讨论了app 应该放什么。config 应该负责什么。prompts 为什么要独立。workflow 为什么要拆出来。tools 为什么不能散落在业务代码里。repository 为什么要隔离数据访问。tests 和 evals 为什么应该提前留位置。项目结构不是形式主义。它是在告诉开发者什么代码应该放在哪里。 什么职责不应该混在一起。这是工程化的起点。四、配置管理决定项目能否迁移AI 应用通常离不开配置。例如模型名称。模型供应商。API 地址。数据库连接。日志等级。环境变量。缓存配置。部署参数。如果这些内容写死在代码里项目就很难从本地迁移到测试环境和生产环境。所以配置系统是 AI 应用工程化里非常基础的一环。它看起来不起眼。但没有它项目会越来越难部署也越来越难协作。脚手架的价值就是把这些基础能力默认准备好。五、LLM 抽象层解决模型依赖问题AI 应用不应该把业务代码直接绑死在某一个模型供应商上。今天用一个模型。明天可能换另一个模型。有些任务需要更强推理。有些任务需要更低成本。有些场景需要私有化模型。如果没有统一抽象每次切换模型都会牵动业务代码。所以 LLM 抽象层的意义是把模型调用变成一个清晰接口。业务代码关心任务。模型适配层关心具体供应商。这就是分层。六、Prompt 不是随手写的字符串Prompt 在 AI 应用里不是临时文本。它更像业务规则的一部分。一个 Prompt 可能决定模型的角色。回答的边界。输出的格式。工具调用的约束。安全策略。用户体验。如果 Prompt 散落在业务代码里就很难维护。所以系列里强调Prompt 应该被模板化、参数化、版本化和集中管理。这不是把问题复杂化。而是承认 Prompt 本身就是 AI 应用的重要资产。七、Workflow 让复杂任务可控很多 AI 应用不是一次模型调用。它往往是多个步骤组合。例如文档分析上传文档 - 解析文本 - 提取信息 - 生成摘要 - 生成报告 - 保存结果如果这些步骤全部写在一个函数里后面会很难修改。Workflow 的价值是让任务链路变得清楚。每一步做什么。输入是什么。输出是什么。失败怎么处理。状态怎么传递。这些都应该有明确设计。AI 应用越复杂Workflow 越重要。八、Agent 不是魔法而是调度层Agent 经常被讲得很神秘。但从工程角度看Agent 首先是一层调度。它围绕目标、上下文、工具和执行策略做决策。所以系列里一直强调不要神化 Agent。 先把它当成工程调度层来设计。Agent 真正难的地方不是让模型“想一想”。而是工具怎么选。步骤怎么控。失败怎么退。权限怎么管。日志怎么记。循环怎么防。这些问题都不是一句 Prompt 能解决的。九、Tool Calling 必须有边界AI 一旦能调用外部工具能力会变强。但风险也会变大。工具可能访问数据库。可能调用接口。可能写文件。可能触发业务操作。所以 Tool Calling 不能只看“能不能调用”。还要看工具是否注册清楚。参数是否校验。返回值是否规范。权限是否控制。高风险操作是否确认。调用日志是否可追踪。这就是为什么 Tool 需要工程化管理。AI 能调用工具之后安全边界就不能再靠运气。十、Repository 让 AI 应用像正常后端项目AI 应用也是应用。它也会有用户、任务、会话、文档、日志、评测结果和业务数据。既然有数据就需要数据访问层。Repository 的意义是让业务逻辑不要直接依赖数据库细节。今天用 SQLite。明天换 MySQL 或 PostgreSQL。业务层不应该大面积改动。这和传统后端工程没有本质区别。AI 应用不是因为接了大模型就可以放弃基本的软件工程原则。十一、Memory、日志和安全决定项目能否上线Memory 解决的是上下文延续问题。日志解决的是问题排查问题。安全解决的是边界和风险问题。这三个能力往往在 Demo 阶段被忽略。但一旦进入真实项目它们就会变得非常重要。没有 Memory多轮交互很难自然延续。没有日志线上问题很难定位。没有安全治理Agent 和 Tool 调用就可能带来风险。所以 AI 应用上线不是把服务部署出去就结束。它还要能被观察、被审计、被限制、被复盘。十二、实战篇把模块串起来系列后面讨论了两个实战方向文档分析应用。智能客服应用。这两个场景不是随便选的。因为它们能把前面很多工程模块串起来。文档分析涉及文件上传。文本解析。Workflow。Prompt。LLM 总结。报告生成。结果存储。智能客服涉及RAG。多轮对话。Tool Calling。会话记录。人工兜底。安全边界。实战篇的意义是让脚手架不只是概念。而是能落到具体应用里。十三、这个系列最终沉淀了什么这 20 篇文章最终不是为了证明某个项目有多复杂。而是为了沉淀一个判断AI 应用开发正在从“能跑”进入“能维护”的阶段。如果只追求能跑写一个 Demo 就够了。但如果要进入真实项目就必须考虑工程化。工程化不是把事情做复杂。工程化是让复杂问题有结构。AI Scaffold 作为脚手架真正的价值就在这里。它把 AI 应用里常见的工程问题提前组织好。让开发者不是每次都从零开始。也不是每次都在项目后期补救。十四、总结AI Scaffold 系列到这里收官。从第一篇到最后一篇主线其实一直很清楚AI 应用不是只要能回答就够了。 它还应该能维护、能扩展、能部署、能排查、能治理、能协作。这就是脚手架存在的意义。它不是替开发者写完所有业务。而是提供一个清晰、稳定、可复用的工程起点。这个系列讨论过为什么 AI 应用需要脚手架。项目目录应该怎么设计。配置、模型、Prompt、Workflow 应该如何分层。Agent 和 Tool Calling 应该如何工程化。Repository、Memory、日志、安全为什么重要。AI 应用如何部署到生产环境。如何用脚手架做文档分析和智能客服。如何理解 AI Scaffold 与 LangChain、LangGraph 的关系。如何把脚手架做成开源项目。这些内容组合在一起就是一个完整的 AI 应用工程化视角。如果说 Demo 证明的是“这件事能不能做”。那么工程化回答的是这件事能不能长期做、稳定做、协作做、持续做。AI Scaffold 的价值也正是在这里。它让 AI 应用从一次性的演示走向可以持续维护的工程项目。这就是本系列最核心的结论。