AI Agent(从 Chatbot 到生产级 Agent)

AI Agent(从 Chatbot 到生产级 Agent) AI Agent是LLM应用的高级形态,能够自主规划、执行任务并与环境交互。 经典论文: Yao, S., et al. (2022). “ReAct: Synergizing Reasoning and Acting in Language Models.” ICLR. [论文链接] - ReAct框架,Agent核心范式 Wei, J., et al. (2022). “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.” NeurIPS. [论文链接] Wang, G., et al. (2024). “A Survey on Large Language Model based Autonomous Agents.” arXiv. [论文链接] - Agent综述 一、整体演进路径 Chatbot → Tool Use → Agent → Production Agent(工业级) 演进说明: Chatbot: 仅能对话,无法执行外部操作 Tool Use: 能调用单一工具 Agent: 能自主规划并执行多步骤任务 Production Agent: 工业级,具备错误处理、权限控制、监控等能力 二、核心概念拆解 1️⃣ Chatbot LLM + Prompt ...

March 14, 2026 · Xiao Xiangtao

Prompt Engineering

Prompt Engineering https://www.coursera.org/learn/chatgpt-prompt-engineering-for-developers-project/home/welcome Prompt Engineering(提示工程)是设计和优化输入提示(prompts)以引导大语言模型生成期望输出的技术。这一领域随着GPT-3的发布而兴起,是连接用户意图与模型能力的关键桥梁。 经典论文: Brown, T. B., et al. (2020). “Language Models are Few-Shot Learners.” NeurIPS. [论文链接] - GPT-3论文,首次系统展示了prompt engineering的潜力 Wei, J., et al. (2022). “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.” NeurIPS. [论文链接] 1. Prompting Principles(提示原则) Principle 1: Write clear and specific instructions(编写清晰具体的指令) 清晰性(Clarity)和具体性(Specificity)是prompt设计的核心原则。研究表明,模糊的指令会导致模型输出不确定性增加,而具体的指令能显著提升输出质量。 Tactic 1: Use delimiters to clearly indicate distinct parts of the input 分隔符(如 ```、"""、—、<>)能帮助模型识别输入的不同部分,避免混淆。这在处理包含多段文本或代码的任务时尤为重要。 Tactic 2: Ask for a structured output 要求结构化输出(如JSON、HTML、Markdown表格)便于后续程序处理,是构建AI应用的最佳实践。 ...

March 12, 2026 · Xiao Xiangtao

RAG (Retrieval-Augmented Generation)

RAG RAG (Retrieval-Augmented Generation) 是一种结合信息检索与文本生成的AI架构,通过检索外部知识库来增强LLM的回答能力。 经典论文: Lewis, P., et al. (2020). “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.” NeurIPS. [论文链接] - RAG开山之作 Guu, K., et al. (2020). “REALM: Retrieval-Augmented Language Model Pre-Training.” ICML. [论文链接] Izacard, G., & Grave, É. (2021). “Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering.” EACL. [论文链接] - RAG的另一种实现 1. Context Window(上下文窗口) 概念 Context Window 指的是 大语言模型在一次推理时能够读取和理解的最大文本长度。 经典论文: Dai, Z., et al. (2019). “Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context.” ACL. [论文链接] - 突破固定上下文长度的开创性工作 通常包含: ...

March 8, 2026 · Xiao Xiangtao

Transformer概念与理解

Transformer:从入门到产品视角 📚 导论:为什么Transformer如此重要? Transformer模型是由Vaswani等人在2017年发表的论文《Attention Is All You Need》中提出的神经网络架构。它彻底改变了自然语言处理领域,成为现代大语言模型(如GPT、BERT、LLaMA等)的基石。 核心创新:完全抛弃传统的CNN/RNN架构,仅使用注意力机制来捕捉序列依赖关系,实现了两大突破: 并行计算:解决了RNN无法并行的问题,大幅提升训练速度 长程依赖:解决了RNN/LSTM在处理长序列时的梯度消失问题 ...

February 20, 2026 · Xiao Xiangtao

初步体验:用扣子生成一个雅思口语练习网页

