从零开始构建智能Agent:物流查询助手完整实战

【AI大模型】DashScope 介绍 DashScope是阿里云的一款模型服务产品,简化了AI模型的应用与部署。 * 对主流的AI大模型进行了标准化封装,提供API接口,方便开发者可以调用这些模型,并进行推理、训练、微调。 * 为开发者提供了从模型获取、使用到优化的一站式解决方案,极大地促进了AI技术在不同行业和场景中的广泛应用。 阅读详情

🤖 从零开始构建智能Agent:物流查询助手完整实战:

手把手教你用LangChain + 通义千问打造一个可用的AI Agent


代码地址:https://github.com/Brian170915/logistic_agent_v1

📋 目录

  1. 项目环境配置:一切从依赖开始
  2. 模型配置:接入通义千问(DashScope)
  3. 工具定义:为Agent赋予“行动能力”
  4. Agent核心构建:创建智能执行器
  5. 主入口:构建交互式Agent应用
  6. 运行与扩展

1️⃣ 项目环境配置:一切从依赖开始

在构建一个功能完备的智能Agent之前,首先需要搭建一个稳定的Python运行环境。本次项目主要依赖langchain、langgraph以及openai等核心库,它们共同构成了Agent的“骨架”与“大脑”。

📄 requirements.txt

# === 核心框架 ===
langchain==1.2.15            # LCEL表达式、链式调用、工具集成
langchain-core==1.3.0        # 基础抽象与运行时
langchain-openai==1.1.16     # OpenAI模型适配器(支持GPT-4o等)
langgraph==1.1.9             # 图结构Agent流程控制
langgraph-checkpoint==4.0.2  # 状态持久化与记忆管理

# === LLM 客户端 ===
openai==2.32.0               # 官方异步/同步客户端
httpx==0.28.1                # 高性能HTTP传输层
tiktoken==0.12.0             # 计算token数量(上下文管理)

# === 数据验证与序列化 ===
pydantic==2.13.3             # 结构化配置与输出解析
pydantic_core==2.46.3
orjson==3.11.8               # 快速JSON处理
ormsgpack==1.12.2            # 消息打包格式

# === 工具与辅助 ===
python-dotenv==1.2.2         # 管理OpenAI API Key
tenacity==9.1.4              # 自动重试机制(应对限流)
tqdm==4.67.3                 # 进度条显示
PyYAML==6.0.3                # 读取配置文件
requests==2.33.1             # 原生HTTP请求兜底

🔧 环境安装命令

建议使用Python 3.10+ 创建虚拟环境:

pip install -r requirements.txt

2️⃣ 模型配置:接入通义千问(DashScope)

在构建Agent之前,我们需要配置大语言模型(LLM)的接入信息。本次项目采用阿里云的通义千问(qwen-flash) 作为底层模型,通过兼容OpenAI API的方式与langchain-openai无缝对接。

📄 环境变量文件(.env)

# DashScope API 配置
DASHSCOPE_API_KEY=your-api-key-here      # 从阿里云控制台获取
BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
LLM_MODEL=qwen-flash                      # 快速响应版,性价比高

🔌 在代码中加载配置

使用python-dotenv加载环境变量,并初始化兼容OpenAI接口的ChatModel:

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI

# 加载 .env 文件
load_dotenv()

# 读取配置
api_key = os.getenv("DASHSCOPE_API_KEY")
base_url = os.getenv("BASE_URL")
model_name = os.getenv("LLM_MODEL")

# 初始化通义千问模型(兼容OpenAI SDK)
llm = ChatOpenAI(
    api_key=api_key,
    base_url=base_url,
    model=model_name,
    temperature=0.7,          # 控制随机性,0~2之间
    max_tokens=2048,          # 最大输出长度
    timeout=60,               # 请求超时时间(秒)
    max_retries=2,            # 自动重试次数
)

✅ 测试连通性

建议先发送一条简单消息验证配置是否正确:

from langchain_core.messages import HumanMessage

response = llm.invoke([HumanMessage(content="你好,请介绍一下你自己")])
print(response.content)

预期输出示例:

你好!我是通义千问,阿里云开发的AI助手。我可以回答问题、编写代码、进行文本分析等。有什么我可以帮助你的吗?

💡 小提示

  • qwen-flash 响应速度快、成本低,适合Agent高频调用;若需更强推理能力可换为 qwen-max
  • BASE_URL 末尾的 /v1 必须保留,因为langchain-openai会自动追加 /chat/completions 路径
  • API Key 请妥善保管,勿提交到公开代码仓库

3️⃣ 工具定义:为Agent赋予“行动能力”

Agent的核心能力之一就是使用工具。在LangChain中,我们可以通过@tool装饰器快速将一个普通函数包装成符合Agent调用规范的工具。下面以物流单号查询为例,展示如何定义工具并集成到Agent中。

📦 定义物流查询工具(tools/logistics_tools.py)

from langchain.tools import tool

# 定义物流查询工具
@tool
def query_logistics(order_id: str) -> str:
    """
    物流单号查询工具
    输入参数:物流单号
    功能:查询物流的实时位置、运输状态
    :param order_id: 物流单号
    :return: 物流状态描述
    """
    # 模拟物流数据(无真实API,零配置!后期可替换为真实接口)
    mock_logistics_data = {
        "SF123456": "【顺丰速运】已揽收|广州市天河区→北京市朝阳区|预计1天送达",
        "YT789012": "【圆通快递】运输中|已离开上海分拨中心|前往深圳途中",
        "JD345678": "【京东物流】派送中|快递员:李师傅|电话:138****1234",
        "ZT901234": "【中通快递】已签收|签收人:门卫|2025-12-19 10:30"
    }
    
    if order_id in mock_logistics_data:
        return mock_logistics_data[order_id]
    else:
        return f"查询不到单号为{order_id}的信息,请检查单号是否正确"

# 对外暴露的接口
__all__ = ["query_logistics"]

🔍 @tool 装饰器做了什么?

只需添加@tool,LangChain会自动完成以下工作:

自动生成内容说明
工具名称函数名 query_logistics
工具描述函数的docstring(LLM据此判断何时调用)
参数Schema根据函数签名自动解析(order_id: str)
输入/输出格式封装为Tool类,符合Agent调用协议

🧪 测试工具是否正常工作

from tools.logistics_tools import query_logistics

# 直接调用测试
print(query_logistics.invoke({"order_id": "SF123456"}))
# 输出:【顺丰速运】已揽收|广州市天河区→北京市朝阳区|预计1天送达

print(query_logistics.invoke({"order_id": "INVALID001"}))
# 输出:查询不到单号为INVALID001的信息,请检查单号是否正确

🔗 将工具绑定到LLM

from langchain_openai import ChatOpenAI
from tools.logistics_tools import query_logistics

llm = ChatOpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url=os.getenv("BASE_URL"),
    model=os.getenv("LLM_MODEL"),
)

# 绑定工具(让LLM知道它能调用这个函数)
llm_with_tools = llm.bind_tools([query_logistics])

# Agent就会自动识别物流查询请求
response = llm_with_tools.invoke("帮我查一下顺丰单号SF123456的物流信息")
print(response.tool_calls)  # 会输出LLM决定调用的工具及参数

💡 设计要点

  • docstring 至关重要:LLM通过它理解工具的用途和适用场景,务必写清楚“什么情况用这个工具”
  • 输入类型提示:order_id: str 帮助LLM正确提取参数
  • 模拟数据先行:开发阶段可以用mock数据快速验证流程,后期只需替换mock_logistics_data为真实API调用,Agent无需改动
  • __all__ 规范导出:便于模块化管理,避免意外暴露内部函数

4️⃣ Agent核心构建:创建智能执行器

