目前使用大语言模型进行高效编程十分火爆,于是研究一下使用大语言模型进行高效编程的工作流,希望不要落后太多。
AI 编程工具
目前市面上的工具主要有三种形态:
一是“IDE插件”,如GitHub Copilot,在你熟悉的编辑器里提供AI辅助;
二是“AI原生IDE”,如Cursor、Trae,它们是专为AI协作而重构的开发环境;
三是“终端智能体”,如Claude Code、Codex、DeepSeek-TUI,适合在命令行环境下工作;
最近一段事件,基于 LLM 的 Agent 非常火爆,比如 OpenClaw 龙虾。那么什么是 AI Agent,基于 LLM 的 Agent 带来了哪些突破呢?值得探究一下。
在生成式人工智能的背景下,AI 代理(也称为复合 AI 系统或自主 AI)是一类能够在复杂环境中自主运行的智能代理。自主 AI 工具优先考虑决策而非内容创建,并且不需要持续监督。
AI 代理具有几个关键属性,包括复杂的目标结构、自然语言接口、能够在无需用户监督的情况下独立行动的能力,以及集成软件工具或规划系统。它们的控制流程通常由大型语言模型(LLMs)驱动。代理还包括用于记忆先前用户-代理交互的记忆系统和用于组织代理组件的编排软件。
AI 代理的一个常见应用是任务的自动化,例如根据用户的提示请求预订旅行计划。
AI Agent = LLM(推理) + Tools(工具) + Planning(规划) + Memory(记忆)
其执行流程如下:
1 | 用户输入 |
| 类型 | 特点 | 适用场景 | 代表框架 |
|---|---|---|---|
| ReAct | 推理+行动交替 | 单步任务、工具调用 | LangChain |
| Plan-and-Execute | 先规划再执行 | 复杂多步任务 | BabyAGI |
| Autonomous | 自主循环运行 | 长期目标任务 | AutoGPT |
| Multi-Agent | 多智能体协作 | 复杂系统、角色分工 | MetaGPT |
1 | ┌─────────────────────────────────────┐ |
读《厨房实验室》有感:日常生活中,科学无处不在。
碳水化合物,含糖的天然化学物质。
食物的3种主要成分是蛋白质、碳水化合物和脂肪。
脂肪每克含9卡路里热量,而蛋白质和碳水化合物每克含4卡路里热量。
脂肪分子由两部分组成,即甘油部分和脂肪酸部分。
脂肪酸可分为饱和脂肪、多不饱和脂肪和单不饱和脂肪。
小苏打(又名碳酸氢钠)是一种单一的化学物质,在厨房中是胀发,产生数以百万计的二氧化碳小气泡,从而使烘焙产品胀发。
1千焦的热量可以让10克水升高25摄氏度。
从每克脂肪中获得的能量是38焦耳,而从每克蛋白质或者碳水化合物中获得的能量为16.7千焦左右。
根据茶叶的加工方式,真正的茶分为三种类型:未经发酵的绿茶、半发酵的乌龙茶和经过酶类发酵而导致其中鞣酸类化合物氧化的红茶。
作者对AI的思考很深刻,有见地,浅显易懂,值得一读。
AI 生成的内容,是基于训练数据中的统计模式”拼接”而成的。当这些统计模式碰巧和事实一致时,输出是”正确的”。当统计模式偏离了事实,输出就是”幻觉”。
三问判断法判断AI是否能够解决你的问题:
阅读完《动手学深度学习》第二版,深受启发。为了巩固成果,决定动手使用pytorch实现卷积神经网络LeNet,以掌握构建、训练、测试深度学习模型的流程和方法。
使用Python 3.12.10, 执行如下命令:
1 | # 创建虚拟环境 |
1 | import torch |
DIS是美国国防部、北约及其盟国实时/虚拟世界建模与仿真领域应用最广泛的协议之一。Open-DIS 是该标准的免费开源实现,支持 Java、C++、Python、JavaScript、Objective-C 和 C# 等多种编程语言。
DIS 是由仿真互操作性标准组 (SISO) 制定并经 IEEE 批准的 IEEE 标准 (IEEE-1278.1)。它被广泛应用于实时虚拟世界军事仿真中。
DIS 是一种网络协议。它精确描述了数十个协议数据单元 (PDU) 的布局,这些 PDU 包含有关世界中实体位置和方向以及其他诸多信息。这些 PDU 用于描述电子战、后勤、碰撞和仿真管理。
游戏的网络同步机制有很多,总体来看可以分为下面三类:
DIS使用 Peer-to-Peer 方式进行状态的网络同步。
绿联 DX4600 NAS 支持Docker服务,可惜只能在内网使用,必须掌握内网穿透技术,才能在外网访问Docker提供的服务。下面介绍如何在绿联 DX4600 NAS 配置内网穿透的方法。
NAT 是网络地址转换的缩写。它是一种在网络中广泛使用的技术,主要作用是在数据包通过路由器或防火墙时,修改数据包中的源IP地址或目标IP地址。
NAT主要解决以下问题:
NAT常见类型主要有三种:
内网穿透的核心原理,可以通俗地理解为:让没有公网IP的设备,通过一个有公网IP的中转服务器,和外部设备建立数据通道。
其工作流程分为两步:
第一步:建立隧道(内网设备主动连接服务器)
第二步:数据转发(打给服务器,转给内网)
这个过程就是内网穿透的本质:数据全部经过服务器中转。
为了提高速度,更高级的穿透(如P2P模式,即点对点模式)会尝试让两个内网设备直接连接。原理如下:
这就是P2P打洞技术,也是P2P(如BT下载)和视频通话流畅运行的基础。
NAT的不同“性格”(类型)直接决定了打洞的成败。主要有以下四种类型:
| NAT类型 | 工作原理 | 打洞成功率 |
|---|---|---|
| 完全锥型 | 映射关系建立后,任何外部主机都可以通过这个公网端口访问内网主机。 | ✅ 最容易 |
| 受限锥型 | 只有内网主机主动发送过数据的外部主机(不限端口),才能通过公网端口向内网发起通信。 | ✅ 较容易 |
| 端口受限锥型 | 要求更严格,只有内网主机主动发送过数据的特定(IP+端口)组合,才能向内网通信。 | ✅ 有条件 |
| 对称型 | 最严格。每次内网主机向不同目标主机发起连接,NAT都会重新分配一个新的公网端口,导致无法预测对方的“入口”。 | ❌ 基本无效 |
请参考:
目前绿联DX4600提供的Docker镜像仓库均无法下载Docker镜像,可修改使用轩辕镜像下载Docker镜像。
使用cpolar提供的免费内网穿透服务,可实现远程登陆绿联 DX4600 进行操作。
DX4600操作系统是基于OpenWrt系统的,因此安装 cpolar 请参考:
具体步骤如下:
1 | # 下载公钥 |
Transformers是为 PyTorch 打造的先进的机器学习工具。Transformers 充当跨文本、计算机视觉、音频、视频与多模态的最先进机器学习模型的「模型定义框架」,同时覆盖推理与训练。
它将模型的定义集中化,使整个生态系统对该定义达成一致。transformers 是跨框架的枢纽:一旦某模型定义被支持,它通常就能兼容多数训练框架(如 Axolotl、Unsloth、DeepSpeed、FSDP、PyTorch‑Lightning 等)、推理引擎(如 vLLM、SGLang、TGI 等),以及依赖 transformers 模型定义的相关库(如 llama.cpp、mlx 等)。
pip 下载的包太大,需要清除,可使用如下命令查看:
1 | # 查看 pip 下载包缓存位置 |
Transformers 支持 Python 3.9+,以及 PyTorch 2.1+。
使用 venv 或 uv(一个基于 Rust 的快速 Python 包与项目管理器)创建并激活虚拟环境:
1 | # venv |
在虚拟环境中安装 Transformers:
1 | # pip安装 pytorch gpu 版本 |
1 | import torch |
使用 Pipeline API 一步上手。Pipeline 是一个高级推理类,支持文本、音频、视觉与多模态任务,负责输入预处理并返回适配的输出。
实例化一个用于文本生成的 pipeline,指定使用的模型。模型会被下载并缓存,方便复用。最后传入文本作为提示:
1 | from transformers import pipeline |
transformers自动下载模型的保存位置:C:\Users\jack.cache\huggingface\hub\,在模型下载以后,可以保存到其他位置。
由于某些原因,国内的服务器可能无法直接访问huggingface.co。可以通过配置使用其镜像站。例如:hf-mirror.com。
hf-mirror.com是用于镜像 huggingface.co 域名。作为一个公益项目,致力于帮助国内AI开发者快速、稳定的下载模型、数据集。
下面介绍从 hf-mirror.com 下载大模型的方法:
1 | Script\activate |
1 | set HF_ENDPOINT=https://hf-mirror.com |
1 | # 下载大模型默认保存位置:C:\Users\jack\.cache\huggingface\hub\ |
1 | # 自定义数据集保存位置 |
对于银河麒麟桌面版4.0.2,可使用系统已集成的 vino-server 进行远程桌面访问。具体步骤如下:
最近接触到 DDS 中间件,学习一下。
针对实时系统的数据分发服务( DDS )是对象管理组织(OMG)的机器对机器(有时称为中间件或连接框架)标准,旨在通过发布-订阅模式实现可靠、高性能、可互操作、实时、可扩展的 数据交换。
DDS 满足航空航天、国防、空中交通管制、自动驾驶车辆、医疗设备、机器人、发电、仿真和测试、智能电网管理、交通运输系统等 应用领域的实时数据交换需求。
下面从源代码编译安装 Fast-DDS。
使用 vcpkg 安装 Fast-DDS 所需依赖库。
1 | vcpkg install openssl asio tinyxml2 fastcdr foonathan-memory --triplet x64-windows |
在Windows平台编译安装使用 Visual Studio 2019.
FastDDS 依赖 Foonathan Memory(内存管理库),通过源代码编译安装:
1 | cd i:\project\Fast-DDS\ |
FastDDS 依赖 FastCDR(序列化库),通过源代码编译安装:
1 | cd i:\project\Fast-DDS\ |
当所有依赖库都安装后,开始安装eProsima Fast DDS,打开 VS2019的X64本地命令提示符,按如下步骤输入命令:
1 | cd i:\project\Fast-DDS\ |
当执行 cmake -DCMAKE_INSTALL_PREFIX=i:/install/fastdds .. 可能会报找不到 ASIO 的错误,可以编辑 CMakeLists.txt,注释如下代码,再重新运行。
1 | eprosima_find_thirdparty(Asio asio VERSION 1.13.0) |
当执行 cmake –build . –config Release –target install 可能会报如下错误:
1 | 警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 |
请参考以下链接进行处理,主要是配置C++编译选项 /utf-8:
fastddsgen 是 FastDDS 官方提供的 IDL(Interface Definition Language)编译器,用于将 IDL 定义的数据类型转换为 FastDDS 兼容的代码(支持 C++、Python 等语言),自动生成数据序列化 / 反序列化逻辑、类型注册代码等,是 FastDDS 开发的基础工具。
具体安装步骤请参考:
Fast-DDS的简单示例请参考: