从零开始构建一个简单的 AI Agent 框架:完整新手教程

Agno 多 Agent 协作框架 - 手把手从零开始教程 本教程详细介绍了如何使用Agno框架构建多Agent协作系统,从创建基础问答Agent到组建专业团队。内容分为四个步骤:首先创建配置模型和简单Agent;然后为Agent添加搜索工具;接着创建多个专业Agent(网络搜索专家、新闻分析师、技术顾问);最后组建Team实现Agent协作。每个步骤都提供完整代码示例、运行方法和预期输出,帮助开发者理解Agno框架的工作原理和团队协作机制。通过本教程,读者可以掌握构建具有专业分工和协作能力的多Agent系统技能。 阅读详情

本教程将带你从零开始,一步步构建一个具备工具调用能力的简单 Agent 框架。即使你是编程新手,也能跟着教程完成并能成功运行代码。


📚 目录

  • 什么是 Agent?
  • 准备工作
  • 第一步:构建"大脑"- 统一的大模型适配层
  • 第二步:实现基础 Agent - 对话记忆系统
  • 第三步:装备工具 - 让 Agent 能"做事"
  • 第四步:消息标准化 - 统一通信格式
  • 第五步:整合一切 - 完整的 ToolAgent
  • 运行与测试
  • 常见问题排查
  • 总结与进阶

什么是 Agent?

🤖 概念理解

Agent(智能体) = 大模型(大脑)+ 记忆系统 + 工具调用能力 + 任务规划能力

比喻:

  • 大模型

    = 大脑(思考、理解、决策)

  • 记忆系统

    = 记忆(记住对话历史)

  • 工具调用

    = 手脚(执行实际任务,如搜索、计算)

  • 任务规划

    = 规划能力(分解复杂任务)

🎯 我们的实现目标

构建一个简单的 Agent,具备以下能力:

  1. ✅ 与用户对话并保持上下文记忆
  2. ✅ 调用 Google 搜索工具获取实时信息
  3. ✅ 自动决定何时调用工具
  4. ✅ 综合工具结果生成最终答案

准备工作

1 创建项目目录

# 在你的桌面创建项目目录cd ~/Desktopmkdir agentcd agent

2 创建依赖管理文件

创建 requirements.txt 文件:

openai>=1.0.0python-dotenv>=1.0.0google-search-results>=2.4.2

3 安装依赖

pip3 install -r requirements.txt

4 配置环境变量

创建 .env 文件(不要提交到 Git):

# 方案1:使用 DeepSeek(推荐,有免费额度)API_KEY=sk-your-deepseek-api-keyBASE_URL=xxxxxMODEL_NAME=deepseek-chat# 方案2:使用 OpenAI(需要 API Key)# API_KEY=sk-your-openai-api-key# BASE_URL=xxxxx# MODEL_NAME=gpt-3.5-turbo# Google 搜索 API(用于工具功能)SERPAPI_API_KEY=your-serpapi-key

第一步:构建"大脑"- 统一的大模型适配层

🎯 目标

创建一个统一的大模型调用接口,屏蔽不同厂商的 API 差异。

📝 创建文件:llm.py

# llm.pyfrom openai import OpenAIimport osfrom dotenv import load_dotenvload_dotenv()  # 加载环境变量class LLMClient:    def __init__(self):        # 通过环境变量配置,轻松切换不同厂商        self.client = OpenAI(            api_key=os.getenv("API_KEY"),            base_url=os.getenv("BASE_URL")         )        self.model = os.getenv("MODEL_NAME", "gpt-4o")    def chat(self, messages, tools=None):        """        统一的对话入口,屏蔽底层差异        参数:            messages: 对话历史列表            tools: 工具定义列表(可选)        返回:            OpenAI API 的响应对象        """        params = {            "model": self.model,            "messages": messages,        }        if tools:            params["tools"] = tools        # 这里为了演示简洁,暂不开启流式输出        return self.client.chat.completions.create(**params)

💡 代码解释

核心设计思想:

1. 环境变量配置

api_key=os.getenv("API_KEY")base_url=os.getenv("BASE_URL")

• 将敏感信息(API Key)放在 .env 文件中
• 避免硬编码在代码里,提高安全性

2. 统一接口

def chat(self, messages, tools=None):    return self.client.chat.completions.create(**params)