3.15更新: //3pvtkwzwrm.coze.site coze生产环境的参数是部署时系统自动赋值的,不需要自己填API key之类的参数。重新做了一个在生产环境就跑通了,具体方法是让AI基于前一个应用生成一个详细的提示词包含功能点、技术架构等内容,感觉提示词专业的话对于编码还是有帮助的,但是依然会出现细节上的bug,需要进行两三次修复。功能出了问题好排查,配置或者网络等细节出了问题不是程序员的话真的不太好排查,也许是我对一些技术细节还不够了解。 最近正好考虑雅思,新东方的雅思小程序推出了一个AI练真题的功能,参考这个试了下能否用扣子直接生成一个类似的功能。 功能介绍: 根据选择的题型随机生成题目,点击开始录音可以根据题型限制录音时长。录音结束后进行语音识别,并通过AI对识别结果进行分析,给出评分、改进建议和AI扩写的答案。 首页: 这里题目下方的灰色提示是AI自动补全的功能,prompt并未做要求,同时录音时间的文字提示也是AI补全的,页面也是响应式,交互总体比较友好。我也没有对UI风格做要求,感觉AI味比较浓(非贬义),第一遍生成的字体较小做了一次调整。 评分页: 在扣子上直接部署后可能是api的原因,生成环境语音识别功能没有跑通,但是在测试环境实现了完整的功能。 整个过程大概用了两个小时,修复bug的过程比较顺畅,会进行自测基本功能问题提了都可以修复。但是涉及到接口调用,环境部署等导致的问题时,修复bug的技术要求就直线上升了,需要你能够发现比较具体的问题并准确描述,否则的话只是基于前端的报错,AI可能无法定位到准确问题,对无开发背景的人来说还是有难度。

January 28, 2026 · Xiangtao XIAO

bitwarden_rs+nginx反向代理配置记录

bitwarden是一个开源的密码管理器,可以部署在私有服务器上。官方的bitwarden对服务器配置要求较高,网友开发了bitwardenrs适用于小用户,对配置要求低不怎么占内存。本次采用安装docker后在docker上安装bitwardenrs和nginx,通过nginx反向代理实现HTTPS加密访问bitwarden的方法。 服务器配置:Tencent Hong Kong centOS 7.6 1C1G 25GSSD 30M峰值带宽 服务器上已经运行bitnami wordpress堆栈,因此80和443端口都被apache占用,挂了个人博客。网络上大部分blog都采用nginx做反向代理,由于不懂技术因此也用nginx照做。 安装Docker docker是一个虚拟机,他打包了多个不同主流应用,可以很方便的安装这些应用,并且每个应用都是以容器的形式存在,与宿主机的环境是隔离的,这些应用的配置与运行可以干净的删除不会对宿主机造成影响。 docker中有images 镜像和container 容器,比如我可以在宿主机下载一个nginx镜像,然后我制作两个容器:nginx_1 和 nginx_2,两个容器中都可以通过镜像安装nginx应用,两个nginx是分开的,可以各自用于不同用途,方便管理。 yum install -y docker #安装docker systemctl docker #启动docker 安装bitwarden_rs docker有几个需要事先理解的概念,比如 目录映射。我们可以让容器的目录去映射一个宿主机的目录,简单来讲就是用一个宿主机的目录当做容器应用的目录,这样要修改应用配置或者上传文件只要动宿主机的目录就可以。 我们在run 应用的时候添加以下形式的配置: -v /library:/library #':'前是要映射的宿主机目录,后面是容器应用的实际目录 端口映射:容器是一个虚拟环境,比如nginx监听的80和443端口,在我的宿主机中这两个端口被Apache占用了,因此我可以分配另外两个端口与容器的80端口和443端口进行映射。 这样一来避免了端口冲突,比如访问//domain:4444实际上就会通过容器的443端口被nginx监听到。需要注意的是通过这种方式要在防火墙打开4444端口,否则浏览器还是无法访问的。 -p 8088:80/tcp 4444:443/tcp #8088映射到80 4444映射到443 映射端口根据需要选择空闲端口即可 mkdir /data/bitwarden #建立宿主机映射目录 docker run -d \ --rm \ --name bitwarden \ -p 8085:80 \ -p 3012:3012 \ -e SIGNUPS_ALLOWED=true \ -e WEB_VAULT_ENABLED=true \ -e DOMAIN=//mydomain.cn \ -v /data/bitwarden:/data \ bitwardenrs/server:latest 上面命令的各个参数含义如下: -d 在后台运行 --rm 容器停止运行后,自动删除容器文件 --name bitwarden容器的名字为bitwarden -p 8085:80 容器的端口80映射到8085,在Nginx配置 -p 3012:3012 容器的端口3012映射到3012 -e SIGNUPS_ALLOWED=true 设置环境变量SIGNUPS_ALLOWED=true允许用户注册 -e WBE_VAULT_ENABLE=true 设置环境变量WBE_VAULT_ENABLE=true -e DOMAIN=//mydomain.cn设置域名,需要替换成自己申请的域名 -v /data/bitwarden:/data 容器的/data/目录映射到宿主机的/data/bitwarden目录 安装nginx mkdir /data/nginx #建立宿主机映射目录 # 安装nginx docker run \ --rm \ --name nginx \ -d \ -p 8088:80/tcp \ -p 2443:443/tcp \ nginx # 由于不知道nginx目录下的内容,我们将容器的目录复制到宿主机目录/data下 docker cp nginx:/etc/nginx /data # 创建用于存放ssl证书的文件夹,将申请到的.cert和.key证书文件上传到这个文件夹 mkdir /data/nginx/certs 修改/data/nginx/conf.d/default.conf文件添加以下内容,启用https访问并对bitwarden进行反向代理 ...

