200行Python代码从零搭建AI Agent智能体实战教程

项目概述:用最少代码理解Agent核心架构
对于想要入门AI Agent开发的同学来说,最大的困惑往往不是技术本身有多难,而是概念太多、框架太重,不知道从何下手。B站上一个保姆级教程提供了一个极简但完整的思路——仅用200行Python代码,从零搭建一个具备核心能力的AI Agent智能体。

这个项目的设计哲学很明确:先理解概念,再用代码验证。每一节课聚焦一个Agent领域的核心名词,通过实际编码展示其作用,最终将所有模块组装成一个完整的智能体。对于有Python基础的开发者来说,这是一条低门槛、高效率的学习路径。
所谓AI Agent(智能体),是指能够感知环境、自主决策并采取行动以实现特定目标的AI系统。与传统的ChatBot不同,Agent具备自主规划能力——它不仅能回答问题,还能分解任务、调用工具、管理状态,并在多轮交互中持续推进目标。2023年以来,随着GPT-4等大语言模型能力的飞跃,Agent从学术概念迅速转化为工程实践,催生了LangChain、AutoGen、CrewAI等一系列开发框架。然而这些框架的抽象层次较高,初学者往往陷入"会用框架但不理解原理"的困境,这正是200行代码项目试图解决的问题。
Agent五大核心模块逐一拆解
提示词(Prompt):智能体的"性格设定"
提示词是Agent的起点,决定了智能体的行为边界和响应风格。在这个项目中,提示词不仅仅是简单的系统指令,而是作为Agent的"操作系统"来设计——它定义了智能体应该如何思考、如何决策、如何与用户交互。
提示词工程(Prompt Engineering)是2023年以来大模型应用中最核心的技术实践之一。在Agent场景中,提示词的设计远比普通ChatBot复杂——它需要包含角色定义、行为约束、输出格式规范、工具调用指令等多层结构。OpenAI的系统提示词(System Prompt)机制为此提供了技术基础,允许开发者在对话开始前注入持久性的行为指令。业界常用的提示词设计模式包括:ReAct(Reasoning + Acting)模式让Agent在思考和行动间交替,其核心思想是让模型先输出"Thought"(思考当前应该做什么),再输出"Action"(具体执行什么操作),最后根据"Observation"(执行结果)决定下一步;Few-shot模式通过示例引导Agent的输出格式,通常在提示词中给出2-5个输入输出样例;Chain-of-Thought模式则强制Agent展示推理过程,通过"让我们一步步思考"等触发语句激活模型的逐步推理能力。这些模式的本质都是通过精心设计的文本指令,将大语言模型从被动的文本补全工具转化为主动的任务执行者。在实际的Agent系统中,一个完整的System Prompt可能长达数千Token,包含任务描述、可用工具列表、输出格式要求、错误处理策略等多个部分。