• 封装 OpenAI API 的调用细节
• 提供简单易用的 chat() 方法
• 支持 tools 参数,让 Agent 能调用工具

3. 易于切换厂商

• 只需修改 .env 中的 BASE_URL 和 MODEL_NAME
• 代码完全不需要改动

🔍 为什么需要这个适配层?

❌ 没有适配层

# 硬编码,不安全,难以维护import openairesponse = openai.ChatCompletion.create(    model="gpt-4o",    messages=[...],    api_key="sk-xxx"  # 暴露在代码中)

✅ 使用适配层

# 简洁、安全、易切换from llm import LLMClientllm = LLMClient()response = llm.chat([{"role": "user", "content": "你好"}])

第二步:实现基础 Agent - 对话记忆系统

🎯 目标

创建一个能记住对话历史的 Agent,实现多轮对话。

📝 创建文件:agent.py

# agent.py (基础版)from llm import LLMClientclass SimpleAgent:    def __init__(self):        self.llm = LLMClient()        # 初始化记忆,设定基础背景        self.messages = [{"role": "system", "content": "你是一个乐于助人的AI助手。"}]    def chat(self, user_input):        # 1. 接收:将用户输入存入记忆        self.messages.append({"role": "user", "content": user_input})        # 2. 思考:带着所有历史记录去请求 LLM        response = self.llm.chat(self.messages)        content = response.choices[0].message.content        # 3. 闭环:将 AI 的回答也存入记忆        self.messages.append({"role": "assistant", "content": content})        return content

💡 代码解释

核心概念:消息角色

# system: 设定 AI 的身份和行为规则{"role": "system", "content": "你是一个乐于助人的AI助手。"}# user: 用户的输入{"role": "user", "content": "我叫小明"}# assistant: AI 的回答{"role": "assistant", "content": "你好小明,很高兴认识你!"}

工作流程(三步闭环):

📥 用户输入 → 💾 存入记忆 → 🧠 调用 LLM(带上完整历史)→ 📤 获取回答 → 💾 存入记忆 → ✅ 返回给用户

为什么需要记忆?

  • 大模型本身是无状态的,每次调用都是独立的
  • 通过传递历史消息,让 AI 理解上下文
  • 实现多轮对话和连贯性

🧪 测试基础 Agent

创建测试文件 test_agent.py:

# test_agent.pyfrom agent import SimpleAgentdef main():    agent = SimpleAgent()    print("=== 简单的AI助手 ===")    print("输入'quit'退出\n")    while True:        user_input = input("你: ")        if user_input.lower() == 'quit':            break        response = agent.chat(user_input)        print(f"Agent: {response}\n")if __name__ == "__main__":    main()

运行测试:

python3 test_agent.py

示例对话:

=== 简单的AI助手 === 输入'quit'退出  你: 我叫susie Agent: 你好susie!我是SimpleAgent,有什么我可以帮助你的吗?  你: 你记得我叫什么吗? Agent: 当然记得,你叫susie!  你: quit

第三步:装备工具 - 让 Agent 能"做事"

🎯 目标

实现工具注册和调用系统,让 Agent 能执行实际任务(如 Google 搜索)。

📝 创建文件:tools.py

# tools.pyimport inspectimport jsonimport osfrom functools import wrapsfrom google_search_results import GoogleSearchclass ToolRegistry:    """工具注册中心:管理所有可用工具"""    def __init__(self):        self.tools = {}    # 存函数实体        self.schemas = []  # 存函数说明书(JSON Schema)    def register(self, func):        """        魔法装饰器:自动将 Python 函数转换为 OpenAI Tool Schema        """        name = func.__name__  # 函数名        doc = func.__doc__ or "No description"  # 函数文档字符串        # 解析函数签名        sig = inspect.signature(func)        params = {"type": "object", "properties": {}, "required": []}        # 遍历参数,生成 JSON Schema        for param_name, param in sig.parameters.items():            params["properties"][param_name] = {                "type": "string",                 "description": f"参数 {param_name}"            }            if param.default == inspect.Parameter.empty:                params["required"].append(param_name)        # 1. 生成说明书(给 LLM 看)        self.schemas.append({            "type": "function",            "function": {                "name": name,                 "description": doc,                 "parameters": params            }        })        # 2. 存储函数(实际执行)        self.tools[name] = func        @wraps(func)        def wrapper(*args, **kwargs):             return func(*args, **kwargs)        return wrapper    def execute(self, name, args_json):        """执行器:根据 LLM 的指令运行代码"""        if name in self.tools:            try:                args = json.loads(args_json)  # 将 JSON 字符串转为字典                print(f"⚙️ [System] 正在调用工具: {name} 参数: {args}")                return self.tools[name](**args)  # 执行函数,解包参数            except Exception as e:                return f"Error: {str(e)}"        return "Tool not found"# 创建全局注册表registry = ToolRegistry()# ========== 定义工具 ==========@registry.registerdef google_search(query: str):    """    当用户询问当前事件、新闻、天气或不知道的信息时,使用此工具进行搜索。    """    try:        search = GoogleSearch({            "q": query,             "api_key": os.getenv("SERPAPI_API_KEY"),        })        # 数据清洗:只提取前两条结果的标题和摘要,节省 Token        results = search.get_dict().get("organic_results", [])[:2]        return "\n".join([            f"- {r.get('title')}: {r.get('snippet')}"             for r in results        ])    except Exception as e:        return f"搜索失败: {e}"

💡 代码解释

核心设计:装饰器模式

@registry.registerdef google_search(query: str):    """函数描述"""    pass

装饰器做了什么?

1. 提取函数信息

  • 名称:google_search
  • 描述:函数的文档字符串
  • 参数:从类型注解 query: str 中提取

2. 生成 JSON Schema(给 LLM 看的"说明书")

{   "type": "function",   "function": {     "name": "google_search",     "description": "当用户询问当前事件、新闻、天气或不知道的信息时,使用此工具进行搜索。",     "parameters": {       "type": "object",       "properties": {         "query": {           "type": "string",           "description": "参数 query"         }       },       "required": ["query"]     }   } }

3. 存储函数(实际执行用的)

self.tools['google_search'] = google_search  # 存储真实的 Python 函数

为什么用装饰器?

没有装饰器时,需要手动写一遍函数,再写一遍 JSON Schema,容易出错。
使用装饰器后,只需写一次函数,自动生成说明书。


第四步:消息标准化 - 统一通信格式

🎯 目标

创建消息辅助函数,确保消息格式标准化,避免手动构造字典出错。

📝 创建文件:message.py

# message.pydef user_msg(content):    """用户消息"""    return {"role": "user", "content": content}def assistant_msg(content=None, tool_calls=None):    """    助手消息    - content: 文本回复(可选)    - tool_calls: 工具调用请求(可选)    """    msg = {"role": "assistant"}    if content:         msg["content"] = content    if tool_calls:         msg["tool_calls"] = tool_calls    return msgdef tool_msg(tool_call_id, content):    """    工具消息    - tool_call_id: 工具调用 ID(关键!)    - content: 工具返回结果    """    return {        "role": "tool",        "tool_call_id": tool_call_id,        "content": str(content)    }

💡 代码解释

为什么需要标准化?

❌ 手动构造消息

# 容易出错messages.append({"role": "user", "content": "你好"})messages.append({"rol": "assistant", "content": "你好"})  # 拼写错误!messages.append({"role": "tool", "content": "结果"})  # 缺少 tool_call_id!

✅ 使用辅助函数

# 标准化,不易出错messages.append(user_msg("你好"))messages.append(assistant_msg(content="你好"))messages.append(tool_msg("call_123", "搜索结果"))

核心概念:tool_call_id(快递单号)

LLM: “帮我搜索北京天气” → 生成单号 call_abc123
↓
调用搜索工具
↓
工具返回结果,附上单号 call_abc123
↓
LLM 看到单号,知道这是北京天气的搜索结果

消息类型总结:

函数role必需字段可选字段用途
user_msg()“user”content-用户输入
assistant_msg()“assistant”-content, tool_callsLLM 的回复(文本或工具调用)
tool_msg()“tool”tool_call_id, content-工具执行结果

第五步:整合一切 - 完整的 ToolAgent

🎯 目标

将前面所有组件整合,实现具备工具调用能力的完整 Agent。

📝 创建文件:tool_agent.py