March 10, 2021 · Xiangtao XIAO

wordpress配置问题记录

Linux基本语法 复制 cp 要复制的文件路径 目标路径 cp -r 递归复制整个目录 删除 rm -f 强制删除 -r 递归删除目录 改名 mv 原文件 新文件名 更改文件权限 chmod 777(完全写入权限) 要更改的目录或文件 vim编辑器显示行号:输入指令:set number 跳转到制定行:输入指令:n(要跳转的行号) WP-Super-Cache问题解决 将插件wp-super-cache中的wp-cache-config.php与advanced-cache.php复制到wp-content目录下。 临时更改wp-content权限为777 在wp-config.php中增加以下内容:1.在require_once(ABSPATH.’wp-settings.php’);前增加define(‘WP_CACHE’, true); 2.增加define(‘WPCACHEHOME’, ‘插件wp-super-cache绝对路径’); 修改完成后应该可以进入设置界面,在专家模式下更新设置如果出现要求更新Mod_write规则则按要求进行更新。 对于采用bitnami的wordpress堆栈环境,由于其对文件访问权限的安全设置较严,安装时同样会弹出以上情况的警告。无需理会,连接到服务器执行以下指令:(事实上应当优先采用这种更改权限的做法,未生效再尝试上方操作) sudo chmod g+w /YOURADRESS/apps/wordpress/htdocs/wp-config.php 之后禁用插件并重新激活即可。完事以后要将文件权限复原,执行: sudo chmod g-w /YOURADRESS/apps/wordpress/htdocs/wp-config.php 更多内容,在bitnami.com官方文档的trouble shooting部分有详细介绍。

October 15, 2020 · Xiangtao XIAO

交互装置入门基础知识

欧姆定律 - I=U/R 面包板的用法 - 面包板通常指免焊面包板,板子上有很多小插孔,专为电子电路的无焊接实验设计制造。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。 百度百科 上拉/下拉电阻 - 如果一个线路中的电压处于不确定的状态(例如一个引脚不和任何其它回路连通时),那我们就说它的电压是浮动的,他会随着时间不断变化,跳动,而且很容易受到外界环境的影响。处于这种不确定状态的电路会被随机解释为高或者低电平。 这种现象也叫电子噪声。为了让某个引脚保持高电平或者低电平,我们可以将该引脚接地或者接一个大阻值电阻(arduino的引脚内置了上拉电阻,如果需要外接上拉电阻,arduino建议的上拉电阻为10KΩ)。 参考 二极管 - 二极管是用半导体材料(硅、硒、锗等)制成的一种电子器件。它具有单向导电性能, 即给二极管阳极和阴极加上正向电压时,二极管导通。 当给阳极和阴极加上反向电压时,二极管截止。 因此,二极管的导通和截止,则相当于开关的接通与断开。其电路图如图所示。 电容 - 两个相互靠近的导体,中间夹一层不导电的绝缘介质,这就构成了电容器。当电容器的两个极板之间加上电压时,电容器就会储存电荷。电容器的电容量在数值上等于一个导电极板上的电荷量与两个极板之间的电压之比。电容器的电容量的基本单位是法拉(F)。在电路图中通常用字母C表示电容元件。 百度百科

October 15, 2020 · Xiangtao XIAO

Arduino 入门基础知识总结

