先说个真实感受:Day01装完环境、跑通第一个大模型接口的时候,整个人是兴奋的,但那股兴奋劲儿退得也快。因为装OpenAI SDK也好,调通一个"你好,世界"也好,距离"我能做出个有用东西"还隔着很大一段。很多自学AI应用开发的人就卡在这个位置——环境不是问题,问题是下一步干嘛。
我给自己定的Day02目标很朴素:不碰那些花里胡哨的算法原理,先做一个"别人真能用的、带交互的、有实际输出价值的AI应用"。这篇就记录我第二天踩过的路、做的选择,以及最后搭出来的那个小东西的全过程。如果你也处于"装完环境但不知道从哪下手"的阶段,这篇应该能帮你省不少时间。
1. Day01之后为啥要停一下:先想清楚"第二天到底学什么"
1.1 别急着写代码,先定义"可见的成果"
我见过太多自学AI开发的人,第一天装环境、拉仓库、看文档,第二天就开始啃Transformer论文,第三天就放弃了。原因很简单:没有阶段性反馈。人不是机器,不能靠"为未来打基础"这种空头支票撑三个月。
Day01结束时我的状态是:OpenAI的API能调通了,本地Python环境能跑了,也搞明白了"给模型一段文本、模型返回一段文本"这个基本链路。但我很清楚,这点东西离"应用"还远得很。
所以Day02我做的第一件事,不是打开某个教程,而是给自己写了一条任务卡:
- 我要做一个带聊天界面的小应用(不要求代码多高级,但用户能通过它和AI对话)
- 它必须能解决一个具体场景的问题(而不是随便聊聊)
- 它要能发布出去,让不在我电脑上的人也能访问
这条任务卡的价值不在于目标多宏大,而在于它把"学习"变成了"做一个能验收的东西"。人一旦有了验收标准,注意力就自然聚焦了。
1.2 为什么Day02我从"智能体工作流"切入,而不是继续写代码
这是个值得展开说的选择。主流的学习路线通常有两种:一种是纯粹从代码入手,学LangChain、学LlamaIndex、学各种框架;另一种是先用可视化平台把整体概念建立起来。Day02我选的是后者——先接触平台型工具,用"工作流"的方式搭一个AI Agent。
原因其实很实际。纯代码路线在一个新手那里最大的问题是:你根本不知道哪些代码是必要的。一个简单的对话应用,用LangChain写可能要几百行,中间涉及记忆管理、工具调用、回调机制等概念。你花一周时间写完了,但脑子里的地图还是碎的。而可视化平台的每个节点都对应一个明确的概念(输入、大模型处理、条件判断、知识库检索、工具调用),你拖一遍流程,整个架构就长在脑子里了——之后再去写代码,你知道每一行是在干什么。
另外一个现实的理由:现在是2025年了,智能体应用(AI Agent)已经是AI应用开发的核心形态,而平台型工具是目前门槛最低的Agent落地方式。我用的是Coze(扣子)平台来做的这次实践,同类平台还有Dify、百度智能体平台、阿里百炼等,思路大致相通。先把Agent能做什么、有哪些组件搞清楚,比第一天就钻进代码里要高效得多。
1.3 今天结束前,要能回答四个问题
给自己定可验收目标之后,我又列了四个"理解性问题"——都是今天必须能用自己的话回答上来的:
- 一个智能体应用由哪些基本部分组成?(提示词、模型、工作流、知识库、工具、记忆)
- 我写的提示词(Prompt)到底是怎么影响模型输出的?
- 工作流里的"节点"是什么概念?多节点串联解决什么问题?
- 一个应用从做出来到发布出去,中间要过哪些关?
这四个问题看着基础,但回答不上来,后面的所有进阶内容都会是空中楼阁。我的习惯是:每天的学习必须能产出"你能讲给别人听的知识",讲不出来就是没学会。
2. 平台选型与准备:把时间花在刀刃上
2.1 主流AI应用开发平台横向对比
市面上的AI应用开发平台,本质上都在做同一件事:把"接大模型、写提示词、串流程、搞知识库、接工具"这些重复劳动封装好,让你专注于应用逻辑本身。但每个平台的侧重不太一样,我对比了这么几个:
| 平台 | 特点 | 适合谁 | 我的印象 |
|---|---|---|---|
| Coze(扣子) | 国内版可直接用,插件生态丰富,有独立的Bots商店,发布渠道多(支持小程序、API、WebApp等),字节跳动出品 | 新手从零到一、想做C端应用 | 上手快,节点类型覆盖全,国内外双版本 |
| Dify | 开源友好,本地部署能力强,面向ToB/私有化场景 | 有技术基础、重视数据私有化 | 更适合团队协作,自己部署有一定门槛 |
| 百度智能体平台 | 百度系模型驱动,文心一言生态 | 国内用户、想借百度分发渠道 | 模型绑定较紧,灵活性一般 |
| 阿里云百炼 | 阿里云体系,企业级服务成熟 | 企业客户、已用阿里云 | 偏B端,个人玩稍重 |
我没在这里花太多时间纠结。一个判断原则:新手阶段选平台,第一看上手成本,第二看能不能平滑过渡到下一步。Coze对新手最友好的点在于——拖拽式工作流、内置调试工具、发布成一键链接,这三个特性直接把"从想法到可分享的作品"的路径压缩到了最短。我身边不少搞产品、运营出身的朋友都是从这个平台跑的第一次Agent实践。
2.2 注册与基础配置,有哪些容易忽略的细节
注册账号这种事就不赘述了,说几个实操中容易忽略的点。
第一,模型选择别默认走"推荐的第一个"。Coze里创建Bot的时候会让你选模型,默认推荐的往往不是最优解。我的做法:如果应用偏中文场景,优先用国内模型(比如豆包、Kimi、通义千问),响应速度和中文语感通常更好;如果是做需要强推理、长文本的任务,再加Claude或GPT系列。Day02我选的是豆包系列模型,因为我的测试场景是中文生活类问题,实测中文指令理解度和生成自然度都够用。
第二,工作区概念要提前搞清楚。Coze分为"个人空间"和"团队空间",个人玩的话不用纠结,直接个人空间就行。但资源的组织方式会影响后期维护——我建议从第一天就按"应用类型"建Bot,而不是把所有实验塞在一个Bot里反复改。我一开始就是在一个Bot里改来改去,结果Prompt调乱了都不知道是哪个版本改坏的。
第三,调试台(Preview/Debug)是你最该常驻的地方。每个平台上都有一个"预览/调试"入口,在这里可以直接模拟用户输入、看完整执行日志。很多人做完应用就顺手关了调试台,完全浪费了这个最重要的学习工具——它能让你看到每个节点实际收到了什么、输出了什么,比任何文档都直观。
2.3 免费额度和模型消耗的心算逻辑
做实验型应用的时候,成本心态要摆正。大模型API是按token计费的,1token大约相当于0.75个英文单词或0.4-0.5个中文字符。平台一般会送免费体验额度,我查了一下Coze国内版的免费策略,个人开发者在额度范围内基本够用,但要注意:
- 每次对话都会消耗 tokens,包括你的输入(用户问题+历史记录+提示词)和模型的输出
- 如果应用里接了知识库和多个模型节点,一次用户请求可能触发多个模型的调用,消耗会叠加
- 调试阶段产生的消耗可能比正式运行时更大——因为你会不停试错
我的经验是:调试时如果想控制成本,可以在交互时把对话历史长度调小,或者在提示词里明确"不要输出多余的解释"。还有一个小技巧——把能一次算完的步骤合并,不要把一个任务拆成三四个模型节点串行调用。串行调用不仅是消耗问题,还会让错误在节点间累积和放大,这是初学者最容易犯的架构级错误。
3. Prompt工程第一课:让AI的输出从"像样"到"可控"
3.1 从"废话输出"到"结构输出":写Prompt的四步法
如果说Day02我只能带走一样东西,那一定是"怎么写Prompt"。原因很简单:模型的能力是固定的(在选型确定后),你的应用好不好用,80%取决于提示词的质量。你可以把Prompt理解成给一个新来的实习生写开工说明——说得越清楚,活干得越靠谱。
我自己总结的四步法,到现在还在用:
- 定角色:明确告诉模型"你是什么、你在什么场景下服务谁"
- 派任务:用一句话说明用户这次要达成什么目标
- 立规矩:列出必须遵守的约束条件(输出格式、长度、语气、不能做什么)
- 给示例:提供一组输入输出的样例,告诉模型"照着这个标准来"
这四步缺一不可。我见过太多人写Prompt就是一句话"帮我推荐杭州好吃的"——这种Prompt拿到的结果本质上是模型在"猜你想要什么",输出飘忽不定是必然的。你需要的不是让模型自由发挥,而是让它在你的框架里发挥。
3.2 一次对照实验:同一需求两种写法
我说个当天的实际对照实验,非常能说明问题。需求是"做一个城市美食推荐助手"。
第一种写法(我管它叫"随缘版"):
帮我推荐杭州的美食。模型输出:一段四平八稳的文字,列举了西湖醋鱼、龙井虾仁、叫花鸡,末尾又问"你想了解更多吗"——完全不可控,也没有任何可交互的结构。
第二种写法(四步法):
你是杭州本地生活专家,熟悉杭州大小馆子和街头小吃,擅长根据游客的口味偏好和行程安排给出个性化推荐。 用户会告诉你:ta在杭州哪个区域、想吃什么口味、预算大概多少、同行几个人。 你的任务是推荐3个合适的餐厅或小吃摊,要求口味地道、位置合理。 输出必须严格按以下格式: - 推荐名称: - 推荐理由(50字以内,说清楚为什么适合这位用户): - 人均消费: - 温馨提示(营业时间/排队/隐藏菜单等): 语气轻松友好,不要用过于书面的表达。如果用户给的信息不够,主动追问最多两轮,不要直接假设。同样的模型,输出完全是另一回事——结构清晰、针对性强、信息密度高,而且因为允许主动追问,对话的体验就立起来了。
这个对照实验给我的冲击很大。它证明了一个关键认知:"AI应用开发"本质上很大一部分工作量在"定义清楚问题",而不是"实现功能"。你把Prompt写清楚的过程,就是你在替AI把用户的问题想清楚。
3.3 温度参数与输出格式:模型参数里的小学问
除了Prompt内容本身,模型参数也会显著影响输出质量。平台里最常调的参数是"温度(Temperature)",它控制模型输出的随机性。
- 温度低(0-0.3):输出稳定、保守、更贴近事实,适合做客服、知识问答、结构化输出
- 温度中等(0.3-0.7):平衡创造力和稳定,适合大部分日常应用
- 温度高(0.7-1.5+):输出更有想象力、更发散,适合写文案、故事、头脑风暴
我做美食推荐助手用的是0.3-0.5这个区间,因为推荐类任务需要逻辑稳定;但我在Day02还顺手做了一个"一句话生成小红书标题"的实验,那个我把温度调到了1.2,出来效果明显更跳、更有网感。同一个模型,参数一变,风格天差地别——这个知识点不实操一次很难记住。
还有一个容易被忽略的:输出格式约束尽量放在Prompt里面,不要只依赖模型自觉。如果你要JSON格式、要固定字段,直接在提示词里给模板,并加上"只输出JSON,不要解释"这种强约束。在Day02的工作流实践中,输出格式的设计直接决定了后面条件分支能不能有效工作,这个后面细说。
4. 亲手搭一个能回答问题的智能体:Day02主项目全流程
4.1 需求拆解:从"想要的功能"翻译成"节点"
前面做的都是准备功夫,Day02的核心项目是:在Coze里搭一个"城市漫游助手"——用户输入"我在XX城市,有X天时间,喜欢人文/美食/自然",应用输出一份完整的行程建议。
为什么选这个题目?因为它天然有层次感:需要处理用户输入、需要基于城市信息做推理、需要给出结构化输出、甚至可以做条件分支(不同兴趣推荐不同路线)。刚好能把工作流的常用节点全部覆盖。
刚开始用平台的时候,最关键的思维转换是:不要想"我要写什么功能",而要想"数据是怎么流经我的应用"。我把这个需求拆成了四个节点:
- 开始节点:接收用户的原始输入(城市、时间、兴趣偏好)
- 大模型处理节点:把用户的零散输入整理成一个标准化的"需求解析结果"
- 条件分支节点:根据兴趣类型走不同的推荐逻辑(美食线/人文线/自然线)
- 结束节点:把最终结果按固定模板输出
你看,这个过程其实是在画一张数据流程图。这也是为什么我前面强调——如果一上来就写代码,你很容易陷入"调用API、处理返回"的细节里,反而看不清全局。平台的工作流就是帮你把架构先画出来。
4.2 开始节点与输入变量:别让用户对着空气说话
工作流的第一步是"开始节点",它定义了应用接收哪些输入。这里我踩了一个典型的新手坑:一开始我只设置了一个"整体输入"字段,想着"反正用户会打字,AI自己理解"。结果用户说的话五花八门——有人直接说"成都3天2晚",有人说"我想去有海的地方,预算5000",还有人说"杭州,两人,带老人小孩"。
这时候一个大模型处理节点根本忙不过来,因为它要从乱七八糟的文本里猜哪些信息是必须的、哪些是次要的。正确做法是:在开始节点里定义结构化字段,比如"城市""天数""兴趣类型""预算",然后在界面上生成对应的表单或分组引导。
这也是我第一次理解"产品思维在AI应用里的价值"——你给用户的输入结构越清晰,模型理解得越准,输出就越可控。换句话说,AI的"智能"是要靠产品设计来托底的。
所以我的开始节点最终设了四个变量:city(城市)、days(游玩天数)、interests(兴趣标签,多选:美食/人文/自然/购物)、budget(预算档位:经济/舒适/奢华)。每个变量都写了提示说明,用户填的时候就知道该给什么。
4.3 大模型处理节点:把"理解需求"这步单独做成一个环节
工作流里最核心的就是大模型节点(也就是LLM节点)。我在Day02里跑了两个大模型节点,第一个负责"需求解析",第二个负责"生成行程"。
先说第一个节点。它的输入是开始节点传来的四个变量,任务是输出一段格式化的"需求理解",比如:
用户计划:成都,4天3晚,偏好美食+人文,预算舒适档。 分析:美食推荐可侧重川菜、火锅、小吃;人文路线可覆盖杜甫草堂、武侯祠、宽窄巷子等;考虑到预算舒适档,住宿推荐定位在300-600元/晚的精品酒店或特色民宿。这个节点本身不直接给用户看,它的价值在于:把用户的零散信息转换为一个标准化的中间结果,后面的逻辑节点才有依据去判断。这一步很多人会跳过,觉得"直接生成行程不就完了"——但实践下来我发现,拆一步"理解需求"再"生成答案",模型的准确率明显更高。原因也不复杂:模型先"思考整理"一轮,再进入"方案设计"状态,比一步到位更接近人的工作方式。
第二个节点才是正式的"行程生成"。它的Prompt我用了前面说的四步法,并且把第一个节点的输出作为"输入变量"引用进来,格式模板也提前在提示词里给好。输出结构大概是:
Day1 抵达+城市初体验 Day2 主题深度游(美食/人文线) Day3 周边半日/一日游 Day4 返程前采购+总结每个部分下面固定带"推荐地点+理由+交通建议+预算参考"四要素。我特别要求它"每天最多推荐3个地点",避免列一堆看起来丰富、实际上根本走不完的假行程。
4.4 条件分支与结束节点:让应用学会"按情况说话"
接下来是条件分支节点。这是让我觉得"哦,Agent真的有点智能了"的关键节点。
条件分支的逻辑:读取第一个大模型节点输出的"兴趣类型"字段,如果包含"美食",走美食深度推荐分支;如果包含"人文",走人文路线分支;如果两个都有,走组合路线。我问过自己:为什么不直接在第二个大模型节点的提示词里让模型自己判断,非要单独设一个分支节点?
答案是:用逻辑节点做分流,比让模型自己判断更稳定。模型自己判断本质上是概率事件,同样的输入可能有几次就漏了条件;而条件节点的规则是确定的,只要输入字段里匹配到关键词就必然走对应分支。在生产环境里,"AI偶尔抽风"是不可接受的,所以凡是能用规则解决的问题,都应该用规则来解决——这算是我Day02学到的一个架构原则。
最后是结束节点。有些平台叫"输出节点",作用是把前面节点产生的最终结果返回给用户。这里有个细节:不是所有节点都要接到结束节点上,只需要把用户真正关心的最终结果显示出来。你可以把结束节点的输出格式定义成Markdown文本或富文本,我在里面放了加粗标题、小标题和列表,实测在Web端展示效果不错。
到这里,第一个能验收的智能体应用就完整了。整个过程不写代码,但你会清晰地看到:输入怎么进、文本怎么被处理、规则怎么分流、结果怎么出——这个"看见数据流动"的感觉,比看十篇教程都值。
5. 跑通只是起点:调试、验证与迭代
5.1 边界测试清单:把用户可能输入的"歪情况"都试一遍
第一次跑通的时候我很兴奋,但马上意识到一个问题:我只测试了"用户规规矩矩给足信息"的情况。真实用户不会这么乖。如果你打算把应用发出去让别人玩,你至少要测下面这些边界场景:
- 用户只给了城市,没给天数:应用要怎么追问?
- 用户给了超出预期的信息(比如不相关的闲聊):应用是忽略还是要处理?
- 用户输入的城市比较冷门(比如一个县城):模型会不会一本正经地编造景点?
- 用户兴趣类型不在预设选项里(比如"我想去钓鱼")
- 用户一次性输入了很长一段话,超过了模型上下文限制
我建议把这些场景提前写成一条测试用例清单,逐个跑一遍。每跑一条,就做一次Prompt微调。我在这个环节花了一个多小时,成果非常值得——后来朋友试用的时候明显感觉到"这个应用比我想象的懂事",因为边界情况都被提前处理过了。
5.2 最常踩的四个坑与排查思路
实操中肯定会遇到问题,我Day02就撞上了几个典型的,这里把排查思路也一并写出来。
坑一:多个大模型节点之间输出格式脱节。第一个节点输出的"需求理解"我没有规定格式,导致第二个节点拿到的输入五花八门,偶尔还带上模型的废话。排查思路:在第一个节点的Prompt里明确要求"只输出JSON格式",字段定死为{city, days, interests, budget, analysis},第二节点解析就稳定了。核心教训:节点之间传输的数据要有契约(Schema),不能靠模型自由发挥。
坑二:条件分支永远走不进去。我最初在条件分支里判断关键词"美食"时,发现怎么匹配都进不了对应分支。查日志后发现问题出在前置节点输出的是"想吃的东西包括火锅和串串",根本没有"美食"这个字。这是个语义标签和字面匹配的矛盾。解决方案:让第一个节点在输出时增加一个"标签化"字段,明确打上classification: food / culture / nature,条件分支匹配这个字段而不是匹配原文。
坑三:模型"幻觉"地点。用户输入一个冷门城市时,模型为了显得专业会编造景点。排查后发现:因为我们的应用里没有挂任何知识库,模型完全依赖训练记忆。要想回答准确,要么选用对地域知识有专门优化的模型,要么给它接入搜索工具或知识库(这一步我留到Day03再深入)。至少当场我可以做的是:在提示词里明确写"如果不确定的景点信息,请明确回答'该地点信息未核实',不要编造",这能减少大部分幻觉。
坑四:对话历史导致越聊越乱。做智能体的时候,平台默认会保留上下文记忆,但"记忆"不总是好事。用户在聊行程安排时顺便问了一句"今天杭州天气怎么样",模型会把天气话题也记进上下文,影响下一步推荐。排查结论:这个应用的核心任务其实不需要长期记忆,我在配置里把"记忆"策略调成了"只保留当前对话轮的上下文",会话一旦结束就清空。如何设计记忆策略,是AI应用开发里很值得单独研究的一节课,Day02先知道这件事存在就够了。
5.3 发布与数据观察:让应用开始被真实使用
调试通过之后,我做的最后一件事是发布。Coze平台发布成WebApp非常快,生成一个链接就可以发到群里让朋友试。虽然只是一个小应用,但当第一个人真的通过链接试用它的时候,那种"我做的东西被用起来了"的感觉,确实很不一样。
发布后我还做了一件事:观察使用数据。平台后台能看到对话量、用户分布、甚至每次对话的具体内容。我重点看两类信息:一是用户真实问法和我预设的问法差多远(这决定我要不要在开始节点补充更多示例引导);二是哪些对话让用户中途离开了(通常意味着输出没满足预期)。这算是用"用户反馈"驱动迭代的启蒙一课。
Day02结束时,这个应用大概迭代了五轮:第一轮是能跑,第二轮是输出格式美观,第三轮是边界问题修复,第四轮是加记忆策略,第五轮是发布后根据朋友意见做的小调整。你会发现,开发一个AI应用,跟产品迭代的逻辑是完全相通的——先做出来,再改到能用,再改到好用。这个节奏本身就很重要。
6. 第二天的学习复盘与下一步
6.1 今天学到的东西放在"AI应用开发地图"的哪个位置
很多人学习AI开发会陷入"知识点焦虑",觉得要会的太多了。为了不被信息淹没,我自己建了一个简化版的"AI应用开发能力地图":
- 基础层:大模型API的调用与参数理解(Day01已摸到)
- 编排层:Prompt工程、工作流设计、多节点串联(Day02核心)
- 记忆层:上下文管理、会话策略、向量数据库(后续)
- 能力层:工具调用(让AI去查天气/订机票)、知识库RAG(让AI回答私有/实时知识)
- 产品层:界面设计、发布渠道、数据分析、迭代机制
这么一梳理,Day02的工作就清清楚楚了:编排层是主战场,Prompt工程是辅助技能,产品层算是初体验。这样安排的好处是:以后每学一个东西,我都知道该把它挂在地图的哪个分支上,不会学了后面忘了前面。
6.2 Day03我准备怎么继续走
对我来说,Day02最大的遗憾(也是最好的下一步线索)是:这个"城市漫游助手"不能获取实时信息,也不能调用外部服务。模型告诉用户"建议坐地铁去灵隐寺",但它不知道今天灵隐寺是不是闭馆、地铁是否正常运营。
所以Day03的方向我已经定了:给Agent接上"工具"和"知识库"。具体想做两件事:一是通过API工具接口让Agent具备搜索实时信息的能力,二是把一份城市游玩知识库接入应用,让回答不再依赖模型的通用记忆。如果你也在走类似的路线,可以参考这个推进节奏:工作流能力 → 工具调用能力 → 知识库能力,一层层往上接,每个阶段都有清晰成果,不会摸黑。
6.3 一点过来人的心里话
学AI应用开发这件事,最大的敌人不是难度,而是"没有反馈的枯燥感"。Day02我最大的体会就是:一定要把学习任务设计成"可验收的项目"——哪怕它很小,哪怕它很多地方不完美,但当你把一个链接甩给朋友、朋友说"哎这个挺好用"的时候,你就有动力继续学下去了。
而且我越来越觉得,AI应用开发并不是纯粹的编程问题。它一半是"怎么把需求定义清楚",另一半是"怎么把AI的能力约束在可靠范围内"。这两件事,Day02里都有实打实的体会——从写Prompt到设计工作流的每一步,本质都是在替AI"划清边界、指明路径"。
最后分享一个我的小习惯:每天学习结束后,花10分钟把当天的探索过程(包括踩坑)写成一段简短记录,不用很长,但要写到"如果重新来一遍,我会怎么做得更快"。这个习惯帮我省了很多重复踩坑的时间。Day02的这篇复盘,就是这个习惯的产物。你如果也在学AI应用开发,建议也试试——写下来的过程,本身就是一个把知识内化的过程。