# tool_agent.pyimport jsonfrom llm import LLMClientfrom tools import registry  # 导入工具注册表from message import user_msg, assistant_msg, tool_msgclass ToolAgent:    def __init__(self):        self.llm = LLMClient()  # 大脑        self.tools = registry   # 工具箱        # self.messages 记忆系统        self.messages = [{            "role": "system",             "content": "你是一个全能助手,可以调用工具获取实时信息。如果觉得已经足够回复用户了,就不用再调用工具了。"        }]    def chat(self, user_input):        """        支持工具调用的 ReAct 循环入口        注意:为了演示逻辑清晰,这里暂时使用非流式        """        # 1. 存入用户问题        self.messages.append(user_msg(user_input))        # 设置最大循环次数,防止 Agent 陷入死循环        max_turns = 5        turn_count = 0        while turn_count < max_turns:            turn_count += 1            # 2. 调用 LLM(带上 tools 定义)            print(f"\n🤖 [Thinking] 第 {turn_count} 轮思考...")            response = self.llm.chat(                messages=self.messages,                tools=self.tools.schemas  # 关键:把工具说明书发给 LLM            )            response_msg = response.choices[0].message            # 3. 判断 LLM 的意图            tool_calls = response_msg.tool_calls            if tool_calls:                # === 情况 A: LLM 想要调用工具 ===                # A1. 先把 LLM 的"调用指令"存入记忆(这步不能省!)                ai_msg_dict = assistant_msg(                    content=response_msg.content,                    tool_calls=tool_calls                )                self.messages.append(ai_msg_dict)                # A2. 遍历所有工具调用请求(LLM 可能一次想调多个工具)                for tool_call in tool_calls:                    func_name = tool_call.function.name                    func_args = tool_call.function.arguments                    call_id = tool_call.id                    print(f"✋ [Action] 正在调用工具: {func_name} ...")                    # A3. 执行真正的 Python 代码                    tool_result = self.tools.execute(func_name, func_args)                    # A4. 构建 Tool Message(观察结果)                    # 关键:一定要带上 call_id,否则 LLM 不认账                    tm = tool_msg(tool_call_id=call_id, content=tool_result)                    self.messages.append(tm)                    print(f"👀 [Observation] 工具返回: {tool_result[:50]}...")                # A5. 循环继续 -> 回到 while 开头,把结果发给 LLM            else:                # === 情况 B: LLM 没调工具,直接回复 ===                content = response_msg.content                self.messages.append(assistant_msg(content=content))                return content        return "❌ 任务太复杂,超过最大循环次数。"# --- 演示代码 ---if __name__ == "__main__":    # 确保 .env 里配置了 SERPAPI_API_KEY    agent = ToolAgent()    while True:        try:            user_input = input("\n👤 你:").strip()            # 检查用户输入            if user_input.lower() in ['exit', 'q', '退出']:                print("\n👏再见!")                break            # 如果用户输入为空,跳过            if not user_input:                continue            final_answer = agent.chat(user_input)            print("\n" + "=" * 30)            print(f"🤖 Final Answer:\n{final_answer}")            print("=" * 30)        except KeyboardInterrupt:            print("\n\n 🙏 检测到中断,退出程序")            break        except Exception as e:            print(f"\n❌ 发生错误: {e}")            import traceback            traceback.print_exc()  # 打印详细的错误信息

💡 代码解释

核心设计:ReAct 模式

ReAct = Reasoning + Acting(推理 + 行动)

用户:今天北京天气怎么样?
↓
LLM 思考:我需要查询天气信息
↓
LLM 行动:调用搜索工具
↓
观察结果:北京今天晴天,25度
↓
LLM 思考:现在我有了信息,可以回答用户了
↓
LLM 行动:生成最终回复

为什么需要循环?

一次对话可能需要多次工具调用:

用户:帮我规划北京一日游
↓
第1轮:LLM 决定先了解北京天气 → 调用搜索工具
↓
第2轮:LLM 得到天气信息,继续思考需要知道景点 → 再次调用搜索
↓
第3轮:LLM 得到景点信息,综合所有信息 → 生成完整旅游规划

关键设计点:

1. 存储调用指令(A1)

  • 必须将 LLM 的工具调用请求存入记忆
  • 否则下次调用时 LLM 会忘记

2. tool_call_id(A4)

  • 必须带上调用 ID,让 LLM 知道结果对应哪个工具

3. 防止死循环

  • 最多 5 轮工具调用,避免无限循环

运行与测试

🚀 运行 ToolAgent

python3 tool_agent.py

📝 示例对话

场景1:询问天气(需要调用工具)

