【Unity】 HTFramework框架(六十二)Agent编辑器通用智能体(AI Agent)

news2025/3/18 10:55:09

更新日期: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(星期五)在这里只是分享了一种智能体的实现思路,大厂会有更牛的玩法,我们就不做横向比较了,最终它只需要能够帮我提供服务即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2317174.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记:黑马程序员JavaWeb开发教程(2025.3.17)

11.5 案例-文件上传-阿里云OSS-入门 出现报错&#xff1a;Process exited with an error: 1 (Exit value: 1)&#xff0c;点击exec那一行&#xff0c;出现错误原因&#xff1a;Command execution failed. 在CSDN上找到了解决方法&#xff1a; 之后出现新的报错&…

仿最美博客POETIZE(简易版)

写在前面 本文章参考于两个开源项目分别为&#xff1a;POETIZE-最美博客&#xff0c;拾壹博客 如有侵权&#xff0c;请联系删除 正题 此页面为拾壹博客修改而成&#xff0c;采用了POETIZE的布局以及背景图片&#xff0c;技术栈:SpringbootVue&#xff0c;主要涉及页面为网站…

STM32——独立看门狗(IWDG)

IWDG 简介 独立看门狗本质上是一个 定时器 &#xff0c;这个定时器有一个输出端&#xff0c;可以输出复位信号。该定时器是一个 12 位的递减计数器 &#xff0c;当计数器的值减到 0 的时候&#xff0c;就会产生一个复位信号。如果 在计 数没减到 0 之前&#xff0c;重置计…

C++11智能指针简述

一、实现原理 在智能指针对象中有一个裸指针&#xff0c;此指针存储的是动态创建对象的地址&#xff0c;用于生存期控制&#xff0c;能够确保智能指针对象离开所在作用域时&#xff0c;自动正确地销毁动态创建的对象&#xff0c;防止内存泄漏。 使用裸指针存在的问题&#xff…

Linux操作系统实验报告单(3)文本编辑器vi/vim

一、实验目的 掌握vi/vim编辑器的进入和退出方式了解vi/vim的三种模式熟练vi/vim的操作命令 二、实验内容 1.在家目录下新建一个名为“vitest_name”&#xff08;“name”为学生姓名拼音&#xff09;的目录。 ●创建用户目录命令&#xff1a;sudo mkdir /home/vitest_lw3613 …

Centos固定IP配置

虚拟机安装 安装vmware 网盘链接 安装centos7.5 网盘链接 安装教程自行查找 固定IP配置 对安装好的VMware进行网络配置&#xff0c;方便虚拟机连接网络&#xff0c;本次设置建议选择NAT模式&#xff0c;需要宿主机的Windows和虚拟机的Linux能够进行网络连接&#xff0c;…

二叉树算法题实战:从遍历到子树判断

目录 一、引言 二、判断两棵二叉树是否相同 思路 代码实现 注意点 三、二叉树的中序遍历 思路 代码实现 注意点 四、判断一棵树是否为另一棵树的子树 思路 代码实现 注意点 ​编辑 五、补充 一、引言 作者主页&#xff1a;共享家9527-CSDN博客 作者代码仓库&am…

学习threejs,使用MeshFaceMaterial面材质容器

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言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 进行远程调用时&#xff0c;URL 是写死的&#xff0c;例如&#xff1a; String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 当机器更换或者新增机器时&#xff0c;这个 URL 就需要相应地变…

通过 SVG 使用 AI 生成理想图片:技术实现与实践指南

文章目录 1. SVG 与 AI 的结合&#xff1a;技术价值2. 技术原理&#xff1a;AI 如何生成 SVG&#xff1f;3. 实现步骤&#xff1a;从需求到图形3.1 定义需求3.2 使用 AI 生成 SVG3.3 验证与调整 4. 代码解析&#xff1a;实现科技感的关键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…

【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 命令格式 …

MATLAB 控制系统设计与仿真 - 27

状态空间的标准型 传递函数和状态空间可以相互转换&#xff0c;接下来会举例如何有传递函数转成状态空间标准型。 对角标准型 当 G(s)可以写成&#xff1a; 即&#xff1a; 根据上图可知&#xff1a; 约当标准型 当 G(s)可以写成&#xff1a; 即&#xff1a; 根据上图…

linux 命令 cp

cp 是 Linux 中用于复制文件和目录的命令&#xff0c;基本功能是将源文件或目录复制到目标位置 基本语法 cp [选项] 源文件 目标文件 cp [选项] 源文件1 源文件2 ... 目标目录 常用选项 选项说明-i交互模式&#xff08;覆盖前询问确认&#xff09;-r 或 -R递归复制目录&#…

蓝桥杯高频考点——进制转换

进制转换 二进制转十进制代码演示 十六进制转十进制代码演示 十进制转K进制代码演示 任意进制之间的转换代码演示 二进制转十进制 代码演示 // 定义函数 calc&#xff0c;用于将字符转换为对应的数值 int calc(char c) {// 若字符 c 大于等于 9&#xff08;注&#xff1a;此处…

【算法百题】专题七_分治快排_专题八_分治归并

文章目录 前言分治快排题&#xff1a;043. [颜⾊分类&#xff08;medium&#xff09;](https://leetcode.cn/problems/sort-colors/description/)分析 044. [快速排序&#xff08;medium&#xff09;](https://leetcode.cn/problems/sort-an-array/description/)分析 045. [快速…

使用OBS进行webRTC推流参考

参考腾讯云官方文档&#xff1a; 云直播 OBS WebRTC 推流_腾讯云 说明非常详细&#xff0c;分为通过WHIP和OBS插件的形式进行推流。 注意&#xff1a;通过OBS插件的形式进行推流需要使用较低的版本&#xff0c;文档里有说明&#xff0c;需要仔细阅读。

(链表)面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&#xff…