【Unity】 HTFramework框架(六十二)Agent编辑器通用智能体(AI Agent)
更新日期:2025年3月14日。
Github源码:[点我获取源码]
Gitee源码:[点我获取源码]
索引
- 编辑器通用智能体
- AIAgent类
- Friday(星期五)
- 启用智能体
- 设置智能体类型
- 开放智能体权限
- 智能体交互
- 资源优化
- 批处理
- 运行代码
- 联网搜索
- 休闲时刻
- 实现思路
编辑器通用智能体
随着人工智能技术的飞速发展,智能体(AI Agents)正逐渐成为人与大模型(如大语言模型)交互的主要方式。智能体是能够执行任务、解决问题并提供服务的 AI 系统,它们通过模拟人类的行为和决策过程,使得与大模型的交互更加自然、高效和个性化。
而本文所讲的编辑器通用智能体,是基于HTFrameworkAI的Assistant模块的一种定制化Agent的思路,旨在协助开发者解决Unity编辑器中的繁琐、复杂、重复操作,帮助提升工作效率,同时舒缓工作情绪。
当然,虽然叫编辑器通用智能体,但这里的通用并非万能的意思,其表达的思想只是:这是一个专用于Unity编辑器的智能体。
Tips:与AI语言助手只会回答问题不同,智能体应当能够在Unity编辑器中做更多的事情。
回顾Assistant:【Unity】 HTFramework框架(六十)Assistant助手(在Unity中接入DeepSeek等AI语言大模型)。
AIAgent类
如要定制智能体,需编写一个继承至HT.Framework.AI.AIAgent的类,其作为智能体的代理对象。
Friday(星期五)
比如我定义了一个代理对象Friday,其名叫星期五(颇有一点AI管家的味道,顾名思义,有他协助我们工作,每天都能像星期五一样保持愉快的心情,因为明天就放假了)。
/// <summary>/// AI智能体:星期五/// </summary>public sealed class Friday : AIAgent{/// <summary>/// 智能体名称/// </summary>public override string Name{get{return "星期五";}}}
启用智能体
在Assistant窗口的设置面板,勾选启用通用智能体:

然后在窗口左下角就会出现按钮编辑器通用智能体,点击该按钮,即可打开智能体窗口:

设置智能体类型
可以看到窗口中间的提示,需要设置智能体类型,比如我前面写的Friday(星期五),由此可知,你可以定制无数个智能体,通过切换不同的智能体类型,来完成不同的工作。
点击右上角设置按钮,在设置面板中切换智能体的类型:

开放智能体权限
由于智能体是能够操作Unity编辑器中的资源、乃至于整个电脑中的资源的,所以我们需要对其控制权限(以防做出危险操作),如上图所示,目前有五种独立权限能够对智能体设置开放或禁用。
Tips:比方一个需要运行代码的智能体,如果未对其开放相应权限,其将无法正常工作。
智能体交互
设置好了智能体类型后,在智能体交互窗口便可以与其正常沟通了,我们可以使用自然语言输入,让其为我们完成指定的工作:

资源优化
比方说,让他为我们优化某一个文件夹中的所有资源:

先选择一个文件夹,然后输入你的要求,点击发送指令按钮:

智能体支持检测某些资源的不合理情况,比如上图中有8张图像是不符合标准的,看看控制台日志:

图像内容复杂度:
1.越接近0,图像内容越单调,也即是越接近纯色;
2.越接近1,图像内容越丰富。
如White图像的内容复杂度为0,也就是说几乎为纯色图像了,所以智能体建议我们压缩其尺寸,我们看看这张图像:

White图像果然几乎就是纯色,尺寸还搞个1024(纯属是吃饱了撑得)。
由此可见,在图像资源量大的情况下,资源优化能够有效处理一些不合标准的资源。
Tips:当然,具体怎么做取决于智能体的行为,这里只是 Friday(星期五) 的行为,仅做参考。
批处理
我们还可以用几乎任意条件来批量检索场景中的GameObject,检索完成后智能体会自动筛选出他们并将其选中,以便我们进一步处理。
比如,检索Font为空的所有Text组件:

当然,为了能够精准使用批处理功能,我们可以直接对智能体@批处理,否则它可能会走偏(取决于大模型的能力)。
比如,检索所有触发器:

比如,检索所有点光源:

比如,检索所有颜色为红色的Text组件:

比如,检索所有缩放为(2,2,2)的物体:

运行代码
当然,我们还可以让其直接运行一段代码:


不过这里报错了,Log.Info方法的参数应为string。
联网搜索
我们还可以让其联网搜索任意内容,同样的为了防止走偏,直接@联网搜索:

休闲时刻
当然,休闲时刻也是不能少的:

Friday(星期五)有记忆库功能,我常听的歌曲他会记下来,当我想要听歌时便优先搜索这些歌曲。

实现思路
最后,Friday(星期五)的工作流程大致是这样的(其实与典型AI智能体差不多):
1.接收用户输入;
2.调用RAG及提示词库,理解用户的任务;(这里定义了RAG私有知识库、提示词库)
3.找对具体的任务后,调用该任务的执行器及记忆库;(这里定义了任务执行器、记忆库)
4.执行器执行任务;(可以是单一任务,也可以是多段任务)
5.完成用户的任务。
当然,Friday(星期五)在这里只是分享了一种智能体的实现思路,大厂会有更牛的玩法,我们就不做横向比较了,最终它只需要能够帮我提供服务即可。
相关文章:
【Unity】 HTFramework框架(六十二)Agent编辑器通用智能体(AI Agent)
更新日期:2025年3月14日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 编辑器通用智能体AIAgent类Friday(星期五)启用智能体设置智能体类型开放智能体权限智能体交互资源优化批处理运行代码联网搜索休闲…...
Elasticsearch 滚动索引(Rollover Index)详解
文章目录 1、滚动索引的作用2、滚动索引的用法2.1 核心概念2.2 实现步骤 3、适用场景4、与其他技术的结合使用5、案例:日志数据的滚动索引5.1 场景描述5.2 实现步骤 6、示例:结合索引生命周期管理(ILM)6.1 场景描述6.2 实现步骤 7…...
学习笔记:黑马程序员JavaWeb开发教程(2025.3.17)
11.5 案例-文件上传-阿里云OSS-入门 出现报错:Process exited with an error: 1 (Exit value: 1),点击exec那一行,出现错误原因:Command execution failed. 在CSDN上找到了解决方法: 之后出现新的报错&…...
python局部变量和全局变量
文章目录 1.局部变量和全局变量2.局部变量2.1 局部变量的作用2.2 局部变量的生命周期 3. 全局变量3.1 函数不能直接修改全局变量的引用3.2 在函数内部修改全局变量的值3.3 全局变量定义的位置3.4 全局变量命名的建议 1.局部变量和全局变量 (1)局部变量 …...
攻克 3D 模型网站建设难题,看迪威系统优势
在当今数字化时代,3D 模型广泛应用于建筑设计、游戏开发、工业制造、文化创意等诸多领域。拥有一个功能强大的 3D 模型网站,对于企业展示产品、设计师分享作品、教育机构开展教学等都具有重要意义。然而,构建这样一个网站却并非易事ÿ…...
仿最美博客POETIZE(简易版)
写在前面 本文章参考于两个开源项目分别为:POETIZE-最美博客,拾壹博客 如有侵权,请联系删除 正题 此页面为拾壹博客修改而成,采用了POETIZE的布局以及背景图片,技术栈:SpringbootVue,主要涉及页面为网站…...
vue/H5的日历组件可简单定制
在components创建riliZujian.vue <template><div class"max_box"><!-- 日历 文字 --><div class"month"><div click"lastMonth" class"monthText13">上月</div><div class"monthText2&q…...
STM32——独立看门狗(IWDG)
IWDG 简介 独立看门狗本质上是一个 定时器 ,这个定时器有一个输出端,可以输出复位信号。该定时器是一个 12 位的递减计数器 ,当计数器的值减到 0 的时候,就会产生一个复位信号。如果 在计 数没减到 0 之前,重置计…...
C++11智能指针简述
一、实现原理 在智能指针对象中有一个裸指针,此指针存储的是动态创建对象的地址,用于生存期控制,能够确保智能指针对象离开所在作用域时,自动正确地销毁动态创建的对象,防止内存泄漏。 使用裸指针存在的问题ÿ…...
fastpdf应用程序错误0xc0000142
原因:一般是部分DLL文件未能被系统注册或者丢失,导致动态库调用错误造成的。 解决方法:将DLL文件重新注册一遍。 手动复制:1.按下“winr”打开运行,在运行框中输入“cmd”,再点击确定; 2.在命…...
Linux操作系统实验报告单(3)文本编辑器vi/vim
一、实验目的 掌握vi/vim编辑器的进入和退出方式了解vi/vim的三种模式熟练vi/vim的操作命令 二、实验内容 1.在家目录下新建一个名为“vitest_name”(“name”为学生姓名拼音)的目录。 ●创建用户目录命令:sudo mkdir /home/vitest_lw3613 …...
linux(centos8)下编译ffmpeg
必要依赖 # centos8有些找不到依赖包,需要手动下载源码编译 sudo dnf install -y epel-release sudo dnf install -y git gcc gcc-c make nasm yasm \libtool autoconf automake cmake \bzip2 bzip2-devel zlib-devel \xz xz-devel x264-devel x265-devel \openssl…...
Centos固定IP配置
虚拟机安装 安装vmware 网盘链接 安装centos7.5 网盘链接 安装教程自行查找 固定IP配置 对安装好的VMware进行网络配置,方便虚拟机连接网络,本次设置建议选择NAT模式,需要宿主机的Windows和虚拟机的Linux能够进行网络连接,…...
AI自动获客系统源码
一、AI自动获客的显著优势 在当今商业环境中,AI自动获客技术正逐渐成为企业获客的新宠。相较于传统的获客方式,它展现出诸多显著优势。首先,AI技术能够通过智能分析和精准匹配,快速找到潜在客户,从而大大提高获客效率…...
3.17[Q]CV Bézier curve
我是计算机视觉学生,?详细解释,越细节越好 我是计算机视觉学生,如何使用de Casteljau 算法来绘制由 4 个控制点表示的 Bzier 曲线?原理是什么?工作流程是什么?详细解释,越细节越好…...
K8S学习之基础三十一:k8s中RBAC 的核心概念
Kubernetes (k8s) 中的 RBAC(Role-Based Access Control,基于角色的访问控制)是一种用于管理用户和服务账户对集群资源访问权限的机制。RBAC 允许管理员通过定义角色(Role)和角色绑定(RoleBindingÿ…...
二叉树算法题实战:从遍历到子树判断
目录 一、引言 二、判断两棵二叉树是否相同 思路 代码实现 注意点 三、二叉树的中序遍历 思路 代码实现 注意点 四、判断一棵树是否为另一棵树的子树 思路 代码实现 注意点 编辑 五、补充 一、引言 作者主页:共享家9527-CSDN博客 作者代码仓库&am…...
第8章 信息安全工程(一)
8.1 信息安全管理 8.1.1 保障要求 网络与信息安全保障体系中的安全管理建设,通常需要满足以下 5 项原则: (1)网络与信息安全管理要做到总体策划,确保安全的总体目标和所遵循的原则。 (2)建立相关组织机构,要明确责任部门&…...
学习threejs,使用MeshFaceMaterial面材质容器
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshFaceMaterial 二…...
Git 实战指南:本地客户端连接 Gitee 全流程
本文将以 Gitee(码云)、系统Windows 11 为例,详细介绍从本地仓库初始化到远程协作的全流程操作 目录 1. 前期准备1.1 注册与配置 Gitee1.2 下载、安装、配置客户端1.3 配置公钥到 Gitee2. 本地仓库操作(PowerShell/Git Bash)2.1 初始化本地仓库2.2 关联 Gitee 远程仓库3. …...
Spring Cloud 中的服务注册与发现: Eureka详解
1. 背景 1.1 问题描述 我们如果通过 RestTamplate 进行远程调用时,URL 是写死的,例如: String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 当机器更换或者新增机器时,这个 URL 就需要相应地变…...
通过 SVG 使用 AI 生成理想图片:技术实现与实践指南
文章目录 1. SVG 与 AI 的结合:技术价值2. 技术原理:AI 如何生成 SVG?3. 实现步骤:从需求到图形3.1 定义需求3.2 使用 AI 生成 SVG3.3 验证与调整 4. 代码解析:实现科技感的关键4.1 渐变背景4.2 网格线条4.3 发光六边形…...
【AI学习从零至壹】Pytorch神经⽹络
Pytorch神经⽹络 神经网络简介神经元激活函数 神经网络神经⽹络的⼯作过程前向传播(forward) 反向传播(backward)训练神经⽹络 Pytorch搭建并训练神经⽹络神经⽹络构建和训练过程数据预处理构建模型优化器&提取训练数据训练样本 神经网络简介 神经元 在深度学习中&#x…...
设计模式-对象创建
对象创建 前言1. Factory Method1.1 模式介绍1.2 模式代码1.2.1 问题代码1.2.2 重构代码 1.3 模式类图1.4 要点总结 2. Abstract Factory2.1 模式介绍2.2 模式代码2.2.1 问题代码2.2.2 重构代码 2.3 模式类图2.4 要点总结 3. Prototype3.1 模式介绍3.2 模式代码3.3 模式类图3.4…...
谈谈你对前端工程化的理解,它包含哪些方面
大白话谈谈你对前端工程化的理解,它包含哪些方面 前端工程化其实就是把前端开发变得更规范、更高效、更易于维护的一套方法和流程。就好比你盖房子,不能随便瞎盖,得有设计图纸、施工标准、分工合作,前端工程化也是类似的道理。 项…...
JSON数据格式介绍
2.5 JSON 2.5.1.JSON格式的用途 在开发中凡是涉及到『跨平台数据传输』,JSON格式一定是首选 2.5.2.JSON格式的说明 1.JSON数据两端要么是{},要么是[] {}定义JSON对象[]定义JSON数组 2.JSON对象的格式是:json {key:value,key:value,...,ke…...
java的WeakHashMap可以用来做缓存使用?强软弱虚四种引用对比
在 Java 中,引用(Reference)机制用于管理对象的生命周期和垃圾回收。Java 提供了四种类型的引用:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Refer…...
【AVRCP】Notification PDUs 深入解析与应用
目录 一、Notification PDUs 概述 二、GetPlayStatus:同步查询播放状态 2.1 命令功能与应用场景 2.2 请求格式(CT → TG) 2.3 响应格式(TG → CT) 2.4 注意事项 2.5 协议实现示例(伪代码) 三、RegisterNotification:异步事件订阅 3.1 命令概述 3.2 命令格式 …...
从过拟合到强化学习:机器学习核心知识全解析
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
【MySQL基础-9】深入理解MySQL中的聚合函数
在数据库操作中,聚合函数是一类非常重要的函数,它们用于对一组值执行计算并返回单个值。MySQL提供了多种聚合函数,如COUNT、SUM、AVG、MIN和MAX等。这些函数在数据分析和报表生成中扮演着关键角色。本文将深入探讨这些聚合函数的使用方法、注…...