👤 你:今天北京天气怎么样?  🤖 [Thinking] 第 1 轮思考... ✋ [Action] 正在调用工具: google_search ... ⚙️ [System] 正在调用工具: google_search 参数: {'query': '北京天气'} 👀 [Observation] 工具返回: - 北京今天天气预报: 晴天,气温25°C...  🤖 [Thinking] 第 2 轮思考...  ============================== 🤖 Final Answer: 根据搜索结果,北京今天是个好天气!晴天,气温25°C,非常适合外出活动。 ==============================

场景2:简单对话(不需要工具)

👤 你:你好  🤖 [Thinking] 第 1 轮思考...  ============================== 🤖 Final Answer: 你好!我是全能助手,有什么可以帮助你的吗? ==============================

场景3:退出

👤 你:q  👏再见!

或使用 Ctrl+C(Mac 上是 Cmd+C)

👤 你:^C   🙏 检测到中断,退出程序

常见问题排查

❌ 问题1:ModuleNotFoundError

错误信息:

ModuleNotFoundError: No module named 'openai'

解决方法:

pip3 install -r requirements.txt

❌ 问题2:API Key 错误

错误信息:

Error code: 401 - Unauthorized

解决方法:

  1. 检查 .env 文件中的 API_KEY 是否正确
  2. 确认没有多余空格或引号
  3. 重启脚本

❌ 问题3:余额不足

错误信息:

Error code: 402 - Insufficient Balance

解决方法:

  1. 充值 DeepSeek 账户
  2. 或切换到其他 API(如 Ollama 本地模型)

❌ 问题4:搜索失败

错误信息:

搜索失败: Invalid API Key

解决方法:

  1. 在 .env 文件中配置 SERPAPI_API_KEY
  2. 访问 SerpAPI 官网注册获取免费 Key

❌ 问题5:无法退出

现象: 输入 q 后程序不退出

解决方法:

  1. 检查代码中是否有 break 语句
  2. 确保保存了文件并重启脚本
  3. 使用 Ctrl+C 强制退出

总结与进阶

🎯 我们实现了什么?

  1. ✅ 统一的大模型适配层 - 轻松切换不同厂商
  2. ✅ 对话记忆系统 - 实现多轮对话
  3. ✅ 工具注册和执行 - 让 Agent 能"做事"
  4. ✅ 消息标准化 - 确保通信规范
  5. ✅ ReAct 循环 - 推理+行动的智能决策

🚀 可以继续扩展的方向

1. 添加更多工具

@registry.registerdef get_weather(city: str):    """获取天气信息"""    pass@registry.registerdef calculate(expression: str):    """计算数学表达式"""    pass

2. 记忆优化

  • 实现记忆窗口(限制历史长度)
  • 重要信息提取和总结
  • 长期记忆存储(数据库)

3. 任务规划

  • 分解复杂任务
  • 多步骤执行
  • 目标导向

4. 流式输出

  • 实时显示 LLM 回复
  • 提升用户体验

5. 多模态能力

  • 图像处理
  • 语音交互
  • 文件操作

🎉 恭喜你!

如果你跟着这篇教程一步步完成了所有步骤,恭喜你已经成功构建了自己的第一个 AI Agent 框架!

这是一个简单但完整的实现,涵盖了 Agent 的核心概念。你可以基于这个框架继续探索和扩展,构建更复杂的智能应用。

有什么问题或想法?欢迎继续交流!😊

想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2026 年 AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享!

👇👇扫码免费领取全部内容👇👇

​

一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势

想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI:

1. 100+本大模型方向电子书

在这里插入图片描述

2. 26 份行业研究报告:覆盖多领域实践与趋势

报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:

  • 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
  • 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
  • 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
  • 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。

3. 600+套技术大会 PPT:听行业大咖讲实战

PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:

在这里插入图片描述

  • 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
  • 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
  • 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
  • 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。

二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走

想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!

1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位

面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析:

2. 102 道 AI 大模型真题:直击大模型核心考点

针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:

3. 97 道 LLMs 真题:聚焦大型语言模型高频问题

专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:


三、路线必明: AI 大模型学习路线图,1 张图理清核心内容

刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!

在这里插入图片描述

路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。

img

L1阶段:启航篇丨极速破界AI新时代

L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

img

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

img

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

img

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

img

L5阶段:专题集丨特训篇 【录播课】

img
四、资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

​

2026 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!