有了工具和模型之后,下一步就是将两者组装成一个能够自主决策的Agent。本章展示如何使用create_agent快速构建Agent,并封装一个简单的执行器来规范化输入输出。

🤖 Agent构建代码(agent.py)

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
from tools.logistics_tools import query_logistics
from langchain_core.messages import HumanMessage

# 加载环境变量
load_dotenv()

# 初始化LLM
llm = ChatOpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url=os.getenv("BASE_URL"),
    model=os.getenv("LLM_MODEL"),
    temperature=0.1  # 温度:0=精准回答,1=创意回答
)

# 定义可用工具集
tools = [query_logistics]

# 创建Agent
agent = create_agent(
    model=llm,
    tools=tools,
    system_prompt=(
        "你是专业的物流助手,只能使用提供的工具查询物流信息,禁止编造答案。"
        "只能回答物流相关的问题,查询完成后直接返回结果。"
    )
)

📦 封装Agent执行器

为了方便调用和管理,我们创建一个AgentExecutor类来规范化输入输出格式:

class AgentExecutor:
    def __init__(self, agent):
        self.agent = agent
    
    def invoke(self, data):
        # 提取用户输入
        user_input = data["input"]
        messages = [HumanMessage(content=user_input)]
        
        # 调用Agent执行
        result = self.agent.invoke({"messages": messages})
        
        # 提取最终答案(消息列表的第4条,索引3)
        answer = result["messages"][3].content
        return {"output": answer}

# 实例化并导出
agent_executor = AgentExecutor(agent)
__all__ = ["agent_executor"]

🔄 Agent执行流程解析

当用户输入"查询SF123456信息"时,内部消息流转如下:

步骤消息类型内容说明
1HumanMessage查询SF123456信息用户原始输入
2AIMessage调用query_logistics(order_id="SF123456")LLM决策调用工具
3ToolMessage【顺丰速运】已揽收…工具返回结果
4AIMessage根据查询结果,该订单当前状态为…LLM生成最终回复

用户输入

HumanMessage

AIMessage
决定调用工具

ToolMessage
工具返回结果

AIMessage
生成最终回答

输出给用户

🧪 测试执行器

from agent import agent_executor

# 正常查询
result = agent_executor.invoke({"input": "帮我查一下SF123456的物流"})
print(result["output"])
# 输出:该订单【顺丰速运】已揽收,正在从广州市天河区发往北京市朝阳区,预计1天送达。

# 异常单号
result = agent_executor.invoke({"input": "查一下ABC999999"})
print(result["output"])
# 输出:查询不到单号为ABC999999的信息,请检查单号是否正确。

# 非物流问题(Agent会拒绝回答)
result = agent_executor.invoke({"input": "今天天气怎么样?"})
print(result["output"])
# 输出:抱歉,我是物流助手,只能回答物流相关的问题。

💡 关键设计说明

设计点说明
temperature=0.1低温度保证回答稳定、不跑偏,适合工具调用类任务
system_prompt 约束明确限制Agent行为边界:只用工具、不编造、只回答物流问题
result["messages"][3].content固定取第4条消息作为最终答案(可根据实际结构调整)
执行器封装统一{"input": str} -> {"output": str}接口,便于后续集成

⚠️ 注意事项

  • create_agent 是LangChain 1.x 版本的新API(langchain.agents),旧版本可能使用create_react_agent,请确保依赖版本正确
  • 消息索引[3]依赖固定流程(Human → AI(tool_call) → Tool → AI),如果Agent有多次工具调用,需要更复杂的提取逻辑。简单场景下此方式足够

5️⃣ 主入口:构建交互式Agent应用

有了Agent执行器之后,最后一步就是创建一个用户友好的命令行交互界面。本章展示如何将前面的所有模块整合起来,形成一个完整的、可运行的物流查询助手应用。

🚀 主入口代码(main.py)

# 项目入口文件:物流助手AI Agent
from agent import agent_executor