根据arduino uno板子的接口进行解释,如图 L指示灯 - 接13号引脚(13号引脚内置了电阻),arduino出厂烧录了闪烁程度,板子通电后L灯闪烁。 TX/RX指示灯 - 串口通信时闪烁,分别在传输数据与接收数据时闪烁。 上排0~13接口 - 数字I/O口,可以接受以及接受数字信号(二进制形式表示的信号),arduino用电平高低来表示0,1,低电平(-0.51.5V)表示0,高电平(35.5V)表示1。用 pinMode(pin, mode) 函数来指定要用的引脚编号以及其配置模式(INPUT 输入0,OUTPUT 输出1,INPUT_PULLUP输入上拉模式)。在输入模式下,可以用 digitalRead(pin) 读取输入的数字信号;在输出模式下,用 digitalWrite(pin, value) 来指定引脚及输出的电平高低(LOW 0, HIGH 1)。 ?digitalRead()函数返回什么,!digitalRead()代表什么?如果代表true,则digitalRead()返回一个false,人体热释电持续输出低电平,在检测到人时输出高电平(范围和持续时间可以用电位器来调节),则正常情况下!digitalRead是!低电平,其代表了什么,还是说没有输出值,做个试验检测。 PWM Pulse Width Modulation 脉冲宽度调制 ~符号 - 模拟信号Output,模拟信号用连续变化的物理量来表示信息,上排接口中有 ~ 标志的接口可用于输出模拟信号。Arduino用05V的电压来表示模拟信号,通过输出周期固定(约490HZ)的方波,通过改变高低电平在每个周期中的比例(占空比)来得到近似输出不同电压的效果。具体方法为调用analogWrite(pin, value)函数,pin为指定引脚,value是PWM的脉冲宽度,范围为0255(将5v电压模拟成255段进行调整,8位精度,255=11111111)。 下排A0~A5 - 模拟信号输入引脚,用analogRead(pin)函数读取引脚上输入电压的大小。模拟输入引脚带有ADC(Analog-to-Digital Converter,模/数转换器)功能,arduino的模拟输入功能有10位精度,可以将读取到的05V电压转换为01023(1023的二进制为1111111111)的整数形式表示。 TX/RX引脚(1,0号) - transmit/receive,用于串行通信,Arduino的USB口通过一个转换芯片(通常为ATmege16u2)与这两个串口的引脚连接。该转换芯片通过USB接口在计算机上虚拟出一个用于与arduino通信的串口。串行通信是相对于并行通信的概念,并行通信占用的I/O口较多,而arduino的I/O口资源较少,因此采用串行通信方式。 下排左侧 - VCC表示电源,有3.5和5V两个接口,GND(阴极,接地)两个比较常用。

October 13, 2020 · Xiangtao XIAO

NameSilo Web hosting 云主机建站服务购买与使用体验