如何从零开始实现一个 AI Agent 框架 本文介绍了一个基于大语言模型(LLM)的AI Agent框架实现方案。该框架采用模块化设计,包含感知、记忆、规划、工具和行动等核心组件。文章详细阐述了整体架构设计,包括Agent主控制器、Planner决策模块、Memory记忆系统、Tool工具集和Environment环境交互层。通过抽象基类定义了各模块接口,并实现了基于OpenAI的LLMPlanner决策模块、SimpleMemory短期记忆系统以及示例CalculatorTool计算工具。该框架遵循ReAct范式,支持Agent循环进行" 阅读详情

相关推荐

基于阻抗控制的工业机器人轨迹跟踪系统 Simulink/Simscape 仿真

  本文是对文献 [1] 的复现。 关于阻抗控制   阻抗控制的提出可以追溯到 1984 年,Neville Hogan 在 American Control Conference 发表的 Impedance Control:An Approach to Manipulation ,次年,Hogan N. 又在 Journal of Dynamic Systems Measurement and Control-transactions of The Asme 发表了阻抗控制经典三部曲 —— Imped.

-贝塔- 的博客 2万+

从 0 到 1 搭建一个 AI Agent 项目:架构设计与实战指南

它是什么类型的助手?它需要完成什么任务?哪些事情不能做,哪些情况必须追问或拒绝?最终结果应该是什么格式?你是企业知识库问答助手。目标:根据用户问题检索知识库,并基于检索结果回答。规则:1. 涉及内部资料的问题,优先调用 search_docs 工具。2. 只能根据检索到的内容回答,不得编造事实。3. 如果检索结果不足,明确告知用户信息不足。4. 回答时尽可能列出资料标题或来源。5. 不得执行未授权的数据修改操作。输出:先给出结论,再给出依据和必要的补充说明。Prompt。

篮球界最会写bug的人;程序猿中打球最菜的人。 240

智能车竞赛走马观碑组:如何高效识别目标板并优化绕行策略(附实战代码)

本文深入探讨了智能车竞赛走马观碑组中,如何构建从图像识别到路径决策的全栈优化方案。针对目标板识别与绕行策略的核心难点,文章详细解析了基于MobileNetV2的高效识别流水线、结合预瞄点与纯追踪算法的平滑路径规划,以及横向与纵向协同控制策略,并提供了实战代码与调试指南,旨在全面提升小车的比赛表现。

o5p6q的博客 884

Agent入门到精通:从0开始搭建你的第一个Agent,这篇万字长文就够了!

有小伙伴反馈了迫切的agent构建的诉求,今天和大家一起来动手搭建一个最简单的agent。 我们介绍过什么是Agent,并对一些基本理论框架进行了介绍,了解相关基础会有助于更好的理解,感兴趣的小伙伴可以去看前文,但并非必要条件,直接看本文也可以,前文不影响今天的实践操作。

m0_59235945的博客 9837

STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程

STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法:    2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。    2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出

overflyme的博客 1万+

19-5 ACC 自适应巡航控制系统需求

本专题由深圳季连AIgraphX李博及团队出品,主要讲解ACC自适应巡航控制系统的开发与仿真测试。具体说来,包括ACC标准/法规分析、系统需求、系统架构、软件需求、软件架构、算法建模、验证场景分析、仿真实验搭建等内容。 本节主要讲ACC系统需求。

AIgraphX 1089

手把手教你从零搭建Agent框架

无论是环境的反馈,还是人类的指令,Agent 都需要完成一个对接收到的信息进行“理解”,并依据得到的理解进行意图识别,转化为下一步任务的过程。真正让人惊讶的是大模型在推理上的能力涌现。推理,一般指根据几个已知的前提推导得出新的结论的过程,区别于理解,推理一般是一个“多步骤”的过程,推理的过程可以形成非常必要的“中间概念”,这些中间概念将辅助复杂问题的求解。不同的智能体有不同的推理提示风格、不同的输入方式以及不同的解析输出方式,依赖于用户对应用的自定义,说白了就是对大模型进行一层封装更方便管理。

ytt0523_com的博客 5778

软件工程案例教程·韩万江【课后习题】

!!!!

weixin_57858263的博客 6419

10 分钟搭建专属 AI Agent:从零到落地的全流程实操方法论

