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

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

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

相关文章

EverArt MCP 服务器安装调试笔记 -cline

EverArt MCP 服务器安装调试笔记 问题描述 用户在使用 EverArt MCP 服务器时遇到报错&#xff1a;“MCP error -1: Connection closed”。 调试过程 检查配置文件 cline_mcp_settings.json: 确认 everart 服务器的配置信息&#xff0c;包括 command、args 和 env 是否正确。…

MFC中使用Create或CreateDialog创建对话框失败,GetLastError错误码为1813(找不到映像文件中指定的资源类型)

文章目录 创建对话框失败示例、原因分析及解决方案示例代码错误原因解决方案 AFX_MANAGE_STATE(AfxGetStaticModuleState())作用一、功能1. 模块状态切换2. 自动状态恢复 二、为什么要用该函数&#xff1f;三、必须使用该宏的典型场景1. MFC 扩展 DLL&#xff08;Extension DLL…

php进程管理

php-fpm(fastcgi process manager)是PHP 的FastCGI管理器&#xff0c;管理PHP的FastCGI进程&#xff0c;提升PHP应用的性能和稳定性 php-fpm是一个高性能的php FastCGI管理器&#xff0c;提供了更好的php进程管理方式&#xff0c;可以有效的控制内存和进程&#xff0c;支持平滑…

《MySQL数据库从零搭建到高效管理|表的增删改查(基础)》

目录 引言&#xff1a; 一、表的操作 1.1 创建学生表 1.2 查看表结构 1.3 删除表 1.4 修改表名 1.5 添加字段 1.6 修改字段 1.7 删除字段 1.8 小结 二、CRUD 2.1 新增&#xff08;Create&#xff09;数据 2.2 查询&#xff08;Retrieve&#xff09;数据 2.3 修改&…

建筑管理(2): 施工承包模式,工程监理,质量监督

文章目录 一. 施工承包模式1. 施工总承包模式1.1 施工总承包的特点1.2 施工总承包模式中的承包方 2. 平行承包模式3. 联合体与合作体承包模式 二. 工程监理1. 强制实行监理的工程范围1.1 国家重点建设工程1.2 大中型公用事业工程(重点)1.3 成片开发建设的住宅小区工程1.4 必须实…

Spring Boot与Apache Ignite集成:构建高性能分布式缓存和计算平台

1. 前言 1.1 什么是Apache Ignite Apache Ignite是一个高性能的分布式内存计算平台,支持内存缓存、分布式计算、流处理和机器学习等功能。它提供了低延迟的数据访问和强大的计算能力,适用于需要高性能和可扩展性的应用。 1.2 为什么选择Apache Ignite 高性能:Ignite利用内…

REST 请求返回 Invalid Credentials

REST 请求返回 “Invalid Credentials”&#xff08;无效凭据&#xff09;&#xff0c;通常表示身份验证失败。可能的原因和解决方案如下&#xff1a; 可能的原因 & 解决方案 用户名或密码错误 确保使用正确的用户名和密码。如果 API 需要 Base64 编码的 Authorization 头…

C++Primer学习(6.7 函数指针——难!)

6.7 函数指针 (这一章节比较难) 函数指针指向的是函数而非对象。和其他指针一样&#xff0c;函数指针指向某种特定类型。函数的类型由它的返回类型和形参类型共同决定&#xff0c;与函数名无关。例如: //比较两个 string 对象的长度 bool lengthCompare(const string &,co…

高级java每日一道面试题-2025年2月26日-框架篇[Mybatis篇]-Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式 ?

如果有遗漏,评论区告诉我进行补充 面试官: Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式 ? 我回答: 在Java高级面试中讨论MyBatis如何将SQL执行结果封装为目标对象并返回的过程时&#xff0c;我们可以从过程细节和映射形式两个方面来综合解答这个问…

react(一):特点-基本使用-JSX语法

初识React React是一个用于构建用户界面的 JavaScript 库&#xff0c;由 Facebook 开发和维护。 官网文档&#xff1a;React 官方中文文档 特点 1.声明式编程 2.组件化开发 3.多平台适配 开发依赖 开发React必须依赖三个库&#xff1a; 1.react&#xff1a;包含react所必…