# 程序主入口
if __name__ == "__main__":
    # 欢迎界面
    print("=" * 55)
    print("🤖 物流查询助手 AI Agent 已启动")
    print("💡 支持:物流单号查询 | 输入 exit 退出程序")
    print("=" * 55)

    # 循环对话
    while True:
        # 获取用户输入
        user_query = input("\n请输入你的问题:").strip()

        # 退出指令
        if user_query.lower() in ["exit", "quit", "退出"]:
            print("\n👋 感谢使用,祝你生活愉快!")
            break

        # 空输入处理
        if not user_query:
            print("⚠️  请输入有效的物流查询问题~")
            continue

        try:
            # 调用AI Agent核心逻辑
            result = agent_executor.invoke({"input": user_query})
            # 打印结果
            print(f"\n✅ 助手回复:{result['output']}")
        except Exception as e:
            print(f"\n❌ 出错啦:{str(e)}")

🎮 运行效果演示

python main.py

示例对话流程:

=======================================================
🤖 物流查询助手 AI Agent 已启动
💡 支持:物流单号查询 | 输入 exit 退出程序
=======================================================

请输入你的问题:帮我查一下SF123456

✅ 助手回复:该订单【顺丰速运】已揽收,正在从广州市天河区发往北京市朝阳区,预计1天送达。

请输入你的问题:JD345678现在到哪了?

✅ 助手回复:该订单【京东物流】正在派送中,快递员李师傅,联系电话138****1234。

请输入你的问题:查一下ABC999999

✅ 助手回复:查询不到单号为ABC999999的信息,请检查单号是否正确。

请输入你的问题:今天天气怎么样?

✅ 助手回复:抱歉,我是物流助手,只能回答物流相关的问题。

请输入你的问题:exit

👋 感谢使用,祝你生活愉快!

📁 完整项目结构

到目前为止,我们的项目文件组织如下:

logistics-agent/
│
├── .env                    # 环境变量(API Key、Base URL、模型名称)
├── requirements.txt        # Python依赖列表
│
├── tools/
│   └── logistics_tools.py  # 物流查询工具定义(query_logistics)
│
├── agent.py                # Agent核心 + AgentExecutor封装
├── main.py                 # 主入口(命令行交互界面)
│
└── README.md               # 项目说明文档(可选)

🔄 完整调用链路图

query_logistics工具 LLM(通义千问) AgentExecutor main.py 用户 query_logistics工具 LLM(通义千问) AgentExecutor main.py 用户 输入"查SF123456" invoke({"input": ...}) 发送HumanMessage 决策:需要调用工具 AIMessage(tool_call) 执行query_logistics("SF123456") ToolMessage(物流信息) 将工具结果返回 AIMessage(最终回答) {"output": "..."} 打印"✅ 助手回复:..."

6️⃣ 运行与扩展

🚀 快速启动

  1. 克隆/创建项目文件夹
  2. 安装依赖:pip install -r requirements.txt
  3. 配置环境变量:在.env文件中填入你的DASHSCOPE_API_KEY
  4. 运行程序:python main.py

🔧 扩展建议

扩展方向实现方式难度
接入真实物流API替换mock_logistics_data为调用快递100、菜鸟裹裹等真实接口⭐⭐
增加更多工具添加天气查询、地图导航、订单追踪等工具⭐⭐
添加记忆功能使用langgraph-checkpoint让Agent记住对话历史⭐⭐⭐
Web化部署用FastAPI包装agent_executor,提供RESTful API⭐⭐
流式输出使用.stream()方法实现逐字输出效果⭐⭐
多模型切换支持GPT-4、Claude、文心一言等不同模型⭐⭐
添加数据库存储查询记录,实现历史查询统计⭐⭐⭐

📚 写在最后

至此,我们已经完成了一个完整的AI Agent项目:

  • ✅ 环境搭建与依赖配置
  • ✅ 通义千问模型接入
  • ✅ 自定义工具定义与绑定
  • ✅ Agent构建与执行器封装
  • ✅ 命令行交互界面