记忆功能(Memory):让对话具备上下文
没有记忆的Agent本质上只是一个问答机器。记忆模块让智能体能够追踪对话历史,理解上下文关系,从而做出更连贯、更智能的响应。在200行代码的限制下,实现一个基础但有效的记忆机制,是理解Agent与普通ChatBot区别的关键所在。
在认知科学和AI研究中,Agent的记忆系统通常被分为三个层次:短期记忆(Short-term Memory)、长期记忆(Long-term Memory)和工作记忆(Working Memory)。短期记忆对应当前对话的上下文窗口,受限于大模型的Token长度限制(如GPT-4的128K Token、Claude的200K Token);长期记忆则需要外部存储支持,通常通过向量数据库(如Pinecone、Milvus、Chroma)将历史信息编码为高维向量进行持久化存储,当需要回忆时通过语义相似度检索相关记忆片段;工作记忆是Agent当前正在处理的信息子集,类似于人类的注意力焦点,它决定了Agent在某一时刻"关注"哪些信息来做决策。
在实际工程中,记忆管理还涉及多个关键技术挑战。信息压缩(Summarization)通过让模型对长对话进行摘要来节省Token空间;遗忘机制(Forgetting)模拟人类记忆的衰减特性,根据时间或重要性对记忆进行优先级排序;检索策略(Retrieval)决定了在什么时机、用什么方式从长期记忆中提取信息。在200行代码的极简实现中,通常采用最直接的方式——维护一个消息列表(Message List),将所有对话历史按时间顺序存储,并在每次调用模型时将其作为上下文传入。虽然简单,但这已经足以展示记忆机制的核心价值:让Agent的回答具备连贯性和个性化。
工具调用(Tool Use):连接真实世界的桥梁
工具调用是Agent区别于纯语言模型的核心能力。通过定义可调用的外部工具(如搜索引擎、计算器、API接口等),Agent能够突破语言模型的知识边界,执行实际操作。这个模块的实现让我们理解了Function Calling的底层逻辑。
Function Calling(函数调用)是OpenAI在2023年6月推出的核心API能力,它解决了一个根本性问题:如何让语言模型可靠地生成结构化的函数调用请求,而不是自由格式的文本。其工作原理分为四步:第一步,开发者预先定义一组函数的JSON Schema描述(包含函数名、参数类型、参数说明、必填/选填标记);第二步,将这些函数描述随用户消息一起发送给模型,模型在理解用户意图后判断是否需要调用某个函数;第三步,如果模型决定调用函数,它会输出一个符合Schema的JSON对象作为函数参数(而非直接执行函数——模型本身没有执行代码的能力);第四步,开发者在本地环境中解析这个JSON、执行对应函数、获取返回结果,再将结果以特定角色(tool/function)发回给模型进行最终回答。
这个机制的革命性在于它让LLM从纯文本生成器变成了可以操作外部系统的控制中心。模型不需要真正"理解"代码执行,它只需要准确地表达"我想调用什么函数、传什么参数"这个意图。目前主流模型(GPT-4、Claude、Gemini、通义千问)均原生支持此能力,开源模型社区(如Llama、Mistral)也通过专门的微调数据集实现了类似效果。在Agent系统中,工具调用通常与ReAct循环结合:Agent思考→决定调用工具→获取结果→继续思考→决定是否需要更多工具调用→最终给出答案。
RAG检索增强生成:私有知识库的接入
RAG(Retrieval-Augmented Generation)让Agent能够基于特定知识库进行回答,而不仅仅依赖模型的预训练知识。在实际应用中,这意味着你可以让Agent成为某个领域的专家,基于你提供的文档和数据进行精准回答。
RAG技术由Meta AI研究团队在2020年的论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》中首次提出,如今已成为企业级AI应用的标准架构。其核心流程分为三步:
索引(Indexing):将文档切分为语义完整的文本块(Chunk),切分策略直接影响检索质量——过大的Chunk会引入噪声,过小的Chunk会丢失上下文。常见的切分方法包括固定长度切分(如512 Token一块)、基于段落/标题的语义切分、以及递归切分等。切分后的文本通过嵌入模型(如OpenAI的text-embedding-3-small、开源的BGE模型)转化为高维向量(通常是768或1536维),并存入向量数据库。
检索(Retrieval):将用户查询同样转化为向量,通过余弦相似度或ANN(Approximate Nearest Neighbor,近似最近邻)算法在向量空间中找到最相关的文本块。ANN算法(如HNSW、IVF)通过牺牲少量精度来换取数量级的检索速度提升,使得在百万级文档中的检索可以在毫秒级完成。
生成(Generation):将检索到的Top-K文本块作为上下文注入提示词(通常放在用户问题之前),让大模型基于这些信息生成回答。模型被指示"仅基于提供的上下文回答,如果上下文中没有相关信息则说明无法回答"。
相比纯模型推理,RAG的优势在于知识可更新(修改文档即可)、可溯源(可以标注答案来自哪个文档)、可控制(限定知识范围),有效避免了模型幻觉问题。当前RAG的演进方向包括多模态RAG(支持图片、表格检索)、Graph RAG(基于知识图谱进行结构化推理,微软2024年开源了相关实现)和Agentic RAG(Agent自主决策何时检索、检索什么、如何组合多次检索结果)。
技能(Skill):可组合的能力扩展单元

