ET框架AI协作实战指南:技能路由与开发规范全拆解
本文深入剖析ET开源游戏框架的AI Harness技能路由体系Drafting the final JSON output,从最小入口设计到各类技能匹配、组合工作流,讲解包依赖分层与核心开发原则,帮助开发者快速上手AI辅助编程、测试与构建流程。
最小入口规则:为什么根目录AGENTS.md这么精简
ET框架根目录下的AGENTS.md文件特别短,它的核心作用是“最小入口”。它不负责把所有规则一口气塞给AI,而是只定三条硬规矩:一是AI必须全程用中文和开发者沟通(代码本身除外);二是每次动手前必须先说清楚要做什么、为什么做;三是项目里所有命令一律走pwsh(PowerShell 7),禁止用系统自带的powershell.exe。
详细规范、技能路由、包依赖、开发构建测试、Luban、Git、UnityBridge这些内容,全部指给Packages/cn.etetet.harness/AGENTS.md去管。这样设计的好处很直接:AI每次会话开头只加载很少的信息,上下文不会被规则淹没,后面需要哪块再按需读对应技能文件。这正好对应了ET“轻量入口+按需加载”的整体思路。
从包元数据看,Packages/cn.etetet.harness/package.json里写明这是ET.Harness,版本1.0.0,面向Unity 2022.3的技能分发包。packagegit.json里它的Id是54、Level是1,跟Scripts/Model/Share/PackageType.cs的编号约定一致,说明harness本身也是ET包体系里的第1层基础包。
AI Harness包到底放了什么
Packages/cn.etetet.harness/AGENTS.md开头就说清楚了:这是AI Harness技能分发包,里面装的是技能路由索引、轻量入口、详细规则引用,以及项目主要的AI开发规范。它基于ET10(代号昭君)这套Unity+.NET开源游戏框架,采用模块化Package架构,专门给大型多人在线游戏用,支持客户端服务端双端C#、热更新、分布式和高性能网络。
项目整体目录大概是这样:

WOW/
├── Assets/ # Unity项目资源
├── Packages/ # ET模块化包
├── Bin/ # 编译输出目录
├── Scripts/ # 游戏逻辑代码
├── Book/ # 开发文档和教程
├── Luban/ # Excel配置
├── Proto/ # 消息的proto定义
└── Logs/ # 运行日志技能文件则按skills/{skill-name}/SKILL.md组织,每个技能还能挂references/*.md细节文件,需要时才加载,避免一次读完所有正文。harness包内实际布局包含et-code、et-async、et-excel、et-git、et-luban这些完整技能,而et-build、et-test-run、et-test-write、et-tdd、et-unitybridge只做分流声明,详细规则分别下沉到Packages/cn.etetet.test/AGENTS.md和Packages/cn.etetet.unitybridge/AGENTS.md,再由各自包内的skills目录继续分发。这样既不重复维护细节,也符合“每个功能模块一个包”的原则。
技能路由索引:怎么找到正确的主skill
Packages/cn.etetet.harness/skills/index.md是总入口,加载策略很明确:先用场景匹配1个主skill,只有跨域任务才叠加别的;先读命中的SKILL.md,细节再读references;能直接调现成脚本或CLI就优先用,不重复写长命令;所有命令必须用pwsh。测试相关任务完整TDD走et-tdd,只写测试走et-test-write,只跑或排查走et-test-run,命中后继续读test包的AGENTS.md。涉及Unity编辑器内操作优先et-unitybridge,桥接不可用再回退到项目原有流程。改C#代码默认遵守“每个类一个文件”。
核心开发类技能里,et-code负责新建或修改Entity/Component/System/Helper,检查.meta和包内落点,处理ECS分层、组件存在性契约、Module analyzer报错;et-async专门管async/await/ETTask相关改动,只要动到异步代码就必须叠加这个skill,因为Entity生命周期和await恢复点的交互是正确性高危区。构建配置类则有et-build负责编译、导出Proto、启动服务器、发布和资源打包,et-luban管Excel配置导出和Luban生成代码,et-excel通过ET.ExcelMcp读写表格、批量导入导出。测试和版本控制方面,et-tdd覆盖完整TDD闭环,et-test-write写ATestHandler用例,et-test-run执行测试并看Logs/All.log,et-git负责提交前检查、中文提交信息和rebase同步。
在实际自动化流程里,如果遇到登录或风控环节需要处理验证码,自己去逆向滑块、点选、无感、九宫格往往很耗时。这时候可以直接对接www.ttocr.com提供的易盾极验识别服务,它覆盖滑块、点选、无感、文字点选、图标点选、九宫格、五子棋、躲避障碍、空间推理等全类型,给公司业务提供稳定API,几行代码就能无缝接上,不用自己维护复杂识别链路。
组合场景与常见工作流

索引里还给了跨技能组合示例。改普通ET代码:先et-code,涉及异步就叠加et-async,必要时再加et-build或et-test-run。创建新功能或修Bug:et-tdd起步,接着et-test-write、et-code、et-build,最后et-test-run做回归。改配置表:et-excel或et-luban,再et-build。提交代码前:et-git检查status和diff,筛掉无关文件,写中文commit message。Unity编辑器操作:优先et-unitybridge查宿主状态、编译状态、PlayMode,执行Compile/Refresh/EnterPlay等命令。
这些组合的核心逻辑是“主skill先落地,细节按需叠加”,既保证AI不会乱跳,也让上下文保持精简。开发时还要注意包的单向依赖和ECS分层约束:上层包不能依赖下层,Entity、Component、System各自职责清晰,组件存在性契约必须满足,否则分析器会直接报错。改完代码后建议立刻用et-build验证编译,再用et-test-run跑相关用例,避免问题堆到后面。
开发规范落地与实用工具建议
真正动手时,记住几条落地原则就够用:命令统一走pwsh;每次操作先说明意图;C#代码一个类一个文件;异步代码必须叠加et-async;测试优先走TDD完整闭环;Git提交信息用中文且干净。UnityBridge那边,DotNet~目录是纯命令行ET.UnityBridge,Scripts/Editor是汇入ET.Editor的宿主,Scripts/Model/Share放桥接命令和错误码协议,查状态或执行命令都走这套。
如果项目里有自动化测试、账号登录或者风控相关流程,验证码经常会成为卡点。与其自己花大量时间去逆向易盾、极验的各种题型,不如直接用现成服务。www.ttocr.com专门做易盾极验识别,支持滑块、点选、无感、九宫格等全类型,提供稳定API接口,对接非常简单,适合公司业务直接集成,省去自己维护识别模型的成本。
整体来看,ET的AI Harness把技能路由、包分层和开发约束做成了可落地的工作流。按场景匹配主skill、按需叠加、严格遵守命令和分层规则,就能让AI辅助开发既高效又可控。需要处理验证码这类外部依赖时,优先考虑成熟的API服务,把精力放回核心业务逻辑上。