这个项目虽然简单,但包含了Agent开发的核心思想:LLM作为大脑 + 工具作为手脚 + 系统提示作为行为准则。你可以基于这个模板,轻松扩展出更复杂的Agent应用(如客服机器人、数据分析助手、自动化流程编排等)。


🔗 参考资源


希望这篇博客对你有帮助!有问题欢迎在评论区交流讨论~ 🎉

如果觉得有用,别忘了点赞+收藏支持一下!

LangChain4j与DashScope深度集成实战:一站式开发指南 本篇文章会通篇详细的讲清楚LangChain4j与DashScope集成的各个方面,从Springboot的集成到Ai对话、会话记忆、RAG、FunctionCalling、互联网搜索、结构化的输出、多模态等都给出相应的说明,希望通过这篇文章对于LLM不了解的同仁一样可以扩展出自己的AI应用。 阅读详情

相关推荐

DashScope灵积模型API调用保姆级教程:从注册到第一个AI菜谱生成(Python版)

本文提供DashScope灵积模型API调用的完整Python教程,从账号注册、环境配置到实现首个AI菜谱生成器。详细讲解API密钥安全管理、同步/流式调用方法,并包含故障排查、参数调优等实战技巧,帮助开发者快速掌握DashScope灵积模型的应用开发。

weixin_26808205的博客 367

Py之dashscope:dashscope的简介、安装和使用方法、案例应用之详细攻略

​ Py之dashscope:dashscope的简介、安装和使用方法、案例应用之详细攻略 目录 dashscope的简介 dashscope的安装和使用方法 dashscope的案例应用 dashscope的简介 DashScope(模型服务灵积),灵积通过灵活、易用的模型API服务,让各种模态模型的能力,都能方便的为AI开发者所用。通过灵积API,开发者不仅可以直接集成大模型的强大能力,也可以对模型进行训练微调,实现模型定制化。 DashScope(模型服务灵积)是一个基于“模型即服务

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

LangChain与LangGraph实战:从零构建AI Agent智能体

大语言模型应用开发正从简单的问答走向复杂智能体编排。LangChain作为主流开发框架,提供了模型调用、提示词模板等基础能力,而LangGraph以状态图为核心,支持分支、循环和条件路由,成为构建AI Agent的关键技术。本文从LangChain基础用法讲起,深入解析LangGraph的节点、边与条件边机制,并结合Python代码演示一个完整的Agent工具调用闭环。同时介绍MCP协议如何标准化外部工具接入,以及Memory记忆机制如何让智能体具备短期与长期记忆。无论你是刚入门的新手,还是想落地Agent

weixin_33912246的博客 429

DashScope - 阿里模型服务灵积

DashScope灵积模型服务建立在“模型即服务”(Model-as-a-Service,MaaS)的理念基础之上,围绕AI各领域模型,通过标准化的API提供包括模型推理、模型微调训练在内的多种模型服务。通过围绕模型为中心,DashScope灵积模型服务致力于为AI应用开发者提供品类丰富、数量众多的模型选择,并通过API接口为其提供开箱即用、能力卓越、成本经济的模型服务。, 您可以通过环境变量设置api_key保存文件位置。推荐通过环境变量设置api-key。基于 Python 3.8+

AI工程化、开源分享、文档翻译、代码笔记 7509

Grok Voice Agent实时语音助手开发实战

实时语音助手是人机交互的关键演进方向,其核心在于突破传统STT+LLM+TTS三段式架构的延迟瓶颈,实现端到端音频域推理与全双工对话能力。Grok Voice Agent通过统一音频模型替代文本中转,将首字节延迟压缩至650–820ms,并原生支持语义级中断响应与工具调用无缝嵌入,显著提升对话自然度与业务集成效率。该技术适用于智能硬件、SaaS语音控制及教育陪练等场景,结合LiveKit Cloud可快速完成从本地调试到生产部署的闭环。本文聚焦Grok Voice Agent API与实时语音助手两大热词,

