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