【Agent】Agent的ReAct模式
引言在人工智能领域,AI Agent(智能体)是一种能够感知环境、做出决策并执行行动的系统。随着大语言模型(LLMs)的快速发展,AI Agent在自然语言处理、问答系统和交互式决策任务中的能力显著提升。然而,传统LLMs在推理(如链式思考提示,Chain-of-Thought, CoT)和行动(如调用外部工具或API)方面通常被分开研究,导致在处理需要两者结合的复杂任务时效率低下。ReAct(Reasoning and Acting,推理与行动)模式应运而生,通过将推理和行动交织在一起,使AI Agent能够更智能、更高效地完成任务。 本文将详细探讨ReAct模式的起源、其在AI Agent中的作用,以及基于ReAct的扩展和最新发展。我们将通过清晰的逻辑和示例,帮助读者理解这一技术如何推动AI Agent的进步。 ReAct模式的起源背景与动机ReAct模式最早由Shunyu Yao等人于2022年10月在论文《ReAct: Synergizing Reasoning and Acting in Language...
【LLM】RAG技术简介
背景大语言模型在训练阶段通常基于大规模语料(如 Common Crawl、Wikipedia、Books、Code等)进行离线学习,因此它们的知识存在以下问题: 静态性:一旦模型训练完毕,知识无法动态更新。 封闭性:模型只能生成其“知道”的内容,对未见信息无法准确回答。 幻觉性(Hallucination):即使模型生成看似合理的内容,也可能完全不符合真实事实。 为此,RAG(Retrieval-Augmented Generation,检索增强生成)框架被提出,用于将外部知识库引入到生成模型推理流程中,通过“检索 → 生成”的两阶段架构,让模型“读过资料再作答”。 RAG 的优势 ✅ 知识实时更新:只需更新知识库,无需重新训练大模型。 ✅ 降低幻觉风险:模型有“证据”可依,减少无中生有。 ✅ 适用于私有数据:支持接入企业文档、数据库、网页等作为知识来源。 ✅ 可控性强:检索模块可以人为控制,比如只让模型访问合规内容。 RAG 的工作流程一个典型的 RAG 系统包含两个核心模块: 检索器(Retriever):从外部知识库(Knowledge...
【LLM】通过API调用LLM的三种方式
本文将以OpenAI接口为例,介绍调用大模型API的三种方式,从最高级的封装到最原始的http请求,依次介绍LangChain、OpenAI官方SDK、requests请求。 LangChain 封装调用代码示例: 12345678910111213import osfrom langchain_openai import ChatOpenAIllm = ChatOpenAI( temperature=0.2, model_name=os.environ.get("QWEN_MODEL_NAME"), openai_api_key=os.environ.get("QWEN_API_KEY"), openai_api_base=os.environ.get("QWEN_API_URL"), max_tokens=int(os.environ.get("MAX_TOKENS", 1000)))response =...
【LLM】OpenAI的Chat Completions API 和 Assistants API
背景Chat Completions API 和 Assistants API 都是 OpenAI 提供的大语言模型交互 API。 Chat Completions API 是 无状态对话接口 Assistants API 是 有状态智能体接口 核心定位对比 API 核心用途 特点 Chat Completions API 直接调用语言模型进行单轮或多轮对话生成 轻量、灵活、无状态(默认不保存上下文) Assistants API 构建持久化、有工具能力的“智能助手” 有状态(自动保存上下文)、支持工具和文件管理 功能对比 对比维度 Chat Completions API Assistants API 会话管理 默认无状态,需要客户端手动管理 messages 内置 threads 和 messages,自动保存会话历史 工具调用 通过 function_call 手动声明和解析 内置工具(code interpreter、file search 等)+...
【LLM】OpenAI的response API介绍
背景 此前已经介绍过了OpenAI的 Chat Completions API 或 Assistants API。然而从 2024 年底开始,OpenAI 推出了 Responses API,并且明确这是未来的统一入口。 官方规划是: Responses API 将逐步取代 Assistants API,并可能在几年内覆盖 Chat Completions 的大部分场景。 本文将介绍新 API 与旧 API 再功能与用法伤的区别。 功能对比 对比维度 Chat Completions API / Assistants API(旧) Responses API(新) 功能覆盖 文本/多轮对话(Chat),Assistants API 支持工具调用、文件搜索等,但 API 分散 单一接口统一支持对话、多模态、工具调用、文件处理等 多模态输入 GPT-4 Turbo 等支持图片输入,但调用方式不统一 原生支持文本 + 图片 + 文件 + 语音输入 工具调用 function_call(Chat)或 Assistants API...
【LLM】LLM相关名词解释
大模型的分类混合推理模型(Hybrid Reasoning Model) 混合推理模型是指结合多种推理方式(如神经网络+符号推理、检索+生成)的语言模型架构,用于提升模型的准确性和复杂任务处理能力。 常见的混合推理方式: 类型 描述 示例 🧠 神经 + 符号推理 结合大模型与符号逻辑系统(如规则树、规划器) 解决数学题、写代码 🔍 检索 + 生成(RAG) 模型先从知识库中检索相关信息,再生成回答 Bing Copilot、GPT+文档上传 🪜 逐步思考 + 工具调用 模型模拟人类逐步思考(CoT),中间步骤可调用外部API、计算器、代码解释器等 AutoGPT、Toolformer、OpenAI GPT-4o 🧭 多模型协同 使用多个模型分工处理子任务,例如一个负责理解,一个负责生成 LLM Agents、多模态推理系统 🎯 举例: 你问模型“上海到北京有多少公里?” 裸模型:根据训练时看到的语料“猜”一个数字(可能错)。 混合推理模型:先调用地图接口查询,再告诉你准确答案。 Retrieval-Augmented...
【Agent】Agent的开发工具介绍
AI Agent的定义AI Agent是一种能够自主感知环境、制定决策并执行行动以实现特定目标的智能系统。在大模型时代,AI Agent通常由大语言模型驱动,具备以下四大核心要素: 规划(Planning):能够分解复杂任务,制定执行计划 记忆(Memory):具备短期和长期记忆能力,能够学习和积累经验 工具(Tools):能够调用外部工具和API,扩展自身能力 执行(Action):能够在环境中执行具体的行动 AI Agent开发工具分类根据功能特点、技术架构和应用场景,我们将当前主流的AI Agent开发工具分为以下几个类别: 编程框架类: LangChain、LangGraph、CrewAI、Semantic Kernel、AutoGen、Phidata 无代码/低代码平台类:Coze、Dify、星辰Agent、Trickle AI、AgentGPT、Gumloop、FlowiseAI 专业化工具类:AutoGPT、GPT Engineer 企业级解决方案类:Superagent、Reworkd AI 集成平台类:Zapier AI...
【LLM】LLM的量化与微调方法
引言 现代大语言模型(如 LLaMA、ChatGLM、Qwen)动辄拥有数十亿甚至上万亿参数。以 FP16 精度存储时: 模型规模 显存占用 7B 参数 ~14 GB 13B 参数 ~26 GB 70B 参数 ~140 GB 这意味着多数人无法在消费级显卡(如 RTX 3090/4090,24GB)上加载完整模型,并且推理延迟高,难以部署到边缘设备 量化(Quantization) 就是解决这一问题的关键技术:通过降低模型权重的精度(如从 16 位压缩到 4 位),大幅减少模型体积和显存需求。 模型量化的概念 量化是将高精度数值(如 FP32/FP16)转换为低精度表示(如 INT8、INT4)的过程。 常见量化方式对比 精度 每参数位数 压缩比(相比 FP32) 显存需求(以7B 模型为例) FP32 32 bit 1x 28 GB FP16 16 bit 2x 14 GB INT8 8 bit 4x 7 GB INT4 4 bit 8x 3.5 GB 4-bit...
【Linux】使用 Tinyproxy 让远程服务器走本地网络访问外网
一、背景在日常运维或科研计算中,我们经常遇到远程服务器无法直接访问外网的情况,例如: 服务器所在网络环境有防火墙限制 服务器没有公网 IP 或被限制访问外部 HTTP/HTTPS 资源 此时,可以利用 本地机器的外网网络,通过 SSH 反向端口转发 + HTTP 代理(tinyproxy),让远程服务器“借道”本地网络访问互联网。 二、原理整体思路如下: 本地机器运行 tinyproxy,监听 8888 端口,提供 HTTP 代理服务 SSH 反向隧道将远程服务器的 localhost:8888 映射到本地的 8888 端口 远程服务器设置 http_proxy / https_proxy 环境变量,让 HTTP 请求通过本地代理出网 三、安装与配置1. 本地机器安装 tinyproxy1sudo apt install tinyproxy 2. 启动 tinyproxy 服务1sudo systemctl start tinyproxy 默认会监听 8888 端口,可用以下命令验证: 1sudo lsof...
【Linux】WSL2的Linux子系统网络设置
1. 启用镜像网络模式默认情况下,WSL2 的网络行为与传统虚拟机不同,其内部 IP 地址与宿主 Windows 不同,导致无法直接通过 IP 访问 WSL2 服务。 解决方法是开启镜像网络(mirrored networking),这样 Windows 和 WSL2 将共享同一个 IP 地址。 步骤:在 Windows 用户主目录(如 C:\Users\你的用户名)下新建或修改 .wslconfig 文件,添加如下配置: 1234567[wsl2]networkingMode=mirrored # 开启镜像网络dnsTunneling=true # 开启 DNS Tunneling,解决 DNS 问题autoProxy=true # 自动同步代理设置# firewall=true # 可选,启用 Windows 防火墙# [experimental]# hostAddressLoopback=true # 可选,允许 WSL2 主动访问宿主 编辑完成后,执行以下命令重启...
【Linux】使用WSL给Windows安装Linux子系统
引言如果我在十几年前跟你说「Microsoft Love Linux」,你肯定觉得我鬼打墙了,Windows 和 Linux 可一直都是竞争对手。时任微软 CEO Steve Ballmer 还曾公开宣称 Linux 是「癌症」,毕竟 Linux 作为免费、开源的 Windows 替代品,抢走了微软不少的市场份额和营收。 后来,可能是为了与 VMware 等虚拟化厂商竞争,以及发展云计算平台的需要,微软在 Hyper-V 虚拟化平台上增加了对 Linux 的原生支持,让 Windows 也可以在 Hyper-V 虚拟机中运行 Linux 系统。但是,在 Hyper-V 中运行 Linux 虚拟机需要消耗大量的系统资源,而且宿主机(Host OS)与虚拟机(Guest OS)之间的交互也比较麻烦。 什么是 WSL 2?时间来到 2017 年,事情正在起变化🤣。微软正式发布了「适用于 Linux 的 Windows 子系统」,即人们熟知的 Windows Subsystem for Linux,简称 WSL。 在 2019 年,微软又基于 Hyper-V...
【实用工具】使用ImageMagick压缩图片
在整理博客配图、摄影照片或网页图片素材时,图片太大不仅拖慢加载速度,还会占用大量空间。今天介绍一个超级实用的命令行工具:ImageMagick,可以快速、批量压缩或缩放图片 🧰 安装 ImageMagick(macOS)1brew install imagemagick ✂️ 操作示例将图片质量到 50%1234# MacOSmagick input.jpg -quality 50 output.jpg# Ubantu的旧版命令是mogrifymogrify 202505_front.JPEG -quality 30 202505_front.JPEG 将/Users/tianlejin/Desktop/2025-03里的所有图片都压缩到原来质量的50%假设你有一堆 .JPEG 图片在目录 /Users/tianlejin/Desktop/test/,可以这样压缩并输出到 resized 子文件夹: 1234# MacOSmagick mogrify -quality 50...
【Linux】Slurm任务调度系统的使用
📌 什么是 Slurm? 在使用高性能计算(HPC)集群时,Slurm 是最常见的任务调度器之一。 Slurm(Simple Linux Utility for Resource Management)是一个开源的集群资源管理和作业调度系统,用于管理节点资源、调度任务执行,广泛用于科研计算和深度学习训练 🧰 常用命令一览 命令 作用 示例 sinfo 查看当前集群节点状态 sinfo squeue 查看正在运行或排队的任务 squeue -u $USER srun 启动一个交互式任务或直接运行命令 srun --pty bash sbatch 提交一个批处理任务脚本 sbatch job.sh scancel 取消任务 scancel 123456 📝 1. sinfo —— 查看节点状态1sinfo 这个命令可以看到所有节点的状态,如哪些是空闲(idle)、正在使用(alloc)、维护中(down)等。例如: 1234PARTITION AVAIL TIMELIMIT NODES STATE NODELISTcpu* ...
【实用工具】使用exiftool批量按拍摄时间重命名照片
在整理照片时,通常会遇到一堆混乱命名的文件,例如 IMG_1234.JPG、DSC0001.JPG……我们可以用一行命令,就把所有照片按「拍摄时间」重命名。 本文介绍一个强大却小巧的命令行工具:ExifTool,让你的照片重命名井井有条~ 💡 什么是 ExifTool?exiftool 是一个跨平台的命令行工具,可以读取和写入媒体文件中的元数据(如照片的拍摄时间、设备信息、GPS 等)。我们可以用它从 EXIF 中提取拍摄时间并重命名文件。 🛠 安装 ExifTool(以 macOS 为例)官网下载:https://exiftool.org/ 🌰 例子:将2025-03文件夹内的所有文件按时间戳重命名,精确到秒以下命令将当前目录下的所有 JPG 文件,重命名为拍摄时间的格式,例如 20250312_153045.jpg: 12cd /Users/tianlejin/Desktop/2025-03exiftool '-FileName<CreateDate' -d "%Y%m%d_%H%M%S%%-c.%%e"...
【旅行】2025毕业旅行之阿勒泰游记
【6.5-day1】西安-阿勒泰-布尔津县-禾木村 【住】禾木村老村【景点】金山市场、禾木村 早晨4点起床,6点抵达机场,从登上灰机🛫的那一刻起,旅行就已经开始了 前半程比较困倦,后半程到了新疆上空,见到了无比震撼的地貌:有一望无际的沙漠无人区、有沙漠中依河流而建的村庄、有一半沙漠一半农田的奇观…这些更加剧了我们对于神秘阿勒泰的向往 落地阿勒泰拿到车后,先去当地金山市场采购了卡式炉、蔬菜、鸡蛋、面条等 随后直奔禾木,因为阿禾公路没有开通(每年7月开通),只能途经布尔津。中间还发生了个小插曲,开了一百公里发现无人机落在了飞机上😭,因此只能折返回去机场再拿一趟😭😭 到达禾木已是晚上8点,但好在新疆天黑的晚,把车停在村外,进村又坐了一个小时大巴,后又转公交才到达,真不容易🥹 但当我们看到民宿小木屋和村中袅袅炊烟的那一刻,所有疲倦和劳顿都被治愈了😍 ...
【LLM】知识图谱技术简介
概念知识图谱(Knowledge Graph, KG):将知识进行结构化表示。具体来说,知识图谱是一种以实体(Entity)和关系(Relation)为核心的语义网络,通常以三元组 (head entity, relation, tail entity),即 ⟨h, r, t⟩...
迁移前博客目录
Linux笔记Linux系统相关 Linux文件系统 Linux环境变量 Linux设定定时程序 Linux文件操作 Linux重定向和管道命令 Linux手动编译软件 grep的用法 Linux创建账户并赋予管理员权限 Linux更改用户/组id Linux挂载命令mount详解 Linux修改MAC地址 Linux软件 终端复用神器tmux的使用 anaconda3的安装和使用 jupyter notebook的安装和使用 Linux安装JupyterLab conda打包环境并迁移 使用jupyter nbconvert后台执行jupyter notebook Slurm任务调度系统的使用 环境配置笔记Linux相关 CentOS 7升级gcc版本 yum安装软件报错lvm.LibLVMError: (0, ‘’) linux编译编译错误‘GLIBCXX_3.4.20’ not found linux升级cmake Ubantu安装深度学习环境全记录 R语言相关 R语言安装外源包编译报错:‘for’ loop initial declarations...
【博客搭建】把博客从本地Mac mini迁移到服务器
想来想去,还是决定把博客托管到服务器上,放在 Mac mini 上毕竟不是长久之计。开整! 服务器安装必要环境 安装npm 1234567# 添加 Node.js 官方源curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -# 安装 Node.js 和 npmsudo apt install -y nodejs# 确认安装成功node -vnpm -v 安装Hexo CLI 123sudo npm install -g hexo-cli# 确认安装成功hexo -v 安装项目依赖 1234# 进入博客项目目录cd /home/txm/myblog/txm_blog# 会根据 package.json 自动安装所有依赖npm install 生成静态网页并测试本地部署123456# 生成 public/ 文件夹里的静态网站内容hexo clean; hexo g# 部署运行博客,注意这里输入实例端口hexo s -p 50005#...
【旅行】2025春关西旅行随记
本次关西旅行我们规划了9天8晚,在此流水账式地记录下~ Day1-20250415-上海浦东机场✈️关西机场【初见京都】 到达后搭乘 Hello kitty 主题列车🚄 Haruka 从机场前往京都 酒店定在五条地铁站附近。休整片刻后粗门觅食,google map上找了一家评分 4.6 的小店,品尝了前菜(包括海草,鱼罐头以及蒸茄子)、三种海鲜的刺身、汤豆腐、荞麦面。小店很精致,价格也比较不菲。两人花费6100円💴。 晚上步行至鸭川附近,赏京都夜景,又逛了逛便利店,购买日本特产😝 ...
【博客搭建】Mac mini + Cloudflare Tunnel 搭建免费HTTPS图床
📌动机此前用的是七牛云的图床方案, 折腾好久之后,发现这种方案存在问题: 存储空间绑定源站域名,产生的流量是计费的。(计费规则) 存储空间绑定CDN域名,需要备案,备案有需要云服务器,ip等等,手续也十分麻烦 这个方案只能用http,会导致常规状态下图片基本无法显示。想用https的话,有以下限制: 需要ssl证书(这个好解决,可以申请免费证书) 不管国内还是海外,https流量都要收费。(计费规则) 国内https需要域名备案。 🚀新方案:Mac mini + Cloudflare Tunnel 搭建免费HTTPS图床1️⃣ 在本地搭建图片静态服务器(Nginx)12brew install nginxmkdir -p ~/Desktop/blog-imgs # 创建博客图片的文件夹 编辑配置文件 /opt/homebrew/etc/nginx/nginx.conf,添加或修改以下内容: 12345678910server { listen 8080; server_name localhost; location...