weixin_30572613的博客 424

WorkBuddy Agent开发实战:从零构建可落地的AI智能体应用

Agent开发正从概念走向工程实践,开发者不再只关注大模型本身的生成能力,而是更注重如何将模型接入真实业务系统,完成工具调用、任务编排与知识管理。AI智能体的核心价值在于从“能聊天”进化为“能干活”,这需要平台化支撑和系统化的构建方法。WorkBuddy作为一站式智能体开发平台,通过插件、Skill、可视化工作流、知识库和记忆机制,帮助开发者将模型能力转化为可复用、可运营的业务服务。其开放平台API支持将构建的Agent发布为对外服务,适用于智能客服、文档检索、内容生成等知识密集型场景。本文结合工程实践,解

weixin_34413103的博客 314

Coze平台实战:零代码构建智能客服AI Agent的完整指南

本文详细介绍了如何利用Coze平台零代码构建智能客服AI Agent的完整流程。从基础配置、知识库优化到工作流设计和插件扩展,帮助用户快速部署高效的智能客服系统,适用于电商、金融等多个行业,显著提升客户服务效率。

opencv7vision的博客 648

残差检验_第三十讲 R语言-Cox比例风险模型的假设检验条件

在介绍完 Cox比例风险模型的详细理论和R实现以后(插入链接!!!),我们已经知道Cox比例风险模型可以较好的同时矫正多个混杂因素对结果的影响,同时我们遗留下来了一个问题:Cox比例风险模型的假设检验条件是什么?这一讲,我们将对此进行解答。请注意,如果使用不当,统计模型可能会产生误导性的结论。因此,检查给定的模型是否适合数据类型是非常重要的!1. Cox比例风险模型的假设条件Cox比例风险模型的成...

weixin_35476698的博客 8048

从零开始学大模型Agent开发:构建会思考、能执行的智能体【必学收藏】

本文深入解析大模型Agent的开发架构与实践,从Agent的概念分类到核心模块(规划、记忆、工具调度)详解,再到基于Function Call和MCP协议的搭建方法,以及评估策略,帮助开发者构建真正自主的智能体系统。

2401_85327249的博客 1186

Vector CANoe VT2516A实战:从硬件连接到CAPL脚本的完整配置指南

本文详细介绍了Vector CANoe VT2516A板卡从硬件连接到CAPL脚本编写的完整配置指南。涵盖硬件接线原则、VT System配置避坑技巧、系统变量创建规范、可视化Panel设计、CAPL脚本调试及典型故障排查案例,帮助工程师快速掌握VT2516A板卡的应用实践,提升汽车电子测试效率。

weixin_30608503的博客 254

MacTeX+TeXstudio:Macbook配置本地Latex看这一篇就够了

这个博客记录本人在MacBook上配置本地Latex的流程,其中选择的编译环境为MacTeX,编辑器为TeXstudio。采用的原因主要两点:一个是本人配置的原因主要是用来撰写毕业论文,希望能够尽可能简化设置流程,专注内容表达;第二是由于本人还有一个windows系统的笔记本,想要编辑器在专注写作体验的同时在两个系统上能够都适配,从而减少切换效率,故选择此组合。这篇文章介绍并详细记录了本人的安装流程,有相同需求的同志也可借鉴。

Katherine-XY的博客 6982

【硬核干货】两年磨一剑!从零开始构建能自己思考、执行的AI Agent系统

本文是作者两年多来开发AI Agent产品的实战经验总结,详细介绍了Agent的概念、分类和核心架构模块,包括规划系统、记忆系统、工具调度等。文章分享了如何基于大模型搭建Agent系统的方法论,包括上下文工程优化、记忆系统构建、函数调用实现等关键技术,并介绍了MCP协议在Agent开发中的应用。同时,作者还分享了腾讯PCG大数据平台部开发的数据分析Agent助手Dola的实践经验,为开发者提供了从理论到实践的完整指导。

