我构建了一个通过 WebSocket 控制 Unity 编辑器的智能体,而不仅仅是生成代码架构文档
摘要
作者描述了一款自定义开发的桌面智能体,它通过 WebSocket 控制 Unity 编辑器,能够检查实时运行时状态并验证操作,从而克服了静态代码生成工具的局限性。
大多数“面向游戏开发的 AI”工具要么生成 C# 代码交付给你,要么作为聊天插件嵌入在编辑器中。它们都有一个共同的缺陷:无法查看运行时状态,因此无法告诉你预期效果是否真正达成。你粘贴进一段脚本,结果不对劲,却不知道是智能体的问题、项目本身的问题,还是某个未更新的序列化引用导致的。
我一直在构建一种不同的方案:一款保持与编辑器实时 WebSocket 连接的桌面应用程序。该智能体读取控制台输出,检查实际的组件值,并验证其执行的操作是否产生了预期的状态。即:静态项目上下文,辅以实时运行时状态。
技术栈:
* 客户端采用 Electron + React,主进程中运行 LangGraph.js 智能体
* Unity 内部的 C# 桥接包,监听 WebSocket 并通过编辑器 API 执行操作
* Next.js 控制平面,代理 LLM 调用(直接对接 Anthropic + OpenRouter)
* 使用 Qdrant 进行 RAG(检索增强生成),通过工具调用检索而非系统提示词注入(系统提示词注入会破坏缓存命中率)
行之有效的方法:
* 将 18 个细粒度工具封装精简至 5-7 个工作流工具。工具选择准确率大幅提升,跨步骤的累积错误显著减少。
* 采用双层模型配置,并端到端集成提示词缓存。简单任务使用 Haiku,复杂的多步任务使用 Sonnet。启用缓存后的会话成本远低于无缓存运行。
* 通过回读状态来验证每一步操作。这能捕捉大量静默失败(如组件添加到错误对象、引用未传播等)。
无效的方法:
* 空间推理是一个模型问题,而非工具问题。完美的运行时可见性并不能帮助智能体理解为什么摄像机会穿墙。
* 早期尝试给模型提供大量细粒度工具——选项越多,模型的选择能力反而越差。
* 试图将 RAG 塞入系统提示词以实现“常开上下文”。这杀死了缓存,导致冷启动成本占据主导。
下一步计划集成播放模式,使智能体能够实际运行游戏、观察发生的情况并进行迭代。目前运行时可见性仅限于只读。
我很想了解其他构建编辑器风格智能体(不限于 Unity,任何工具均可)的人遇到了哪些问题。运行时状态与静态上下文之间的权衡似乎是一个普遍存在的难题。
相似文章
我们构建了一个代理运行时,其中任务是从配置编译的显式状态机
Friday Studio 是一个开源的代理运行时,它将自然语言工作流编译成显式的、版本控制的 YAML 状态机。它允许开发者通过聊天构建 AI 代理,但以稳定的配置文件形式部署,确保生产环境的可靠性。
我构建了 agent-browser,但用于操作系统自动化。
作者介绍了 agent-ctrl,这是一个基于 Rust 的开源 CLI 工具,允许 AI 代理通过辅助功能树与原生应用程序 UI 进行交互,从而实现操作系统自动化。
Workspace 智能体
本文介绍了 OpenAI 在 ChatGPT 中推出的「Workspace Agents」,其设计目标是处理可重复的、结构化的工作流,而非一次性任务。文章阐述了核心概念、组成结构,以及使用和构建这类智能体以实现一致业务流程的最佳实践。
@hwchase17: https://x.com/hwchase17/status/2053157547985834227
文章概述了一个系统的“智能体开发生命周期”(构建、测试、部署、监控),以有效创建和管理 AI 智能体,重点介绍了 LangChain、LangGraph 和 CrewAI 等关键框架。
@OpenAI:Workspace 智能体现在可在各工具间协同——从文档、邮件、聊天、代码和系统中提取上下文,并在获得授权后执行……
OpenAI 推出 Workspace 智能体,可跨文档、邮件、聊天、代码及系统整合信息,并在授权后执行更新 Linear 任务、创建文档或发送消息等操作。