技能模块是近期Agent开发中的热门概念。与工具调用不同,Skill更强调可组合、可复用的能力单元。一个Skill可以包含多步操作逻辑,类似于给Agent安装"插件",让它能够完成更复杂的任务流程。
Skill概念最早在Microsoft的Semantic Kernel框架中被系统化定义,与LangChain中的Chain(链式调用)、AutoGen中的Agent能力定义有相似之处,但更强调模块化和可组合性。如果说Tool是一个原子操作(如"搜索网页"、"发送邮件"),那么Skill则是一个完整的能力模块,它内部可能编排了多个Tool的调用顺序、包含条件判断逻辑、处理异常情况,并对最终输出进行格式化。
例如一个"竞品分析Skill"可能内部串联了以下步骤:接收产品名称→调用搜索工具获取竞品信息→调用网页抓取工具获取详细数据→使用LLM进行对比分析→生成结构化报告。这整个流程被封装为一个Skill,Agent只需要"调用竞品分析Skill"即可,无需关心内部实现细节。
这种设计理念与软件工程中的微服务架构高度类似——通过标准化接口(输入Schema、输出Schema、能力描述)将复杂能力拆分为可独立开发、测试和部署的单元。2024年以来,OpenAI的GPTs(自定义GPT应用)、字节跳动的Coze平台、百度的AppBuilder都采用了类似的插件化能力扩展机制。Skill正在成为Agent生态中的通用能力交换单元——未来开发者可以像安装npm包一样为Agent安装各种Skill,形成丰富的能力市场。
渐进式开发:从简单到完整的搭建过程

这个项目采用渐进式开发策略,每一步都在前一步的基础上添加新模块。这种方式的好处在于:
- 每一步都可运行:不需要等到所有代码写完才能看到效果
- 清晰的模块边界:每个功能模块的职责和接口一目了然
- 便于调试和理解:出了问题能快速定位到具体模块
这种渐进式搭建方法在软件工程中被称为增量式开发(Incremental Development),它与敏捷开发中的迭代思想一脉相承。对于Agent这种多模块协作的系统来说,渐进式开发尤其重要——因为每个模块的加入都会改变系统的整体行为。例如,当你先实现了基础的Prompt+LLM调用后,加入Memory模块会让你直观感受到"有记忆"和"无记忆"的巨大差异;再加入Tool Use后,你会看到Agent从"只能说"变成"能做事"的质变。这种逐步叠加的体验,比一次性阅读完整代码要有效得多。
学习建议与适用人群
这个教程适合以下开发者:
- 有Python基础但对AI Agent概念模糊的入门者
- 用过LangChain等框架但想理解底层原理的中级开发者
- 准备转型大模型方向需要快速建立知识体系的工程师
200行代码虽然无法覆盖生产级Agent的所有细节(如错误处理、并发控制、安全机制、Token成本优化、多Agent协作等),但它提供了一个清晰的心智模型。理解了这个骨架之后,再去学习LangChain、AutoGen、CrewAI等成熟框架,会有事半功倍的效果——因为你会发现这些框架本质上都是在这五个核心模块的基础上进行工程化封装和扩展。
对于想要进一步深入的学习者,建议的进阶路径是:先在200行代码基础上自行扩展功能(如增加更多工具、实现多轮规划),然后选择一个主流框架(LangChain适合快速原型、AutoGen适合多Agent场景、CrewAI适合角色协作)进行系统学习,最终结合具体业务场景开发生产级Agent应用。
总结
从提示词到记忆、从工具调用到RAG、再到Skill技能扩展,这五个模块构成了当前AI Agent的核心架构。用200行Python代码将它们串联起来,不仅是一次编程练习,更是对Agent开发范式的系统性认知构建。掌握这套从零搭建智能体的开发思路,将为后续深入学习复杂Agent框架打下坚实基础。
值得注意的是,Agent技术正处于快速演进期。2024年以来,多Agent协作(Multi-Agent)、Agent自主编程(Code Agent)、具身智能(Embodied Agent)等方向持续突破,但无论技术如何演进,Prompt、Memory、Tool、RAG、Skill这五大基础模块的设计思想始终是理解和构建任何Agent系统的基石。
核心要点
相关推荐

OneCLI:开源沙箱化AI Agent框架,解决团队协作安全难题
OneCLI是YC S26批次的开源沙箱化AI Agent框架,专为团队设计。本文深入解析其沙箱隔离机制、团队治理能力及企业级AI Agent安全落地的核心价值。

LLM时代的可扩展软件:架构范式的重构
探讨大语言模型如何重新定义软件可扩展性:从自然语言接口到智能体驱动的动态编排,解析面向LLM设计软件的关键原则、工具接口设计、MCP协议及未来架构挑战。

AI Agent入门第一课:如何调用大模型
AI Agent开发入门教程,从零讲解如何通过云平台调用大模型API。涵盖API-Key获取、请求参数配置、Messages消息组织到响应解析的完整流程,帮助初学者快速掌握Agent开发的核心基础。