摘要:本文提出一个零基础可落地的AIAgent搭建框架,强调聚焦具体重复性工作而非通用智能。通过9个步骤:1)锁定标准化任务;2)拆解SOP流程;3)选择匹配平台;4)定义输入输出规范;5)编写精准系统提示词;6)构建三层记忆体系;7)设置安全护栏;8)封装极简交互界面;9)真实场景测试迭代。核心观点是AIAgent的价值在于解决明确、重复的工作流,而非追求万能AI。普通人无需编码基础,只需清晰拆解工作流程,即可在10分钟内搭建出可节省数百小时劳动的自动化助手。

释迦呼呼的博客 6606

STM32F407与AD7766实战:如何用SPI+DMA实现高速ADC数据采集(附完整代码)

本文详细介绍了如何利用STM32F407的SPI接口与DMA控制器,高效稳定地驱动24位高精度ADC芯片AD7766,实现高速连续数据采集。通过对比传统中断方式的瓶颈,阐述了SPI+DMA方案如何大幅降低CPU负载,并提供了从硬件设计、CubeMX配置到核心驱动代码的完整实战指南,帮助工程师解决高速ADC数据采集中的性能难题。

weixin_29281941的博客 188

SerDes系列之码间干扰的概念

码间干扰出现在传输介质或者元器件的带宽小于所发送的信号带宽时,从时域角度来看,传输路径的带宽限制会使发送信号的上升沿的变化速率变慢,有可能对信号造成高频衰减,并影响到实际数字逻辑电平的转换时序。

一只豌豆象的博客 3467

从零开始:亲手搭建你的第一个AI_Agent(简单上手,先跑起来!)

在文件中定义 Agent 可以使用的工具函数。每个函数都需要有清晰的文档字符串(docstring),描述其功能和参数,因为这将用于自动生成工具的 JSON Schema。​# 获取当前日期和时间defget_current_datetime() -> str:"""获取当前日期和时间。:return: 当前日期和时间的字符串表示。"""​"""计算两个浮点数的和。:param a: 第一个浮点数。:param b: 第二个浮点数。:return: 两个浮点数的和。​"""

HUANGXIN9898的博客 2334

SAP Retail 补货里的 Requirement Groups,站点和商品太多时,主数据维护如何做减法

SAP Retail补货主数据设计中,Requirement Groups(需求组)是常被低估但至关重要的分类机制。它通过将具有相同补货需求的接收方(如门店)按商品分类(Merchandise Category)分组,大幅降低主数据维护量。在大型零售场景中(如800家门店、6万商品),直接维护每个门店和商品的组合参数会导致维护量失控。Requirement Groups允许企业按品类特性(如乳制品、饮料等)为不同门店组设置统一补货参数,并随业务变化灵活调整。该机制与商品分类紧密绑定,不同于MRP Group

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 68

【收藏必备】Python构建AI Agent完整指南:从零开始到实战应用,新手友好

Agent是指一种能够感知环境、做出决策并采取行动以实现特定目标的自主实体。AI Agent的复杂程度各不相同,既有仅对刺激做出反应的简单反应式智能体,也有能够随时间推移不断学习和适应的高级智能体。Reactive Agents: 直接响应环境变化,不具备内部记忆。Model-Based Agents: 利用内部世界模型进行决策的智能体。Goal-Based Agents: 以实现特定目标为基础规划行动。Utility-Based Agents: 基于效用函数评估潜在行动,以实现结果的最大化。

优快云_430422的博客 1125

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【收藏必学】ReAct框架手把手教程:从零开始构建你的第一个AI Agent

这一行是用 Python 的re模块预编译了一个正则表达式,用于匹配模型输出中的动作调用指令。表示必须以开头(\w+)匹配一个由字母、数字或下划线组成的字符串,用来捕获工具名是第二个冒号(.*)匹配这一行剩下的所有内容,作为工具的输入参数表示这一行的末尾工具名:如calculate参数内容:如5 + 3这在整个 ReAct 框架中起到了“解析模型指令”的作用,是连接 LLM 与工具函数的桥梁。这是query函数的定义部分,它是整个“ReAct式推理对话”的主函数。

xxue345678的博客 982

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

AI Agents入门教程之从零开始构建Agent

Agent是指一种能够感知环境、做出决策并采取行动以实现特定目标的自主实体。AI Agent的复杂程度各不相同,既有仅对刺激做出反应的简单反应式智能体,也有能够随时间推移不断学习和适应的高级智能体。: 直接响应环境变化,不具备内部记忆。: 利用内部世界模型进行决策的智能体。: 以实现特定目标为基础规划行动。: 基于效用函数评估潜在行动,以实现结果的最大化。示例包括聊天机器人、推荐系统和自动驾驶汽车,它们各自利用不同类型的Agent,以高效且智能的方式执行任务。Models。

