本节摘要:用 Agno 搭建智能体,脑子里只需要装五样东西:Agent(智能体)、Tool(工具)、Knowledge(知识库)、Memory(内存)、Team(团队)。本节逐个拆开这五个概念,说清各自的职责、相互关系与典型用法,建立统一心智模型。
阅读完本节,你应当能够:
第一次接触 Agno,最容易被一堆术语绕晕:Agent、Tool、Knowledge、Memory、Team……它们到底是什么关系?其实可以类比一家公司:Agent 是员工,Tool 是员工手里的工具,Knowledge 是公司资料库,Memory 是员工的工作笔记,Team 是多个员工组成的项目组。想清楚这个类比,五个概念的关系就理顺了。

| 概念 | 类比 | 职责 | 典型代码 |
|---|---|---|---|
| Agent | 员工 | 组合模型与能力,对外交互 | Agent(model=..., tools=[...]) |
| Tool | 手里的工具 | 提供模型之外的行动能力 | tools=[DuckDuckGoTools()] |
| Knowledge | 公司资料库 | 提供外部知识供检索 | knowledge=AgentKnowledge() |
| Memory | 工作笔记 | 记住会话与状态 | memory=AgentMemory() |
| Team | 项目组 | 多个 Agent 分工协作 | Team(members=[...]) |
from agno.agent import Agent from agno.tools.duckduckgo import DuckDuckGoTools from agno.knowledge import AgentKnowledge from agno.vectordb.lancedb import LanceDb from agno.team import Team # 1. 知识库:把产品文档存进向量库 knowledge = AgentKnowledge(vectordb=LanceDb(table_name="products")) # 2. 工具:能联网查最新价格 web = Agent(tools=[DuckDuckGoTools()], name="web_searcher") # 3. 团队:客服 + 搜索 两个 Agent 协作 team = Team(members=[web, Agent(name="cs_agent")], name="support_team")
一行一个概念,五样东西各就各位——这就是 Agno 的核心模型:Agent 是主角,其他四个都是它的能力来源。
⚠️ 常见坑:Knowledge 和 Memory 经常被混用。Knowledge 是"外部资料"(模型不知道的知识),Memory 是"会话记录"(模型自己说过做过的事)。前者喂知识,后者记上下文,用途完全不同。
Agno 的 Memory 不只是"聊天记录",还分几个层次:
| 记忆类型 | 内容 | 用途 |
|---|---|---|
| 会话记忆 | 当前对话的上下文 | 保持连贯 |
| 用户记忆 | 用户的偏好与画像 | 个性化回答 |
| 智能体记忆 | 智能体自身状态 | 任务延续 |
💡 关键直觉:先分清"这次对话要记住的"(会话记忆)和"这个人长期要记住的"(用户记忆),再决定存哪层。分层记忆是智能体从"玩具"走向"产品"的关键一步。
实际项目中,五个概念很少单独出现,而是按"能力拼装"组合:Agent 是骨架,Tool 是手脚,Knowledge 是外脑,Memory 是笔记本,Team 是组织。搭建时先想清楚"这个智能体需要哪几样",再逐个挂载——Agno 的组合式设计让这个过程几乎没有摩擦。
概念单看都懂,合起来才见真章。走一遍原始文档里的完整场景:用户问"AI 半导体公司的市场前景和财务表现如何"。
用户提问 │ ▼ Team(队长) ── 拆任务 ──┬── Web Agent ── Tool: DuckDuckGoTools ── 搜市场前景 └── Finance Agent ── Tool: YFinanceTools ── 查财务数据 │ │ └────────── 汇总整合 ◀───────────────┘ │ ▼ Memory 把这轮问答写入会话历史(用户下次追问"那它的股价呢"时不用重新解释背景)
这个场景里五个概念各就各位:Team 负责分解与汇总;两个 Agent 各带自己的 Tool;如果公司资料在私有文档里,再给 Finance Agent 挂上 Knowledge;Memory 全程在后台记录。你写代码时做的,只是把这几个积木按参数传进去。
原始文档把内存管理放在核心概念里讲,值得展开。Agno 的记忆分两个层次:
| 层次 | 存什么 | 生命周期 | 典型用途 |
|---|---|---|---|
| 会话短期记忆 | 本轮对话的上下文 | 单次会话 | 多轮追问不打断语境 |
| 持久化记忆 | 跨会话的历史与状态 | 存入数据库,长期有效 | 记住用户名字、偏好、任务进度 |
文档里的示例很直白:第一次对话告诉智能体"我叫小张",第二次直接问"我叫什么",它答得出来——这不是模型变聪明了,是框架从库里取回了历史消息拼进上下文。个性化推荐、长期任务管理、有记忆的客服,都建立在这个机制上。
💡 关键直觉:记忆不是免费午餐。历史越长,每次请求携带的 token 越多,成本与延迟同步上涨。生产上要配"记忆窗口"或摘要压缩策略,这属于第 3 章性能优化的议题。
除五个主概念外,原始资料反复出现一个能力:结构化输出。智能体的回答可以直接是 JSON 或 YAML,方便程序消费:
import json # 要求智能体以 JSON 描述产品信息 response = agent.run("给出这款产品的名称、价格、卖点,用 JSON 表示") product = json.loads(response.content) # 直接当字典用 print(product["名称"], product["价格"])
这一点在工程上比看起来重要——智能体输出能不能被下游系统无人工干预地解析,决定了它是玩具还是生产组件。
五个概念不是并列摆着的,有明确的依赖方向。Tool 挂在 Agent 身上,Knowledge 与 Memory 也是 Agent 的配置项;Team 由多个 Agent 组成,队长本身也是一个 Agent。也就是说,Agent 是唯一的中心节点,其余四个都是它的"外设"。
这个结构解释了两件事。其一,学习顺序应该围绕 Agent 展开:先会创建 Agent,再逐个加 Tool、Knowledge、Memory,最后学 Team——正是第 2 章的章节顺序。其二,任何能力都是"参数级"的组合,不存在配置文件、脚手架或代码生成步骤,这与其他重型框架形成鲜明对比。
从职责边界看也干净:Tool 解决"实时取数",Knowledge 解决"私有知识",Memory 解决"连续性",Team 解决"分而治之"。四者 answering 四类不同的问题,面试或评审时按这四问展开,基本不会漏。
心智模型建好后,再从代码视角过一遍,概念就落了地。创建智能体时,五个概念分别以参数形式出现:模型是必填的第一参数;工具是一个列表,装着一个个工具实例;知识库是一个对象,内部已经完成了向量化入库;记忆是可选配置,不配则只在会话内有效;团队则是把若干现成的智能体作为成员传入,队长由此获得调度权。
从参数化的形态能读出框架的立场:所有能力都是"挂"上去的,挂与不挂、挂多少,完全由你决定,框架不做任何默认塞料。这与某些框架"默认给你一整套全家桶"的哲学相反。好处是行为透明——你看到的就是你得到的,排查问题时不用先挖出框架藏起来的默认行为;代价是新手要自己理解每个组件该什么时候上场,好在这正是本教程要解决的问题。
口语与框架术语之间也做个对照,读其他资料时不再翻译卡壳:说"让智能体上网查"对应工具;说"让它读我们的文档"对应知识库;说"让它记住用户"对应记忆;说"让几个智能体配合"对应团队。日常讨论用口语,写配置时映射回术语,两套语言自由切换,就算真正入门了。
方向不同。Tool 是智能体"主动伸手"去拿数据:搜索、查股价、调内部接口,发生在推理过程中。Knowledge 是"提前备好的资料库":文档切块向量化存进库里,智能体回答前先检索相关片段。要实时数据用 Tool,要私有知识用 Knowledge,两者可以同时挂。
不需要。每个成员智能体独立配置模型,完全可以一个用 GPT 系做搜索、一个用 Claude 系做分析。这也是模型无关性的实际收益之一:按子任务的难度和成本选模型。
默认有会话级上下文管理;持久化记忆需要显式配置数据库。无状态场景(如一次性批量处理)可以不配持久化,避免无谓的存储开销。
概念清单背下来容易,用对不容易。第一名的误用是"知识库当垃圾场":把公司所有文档不分类地塞进一个库,指望智能体自己大海捞针。正确姿势是按业务域分库、按需挂载,检索的精度来自入库时的克制。第二名的误用是"工具越多越强":给智能体挂满十几把工具,结果选择困难、调用错乱。工具箱要像主厨的刀架,几把锋利的专用刀胜过一抽屉万能神器。第三名的误用是"团队当炫技":两行代码能解决的单智能体任务硬拆成五人团队,调度开销与出错面凭空翻倍。团队是组织手段,不是性能魔法。
这三个误用共同的反面教材心态是"配置越多越专业"。恰恰相反,Agno 的设计哲学里,最智能体是配置最少的那个——每个参数都有存在的理由,没有理由的参数就该删掉。评审同事的智能体设计时,最锋利的一问永远是"这个组件去掉会怎样":答不上来的,就是下一个该去掉的。
一个务实提醒:智能体框架的术语尚未行业标准化,"memory"在不同框架里可能指会话缓冲、长期画像或两者之和;"team"有的框架叫 crew,有的叫 swarm。读其他资料时先对齐术语表再吸收内容,能省掉大量似懂非懂的困惑。Agno 的术语面小,恰好适合作为你的基准坐标系——以它为原点去映射其他框架的词汇,比裸记五套术语体系轻松得多。概念是稳定的,名字是流变的,学习时抓住前者、容忍后者。
概念学习到此收束。下一章开始,这五个名词将逐一变成你键盘下的配置项——概念的宿命就是被用旧,用旧了才算真正学会。
概念模型建立了,下一节看这些概念如何被技术架构支撑——Agno 的"轻"到底是怎么实现的。