namesilo的域名在众多服务商里价格是比较实惠的,.com域名只要$8.99,近年新推出了web hosting服务,价格也比较实惠,最便宜的一个网站20G存储空间的套餐每月只要$2.39元(年套餐)。最近有一个做网站的需求,腾讯的学生优惠已经用过了,又不想备案,正好找到这个便宜的尝试一下。 购买 namesilo的hosting购买服务在namesilo新版网站,进入 namesilo.com 首页就能看见 总共有3个套餐,可以按年或者按月购买,按年购买会更便宜。购买过程非常简单,选择对应套餐点击Get Started。 然后会让你选择域名,这一步也提供3种选择: 1.如果你没有域名的话,可以直接搜索选择一个可注册的,然后和云主机套餐打包在namesilo购买; 2.如果你在其他注册商处(比如腾讯云等)已经购买了域名,输入你购买的域名进行绑定即可,注意要输入你希望是主网站的域名比如www.test.com,namesilo会自动增加域名解析; 3.你也可以选择将其他注册商处购买的域名转移至namesilo(不过注意如果你是新购买的域名通常有一个期限限制域名转出)。 我选择了绑定我在腾讯云购买的域名,选择好域名后点击continue即跳转到确认订单页面(注意:确认订单页面在旧版网站,新旧网站功能混在一起确实比较容易让人迷惑),不用犹豫点击确认订单,然后在付款页面选择Alipay,输入你的支付宝账号然后扫二维码付款即可。 域名解析 !!!购买完成以后,在新版网站是找不到你购买的host的,这点很让人迷惑,在新版网站,你可以选择点击自己的账户信息来跳转到旧版网站,然后在侧边栏选择hosting manager,即可进入主机管理页面,在这里你会看到自己购买的主机,名称就是你之前绑定的域名。 点击链接图标,就进入了你的主机的cpanel管理面板。第一次登陆要设置账号密码邮箱配置等,cpanel支持中文(在偏好-更改语言处选择语言),可视化界面简单易懂,网上已经有很多介绍。 购买完成后就可以前往控制面板进行相关设置了,namesilo根据你在购买时绑定的域名已经自动为该域名添加了域名解析,包括test.com,www.test.com,ftp.test.com以及mail解析等,如果购买套餐时你选择在namesilo购买一个新域名,那么一切已经就绪,在cpanel面板选择安装wordpress即可开始建站。如果像我一样绑定了其他注册商处的域名,虽然namesilo已经添加了相关解析,但这些解析是基于namesilo自家DNS服务器才会生效的,这里有两种选择: 1.到购买域名的域名注册商处将域名的DNS解析服务器地址改为namesilo的DNS服务器地址使解析生效: NS1.DNSOWL.COM NS2.DNSOWL.COM NS3.DNSOWL.COM 2.如果不希望更换DNS服务商,在cpanel面板的域名Zone找到自动添加的所有域名解析,然后将他们全部复制添加到自己的域名注册商处的域名解析中,同样可以让解析生效。 做完这些,在cpanel面板安装好wordpress,在浏览器输入你的域名就可以看到wordpress主页了! SSL证书实现HTTPS 购买的主机已经添加了自签名的SSL证书,但是自签名证书在用浏览器访问时会报不安全,一个第三方签名还是有必要的,namesilo自家在已购主机管理页面就有SSL证书购买服务,不过要花钱,有很多免费提供签名的第三方机构,我直接申请了腾讯云提供的TrustAsia 1年期免费证书(在云产品-SSL证书处申请即可)。 申请下来后下载证书得到.key及.crt证书文件(host使用的是apache服务器,要选对版本),找到cpanel面板的:安全-SSL/TLS选项,删除已有自签名证书文件,上传自己的证书文件,然后选择[管理SSL主机],选择证书对应的域名,点击按域自动填充,上传的证书会被自动选中填充,点击安装证书即可。 在cpanel面板的:域-域选项找到自己的域名,选择启用Force HTTPS Redirect,至此,网站即可安全的用HTTPS进行访问了。 CloudFlare CDN加速 在cpanel安装好wordpress后,就是进入wordpress后台搭建网站,但是实测在中国境内网页的访问速度很慢,并且容易丢包。为了提高访问速度,需要将网页进行静态缓存以及CDN加速。 类似七牛云等国内免费CDN服务要求你的主域名是备案了的,没有备案要选择海外CDN, CloudFlare 提供个人免费版CDN加速服务,推荐这个 教程,注意登录cloudflare的外国官网,中国网站注册是企业版的,注册完就有客服打电话给你谈业务了…CloudFlare的CDN需要将DNS服务器地址转成他们家的,生效时间大概十分钟不到。 在wordpress安装一个静态缓存插件,比如wp fast cache,在CDN选项选择cloudflare,需要输入API码,然后在cloudflare的Overview的侧边栏点击get your API token,选择global API,点击view,复制API代码到wordpress中即可,一路点击确认,cdn配置就完成了。 配置CDN及静态缓存后,网站的访问速度得到很明显的改善,访问变的更稳定,虽然相较国内的网站速度稍慢,但是对于像个人博客之类的小网站完全可以接受了。 邮箱 namesilo的host已经配置好了邮箱服务,发送邮件没问题,但是我用163发的邮件它却收不到,在wordpress设置中更换邮件地址,发现验证邮件也发不到我的邮箱上。因此使用了第三方的SMTP服务,下载了wp SMTP mail插件,SMTP服务用的是腾讯云的企业邮。 将原本的地址解析中的邮件地址解析删掉,添加腾讯企业邮的地址进去,就可以使用腾讯企业邮箱的服务了,方法很简单,注册一个腾讯企业邮箱账号(免费的),然后按指导设置完成即可。增加一个业务邮箱账号,比如mail@designaxt.com,然后得到对应的邮箱密匙,在wp SMTP mail选择其他SMTP,输入密匙,腾讯企业邮的服务器地址及端口号,保存更改就可以用腾讯的服务发邮件了,其他家应该类似。

May 25, 2020 · Xiangtao XIAO