平台拆成五层: 模型、能力(插件与卡片)、编排(工作流与对话流)、知识(知识库与数据库)、应用与发布。 五层不是五个功能,是五个能单独拔掉的槽。拔掉哪一层,症状不一样。 这一节把五层填满跑一遍,再逐个抽掉看它怎么坏——坏法比功能表更能说明每一层管什么。
前四节讲平台是什么、为什么选、给谁用。这一节讲它的内部结构。 这一节是全书的结构图:后面每一章都在讲这五层里的一层,或者几层的组合。 看的时候可以对照目录:第 3 章讲能力层,第 4 章讲编排层,第 5 章讲知识层,第 7 章讲数据, 第 2.6 节把五层串一遍。
一、五层,五个槽
模型层:调哪个模型、温度多少、上下文多长。它决定「话说得像不像」。 能力层:插件和卡片。插件让它能办事,卡片决定办完怎么摆给用户看。 编排层:工作流和对话流。它决定「先干什么、后干什么、什么情况下拐弯」。
知识层:知识库和数据库。前者只读、用来查;后者可写、用来记。 应用与发布层:人设、开场白、渠道。它决定「用户从哪儿进来」。 五层的关系是:上面四层都在为最后一层服务。用户只看见最后一层,但决定体验的是前面四层。
二、模型层:换一个看差别
同一个问题,换个模型,差别不在「对不对」,在「像不像」和「敢不敢编」。 演示里换成弱模型之后,它不再编十五天了,改成「建议咨询人事」——听着更负责,其实还是没答。 所以换模型不能解决「没有资料」的问题。资料的问题只能在知识层解决。这是全书最常被搞混的一件事。
三、能力层与编排层
能力层是「会不会」,编排层是「按什么顺序」。 一个智能体挂了十个插件,但不知道什么时候该用哪个,结果是一边超时一边乱调。 这是编排层的问题,不是能力层的问题。 反过来,编排做得再好,没有插件也办不成事——工作流里那个节点只能是空的。
两层的分界可以这么记:能力层回答「能不能」,编排层回答「什么时候」。
四、知识层:读与写分开
知识库存的是「资料」,只读,用来查。数据库存的是「记录」,可读写,用来记。 为什么分开?因为两者的用法完全不同。资料要切分、要向量化、要算相似度; 记录要建表、要定字段、要增删改查。 放一起会出现什么?要么检索效率差,要么改数据时把资料改坏。这个坑第 7 章还会讲一次。
五、应用与发布层
这一层最像「包装」:人设、开场白、推荐问题、渠道。 但它决定了一件事:用户第一次打开时,知不知道该问什么。 演示里那条链跑出来的答复是对的,但如果开场白写得含糊,用户根本不会问出那个问题。
所以别把这一层当收尾工作。它跟提示词一样,属于「说清楚要什么」的一部分。
六、动手 Demo:把五层拼成一个能跑的对象
平台上的智能体,剥掉界面就是一个带五个槽的对象:模型、提示词、插件、知识库、数据库。 逐槽填真东西,然后改一个槽看答复怎么变。
class MiniAgent:
def __init__(self, model, prompt, plugins=None, kb=None, db=None):
self.model, self.prompt = model, prompt
self.plugins, self.kb, self.db = plugins or {}, kb or [], db or []
def ask(self, q):
hits = retrieve(q, self.kb, top=1) if self.kb else []
fact = None
for k, fn in self.plugins.items(): # 插件:按关键词触发
if k in q:
fact = fn(q)
if hits: return '按制度,' + hits[0][1]
if fact: return fact
if self.model == '弱模型': return '建议咨询人事。'
return '公司规定每年可享 15 天年假。(编的)'
实跑输出:
--------------------------------------------------------------------
把平台五块拼成一个能跑的对象
--------------------------------------------------------------------
① 五个槽各就位
--------------------------------------------------------------------
| 槽 | 本例填了什么 | 管什么 |
|---|---|---|
| 模型 | 强 / 弱 | 决定话说得像不像 |
| 提示词 | 人设加口径 | 决定从哪个角度答 |
| 插件 | 实时汇率 | 补「今天」这类实时数据 |
| 知识库 | 三条制度 | 补「你公司」这类内部数据 |
| 数据库 | 问题清单 | 把发生过的事记下来 |
② 同一个问题,改一个槽看差别
--------------------------------------------------------------------
| 配置 | 它怎么答 | 答到点子上 |
|---|---|---|
| 五槽齐全 | 按制度,年假:入职满一年 5 天,满三年 10 天,满十年 15 … | 是 |
| 抽掉知识库 | 公司规定员工每年可享 15 天年假。(编的) | 否 |
| 抽掉知识库+换弱模型 | 公司制度里应该有相关规定,建议咨询人事。 | 否 |
| 只留知识库 | 按制度,年假:入职满一年 5 天,满三年 10 天,满十年 15 … | 是 |
抽掉知识库那句是关键:它没有变笨,它只是没有资料,于是编了一个很像的十五天。
换弱模型之后,它连编都编不利索,改成「建议咨询人事」——听着更负责,其实还是没答。
! 这就是第 5 章要解决的问题:答不出来时,它不会说不知道,它会给你一个像样的错答案。
③ 换一个「今天」的问题,动的槽换了
--------------------------------------------------------------------
五槽齐全 → 今天汇率 1 美元兑 7.12 元
用到知识库:否;用到插件:汇率
抽掉知识库 → 今天汇率 1 美元兑 7.12 元
用到知识库:否;用到插件:汇率
同一个问题,抽掉知识库的配置照样答出来了——因为这个问题不该知识库管。
! 五个槽不是五个都要开,是每个槽只在自己的那一类问题上起作用。全开只会更贵,不会更准。
①五个槽那一张表是本节的骨架。 注意「管什么」这一列:模型管像不像,插件管「今天」,知识库管「你公司」,数据库管「记住」。 ②同一个问题(年假几天),五种配置四种答法。 最值得看的是第二行和第三行:抽掉知识库之后,强的那个编了个很像的十五天, 弱的那个改口说「建议咨询人事」。 ③换一个问题(今天汇率),答案就变了:抽掉知识库的配置照样答对,因为这个问题不该知识库管。 每个槽只在自己那类问题上起作用。 ④最后那句是全节的结论:五个槽不是都要开。全开只会更贵,不会更准。
30 秒实验
- 给你手上的智能体按五层点一遍,写每一层现在填了什么。空的那层就是它最弱的地方。
- 问它一个它答不出来的问题,看它是编还是承认不知道。答案会告诉你知识层做得怎么样。
- 把开场白改写成三个具体问题(不是「有什么可以帮你」),再看用户会不会问对。
常见误区
- 「换个更强的模型就能答对。」模型解决「怎么说」,不解决「说什么」。 没资料的时候,强模型只会编得更像。
- 「知识库和数据库差不多。」一个只读、按相似度查;一个可写、按字段查。混着用两头都不好用。
- 「开场白是装饰。」它决定用户第一句问什么。第一句问歪了,后面全歪。
自测三问(点开对答案)
1. 五层是哪五层? —— 模型、能力(插件与卡片)、编排(工作流与对话流)、知识(知识库与数据库)、应用与发布。 2. 能力层和编排层的分界是什么? —— 能力层回答「能不能」,编排层回答「什么时候」。挂十个插件不知道何时用,是编排的问题。 3. 为什么抽掉知识库之后,强模型反而更危险? —— 因为它会编出一个很像的答案。弱模型至少会说「建议咨询人事」,强模型让你以为拿到了答案。五层看清了,该动手了。 下一节走一遍完整的入门流程:设计思路、接模型、建工作流、建智能体、发布到公众号——五步, 每一步都有明确的「怎么算过」。
- ☐ (本篇完,下一篇 2.6 扣子快速开发入门)
相关笔记
- 认识 Agent:四件缺一不可
- 扣子的背景与核心特征:一站式省了什么
- 扣子平台的目标群体:三类人的天花板
- 🐦 扣子开发 AI Agent · 索引