xx_nm98的博客 1099

核磁共振常用的文件格式介绍:NIfTI volume 格式 (*.nii), GIFTI 格式 (*.gii), CIFTI 格式 (*.nii)

NIfTI volume 格式 (*.nii)GIFTI 格式 (*.gii)CIFTI 格式 (*.nii)Scene file文件 (*.scene)规格文件 (*.spec)解剖 (*.annot)一个场景文件包含一个或多个场景;每个场景实际上是保存时 wb_view 内部状态的快照。这包括有关加载哪些文件、如何显示、如何配置选项卡的信息(选择了哪些表面、在每个层中选择了哪些文件、打开了哪些层、哪些视图旋转、调色板设置、平铺选项卡等),以及在它们上面添加了哪些注释(文本、箭头、圆圈等)。

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 3043

OpenAgent实战案例:从零构建智能客服AI Agent的完整指南

想要快速构建一个功能强大的智能客服AI Agent吗?OpenAgent作为一款开源的AI Agent开发平台,为你提供了从零开始构建智能客服系统的完整解决方案。本文将详细介绍如何利用OpenAgent平台,在30分钟内搭建一个支持多轮对话、知识库检索和自动化工作流的智能客服Agent。无论你是AI初学者还是有经验的开发者,都能通过本文掌握OpenAgent的核心功能和使用技巧,轻松实现企业级智能

gitblog_01040的博客 391

光学传播仿真软件:ASAP_(1).ASAP软件介绍与安装

ASAP(Advanced System for Analysis and Propagation)是一款强大的光学传播仿真软件,广泛应用于光学系统的设计、分析和优化。它提供了丰富的建模工具和仿真功能,可以帮助用户从简单的光学元件到复杂的光学系统进行仿真。:支持光学、机械、热学等多物理场的联合仿真。:采用高精度的算法,确保仿真结果的准确性。:内置了大量的光学元件,如透镜、反射镜、棱镜、光栅等。:提供直观的用户界面,支持多种建模和仿真方式。:支持使用脚本语言进行二次开发,增强软件的定制能力。

kkchenjj的博客 1593

YOLOv13改进:注意力机制 | 动态稀疏注意力的双层路由方法BiLevelRoutingAttention | CVPR2023

BiLevelRoutingAttention方法对小目标检测效果比较好。可能是因为BRA模块是基于稀疏采样而不是下采样,一来可以保留细粒度的细节信息,二来同样可以达到节省计算量的目的。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1436

从零到一:如何用Mastra在10分钟内构建你的第一个AI助手

想象一下这样的场景:你需要为你的电商平台创建一个智能客服助手,能够回答用户关于产品、订单和物流的问题。传统开发方式可能需要数周时间,涉及复杂的API集成、状态管理和对话逻辑。但今天,有了Mastra框架,你可以在短短10分钟内完成这一切! Mastra是一个基于现代TypeScript栈的AI应用开发框架,专为构建AI驱动的应用程序和智能体而设计。它提供了从原型到生产就绪应用所需的一切,让你能够

gitblog_00783的博客 750

OpenClaw 在 Docker 容器中的部署实战——零配置启动

本文介绍了OpenClaw在Docker容器中的快速部署方法,对比了本地部署与容器化部署的优势。通过官方镜像和Docker Compose两种方式,5分钟即可完成部署,并详细讲解了配置管理方案(挂载配置文件和环境变量)。文章还提供了飞书集成配置方法,以及生产环境下的日志管理、资源限制、健康检查等优化建议。最后包含常见问题排查指南,帮助开发者快速实现OpenClaw的容器化部署。

刘一说的IT专栏 905

从0到1构建AI助手:FastGPT与DeepSeek的智能工作流实操指南

历经FastGPT搭建、Ollama容器、BGE-M3模型与8G内存驯服国产大模型DeepSeek的技术长征,今天我们用FastGPT+DeepSeek工作流编排,搭建一个自动化的快递查询小助手!