【Python+HTTP接口】POST请求不同请求头构造

1、{‘Content-Type’: ‘application/json’} import requestsbody {"name1": "value1","name2": "value2"} requests.post(urlurl, databody)2、{“Content-Type”: “application/x-www-form-urlencoded; charsetUTF-8”} impor…

Java常用API:String与ArrayList的设计哲学与实践应用

在Java编程中&#xff0c;API&#xff08;应用程序编程接口&#xff09;是开发者最强大的工具之一。它们封装了复杂的底层逻辑&#xff0c;提供了简洁的调用方式。本文将聚焦Java中两个最常用的API——String和ArrayList&#xff0c;从底层原理到实际应用&#xff0c;结合深度思…

Python的字符串优雅优化策略:特定编码 -> Unicode码点 -> UTF-8(可自定义)

Python利用唯一uni-pot中介打理&#xff0c;任意制式输出&#xff08;首选uyf-8&#xff09;。 笔记模板由python脚本于2025-03-14 23:37:04创建&#xff0c;本篇笔记适合喜欢探究字符串编码细节的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值&#xff1a;在于输出思…

linux 时间同步(阿里云ntp服务器)

1、安装ntp服务 rootlocalhost ~]# yum -y install ntp 已加载插件&#xff1a;fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.nju.edu.cn* centos-sclo-rh: mirrors.nju.edu.cn* centos-sclo-sclo: mirrors.huaweicloud.com* epel: m…

虚拟化数据恢复—重装系统服务器崩了的数据恢复过程

虚拟化数据恢复环境&故障&#xff1a; VMware虚拟化平台 vmfs文件系统 工作人员误操作重装操作系统&#xff0c;服务器崩溃。 重装系统会导致文件系统元文件被覆盖。要恢复数据&#xff0c;必须找到&提取重装系统前的文件系统残留信息&#xff0c;通过提取出来的元文件…

微信开发者工具内建终端使用不了npm,但是cmd可以

下载cnpm并配置镜像源 终端cmd&#xff1a; npm install -g cnpm --registryhttp://registry.npmmirror.com 打开微信开发者工具&#xff0c;找到方框的文件右击选择内建终端打开 初始化&#xff1a; npm init -y 发现npm没有此命令 关闭微信开发工具&#xff0c;用管理…

vue/react/vite前端项目打包的时候加上时间最简单版本,防止后端扯皮

如果你是vite项目&#xff0c;直接写一个vite的插件&#xff0c;通过这个插件可以动态注入环境变量&#xff0c;然后当打包的时候&#xff0c;自动注入这个时间到环境变量中&#xff0c;然后在项目中App.vue中或者Main.tsx中打印出来&#xff0c;这就知道是什么时候编译的项目了…

element-plus中Autocomplete自动补全输入框组件的使用

目录 1.基本使用 ①从官网赋值如下代码 ②查看运行效果 ③代码解读 2.调用后端接口&#xff0c;动态获取建议数据 结语 1.基本使用 ①从官网赋值如下代码 <template> <div><!-- 自动补全输入框 --><el-autocompletev-model"state":fetc…

DeFi开发的深度解析与展望

去中心化金融&#xff08;DeFi&#xff09;作为区块链技术的一个重要应用&#xff0c;近年来在金融领域掀起了一股创新浪潮。它不仅为用户提供了更加便捷、高效的金融服务&#xff0c;还重新定义了传统金融的运作方式。本文将围绕DeFi开发的核心要素、应用场景、面临的问题以及…

思维链医疗编程方法论框架(Discuss V1版)

思维链医疗编程方法论框架 1. 方法论核心定义 思维链医疗编程方法论是一种结合结构化思维链(Chain of Thought)与医疗领域需求的系统化编程实践框架,旨在通过分步逻辑推理、知识整合与动态反馈,提升医疗软件/算法的开发效率、准确性与可解释性。该方法论的关键在于通过清晰…