m0_59164304的博客 2327

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

AI Agent 开发实战:智能对话Agent构建完整教程

想要掌握AI Agent开发的核心技术吗?智能对话Agent作为人工智能领域最直接的应用,正在改变我们与计算机交互的方式。在本篇完整教程中,我将带你从零开始构建一个功能强大的智能对话Agent系统,涵盖从理论基础到实战应用的完整流程。无论你是AI开发新手还是有一定经验的开发者,这篇文章都将为你提供实用的AI Agent开发指南。 ## 📊 AI Agent开发的核心概念 AI Agent(智

gitblog_00711的博客 826

构建MCP AI Agent完整教程:从定义到部署的九个关键步骤!

文章详细介绍了从零开始构建MCP类型AI Agent的九个步骤:首先定义工具目标和背景,然后构建核心功能包括数据加载、向量化、本地存储和语义检索;接着进行本地测试并使用FASTMCP构建MCP服务器;随后配置AI Agent项目并在工具内部运行;最后通过使用MCP资源和扩展AI项目完成整个构建流程。通过这九个步骤,开发者可以系统性地构建、测试、部署和扩展功能强大的MCP AI Agent。

qkh1234567的博客 1894

从零开始构建AI Agent框架(一):打造功能强大的开放Agent编辑平台

之前我们讲过了想将LLM能力在具体的应用中实践,最好的方法是做成一个agent,具体参考[大模型应用]。本系列我们就从零写一个agent框架,方便我们构造和运行agent。

2401_85390073的博客 1662

AI Agent 开发实战:从零开始构建智能代理的完整指南

AI Agent 开发实战是一套全面的教程,旨在帮助开发者从零开始构建智能代理系统。本指南涵盖了AI Agent的核心概念、架构设计、开发流程以及实际应用案例,适合对人工智能和智能代理感兴趣的初学者和开发人员。 ## 什么是 AI Agent? AI Agent,也称为智能代理,是一种能够感知环境并在其中采取行动以实现特定目标的计算系统。作为人工智能领域的重要组成部分,AI Agent具有自主

gitblog_00638的博客 895

从零开始,一步步教你构建Agent框架的完整指南

无论是环境的反馈,还是人类的指令,Agent 都需要完成一个对接收到的信息进行“理解”,并依据得到的理解进行意图识别,转化为下一步任务的过程。真正让人惊讶的是大模型在推理上的能力涌现。推理,一般指根据几个已知的前提推导得出新的结论的过程,区别于理解,推理一般是一个“多步骤”的过程,推理的过程可以形成非常必要的“中间概念”,这些中间概念将辅助复杂问题的求解。不同的智能体有不同的推理提示风格、不同的输入方式以及不同的解析输出方式,依赖于用户对应用的自定义,说白了就是对大模型进行一层封装更方便管理。

aolan123的博客 2354

从零开始学AI Agent:多Agent协作框架全解析,一篇就够,速速收藏!

2025年AI Agent趋势转向多Agent协作,模拟人类团队工作。文章详解四大主流框架:LangGraph(状态图驱动)、CrewAI(角色协作)、AutoGen(对话迭代)和MetaGPT(模拟创业团队)。这些框架让AI能够协调、构建、共同进化,2026年多Agent系统将成为主流。开发者建议从LangGraph或CrewAI入手,掌握这些框架将获得Agentic AI核心竞争力。2025年,AI Agent 的创新不再只是单个Agent的智能提升,而是它们如何“像人类团队一样协作”。从单一任务执行,

xiaoganbuaiuk的博客 1541

【ai_agent】从零写一个agent框架(一)打造最强开放agent编辑框架,拳打dify,脚踩coze

之前我们讲过了想将LLM能力在具体的应用中实践,最好的方法是做成一个agent。本系列我们就从零写一个agent框架,方便我们构造和运行agent。

python1234_的博客 2436
上一篇: 智能体Agent自学教程推荐,Hello-Agents
下一篇: 程序员如何从 0 到 1 自己开发一个 AI Agent?
AI_小站
博客等级 码龄3年 6255粉丝 1152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值