2301_81888214的博客 771

如何实现一个用STM32F103C8T6作为主控芯片,加上AD8232、MAX30102 、MPU6050模块的用于运动中监测心率变异性??

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1213

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

从零开始成为 AI Agent 开发专家 - 完整转型路线图

AI Agent 是一个能够感知环境、做出决策、采取行动以实现特定目标的智能系统。

zwjapple的专栏 1006

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

保姆级教程!从零开始构建你的第一个AI Agent:大模型时代编程开发者的必杀技,附腾讯Dola实战案例

本文深入解析AI Agent技术,从基础概念到实战开发,详细介绍Agent核心模块(规划、记忆、工具调度等)及两种构建方式(function call和MCP协议)。分享腾讯Dola数据分析Agent架构设计与实现经验,探讨多Agent协作和评估方法,为开发者提供完整的Agent开发指南和实践心得。

m0_59235245的博客 968

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

从入门到实战:构建具备长期记忆的个人知识库助手

智能体(Agent)技术作为人工智能领域的重要分支,其核心在于模拟人类的“感知-规划-执行”循环,通过大语言模型(LLM)进行推理与决策。这项技术的核心价值在于将LLM的认知能力与外部工具(如搜索引擎、数据库、API)相结合,从而扩展其解决问题的能力边界,使其从简单的对话模型升级为能自主完成复杂任务的智能系统。在实际应用场景中,Agent可广泛应用于智能客服、个人助手、自动化工作流与数据分析等领域。本文将以构建一个具备长期记忆的个人知识库助手为例,深入探讨其实现路径,其中会重点解析工具调用(Tool Cal

weixin_30567225的博客 363

实战指南:运用skill4agent在快马平台构建可部署的电商客服智能体系统

提取到信息后,就去模拟的商品数据字典里遍历查找,找到符合条件的所有商品,然后把它们的名称、价格、库存状态等信息整理成一段友好的文字回复给用户。从有一个智能体的想法,到写出代码,再到最终变成一个线上可用的服务,整个流程在快马平台上变得非常顺畅,省去了自己租服务器、配置网络、维护环境这些繁琐的步骤,让我能更专注于智能体逻辑本身的优化。Skill4agent这个框架挺有意思的,它把复杂的智能体任务拆分成一个个独立的“技能”,然后通过一个“路由”机制来调度,非常适合用来搭建解决实际问题的系统。最让我惊喜的是它的;

ThunderstormLynx23的博客 196

从零开始构建AI智能体:开发者必收藏的Google官方指南!

Google发布的《Introduction to Agents》白皮书介绍了AI智能体的完整框架,包括定义(模型、工具、编排层、部署服务)、五级分类体系、核心架构设计和生产级部署策略。文章探讨了多智能体系统设计模式、安全治理机制、学习进化方法,并通过Google Co-Scientist和AlphaEvolve等案例展示应用。该指南旨在帮助开发者构建从原型到生产级的智能体系统,解决安全性、质量和可靠性挑战。

2401_85375151的博客 1349

LangChain框架实战:从零构建AI应用的完整指南

大语言模型(LLM)作为人工智能的核心技术,通过深度学习实现自然语言理解与生成。其工作原理基于Transformer架构,通过注意力机制处理序列数据。在AI应用开发中,LLM的技术价值在于能够理解复杂语义并生成高质量文本。应用场景涵盖智能客服、内容创作、代码生成等多个领域。LangChain框架通过标准化接口和链式调用机制,解决了多模型协同和工具集成的工程难题。本文基于Model模块和Agent智能代理等热词,深入解析如何利用LangChain降低AI应用开发门槛,实现从环境搭建到生产部署的全流程实战。

weixin_33937913的博客 301
上一篇: 大模型系统工程化:先分类再处理的核心思路
下一篇: Windows 环境下基于 Docker 快速部署 Milvus v2.6.15 实战指南
BrianLBR
博客等级 码龄6年 33粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值