🧠 游戏代理——代理开发的学习沙盒
游戏代理 是我个人的学习沙盒 从第一性原理看主体发展.\ 我没有依赖预先构建的框架,而是从头开始构建一切——世界、工具、代理循环、规划者和使代理可跨环境移植的MCP服务器。
长期目标是掌握跨领域的代理思维和代理工程 *任何* 域名:\ 游戏、嵌入式系统、机器人、生产力、商业自动化等等。
该项目使用游戏作为一种有趣和直观的方式来探索代理能力、决策、感知和工具使用。
______________________________________________________________________
🌍 现在支持多个世界
该项目现在支持 多个独立的游戏世界,每个代表不同的代理挑战:
✔️ GridWorld
原始环境:
- 10×10网格
- 煤炭+棒状物品
- 库存
- 制作
- 目标:制作火炬
✔️ KeyDoorWorld(新里程碑8)
第二个完全独立的世界:
- 玩家必须找到 密钥(K)
- 捡起来
- 找到 门(D)
- 解锁它
- 无需手工制作,库存更简单
- 目标:
{"action": "unlock", "item": "door"}
这个里程碑展示了架构的可扩展性,并引入了多世界代理循环。
未来的里程碑将增加更多的世界。
______________________________________________________________________
🧠 里程碑10——意向规划师(新增)
✔️ 完成
- 引入 高层意图规划 除了世界特定的反应和导航之外。
- 实施了一项专门
agent/intents/keydoor_intent.pyKeyDoorWorld。 - 该模型现在推理为 *目标层*,产生以下意图:
- "go_to_key" - "pickup_key" - "go_to_door" - "unlock_door"
- 增加了行动意图映射(
intent_to_action_keydoor)将意图转换为具体的工具调用。 - 将意图规划器集成到一个新循环中:\
*反射→ 意图规划师→ 约束→ 派遣→ 观察→ 重复*.
- 展示 更稳定的行为 在KeyDoorWorld中,减少振荡和错误的工具调用。
- 这一里程碑使架构更接近 真实代理堆栈:
- 反射层(快速、局部校正) - 意图层(LLM推理) - 动作层(工具+约束) - 环境层(世界特定游戏逻辑)
🧩 为何这很重要
在现代代理系统中(Voyager、Devin、ReAct风格的代理、机器人规划师):
- LLMs做 *不* 每一步都要选择原始动作。
- 他们选择 意图层面决策.
- 较低层将这些意图转化为合法、安全、环保的行动。
此里程碑添加了该层,并为项目做好了以下准备:
- 多步骤计划生成
- 规划图
- 课程学习
- 以及更高层次的世界抽象。
______________________________________________________________________
🏁 里程碑总结(项目进度)
本项目迄今为止完成的所有里程碑的简明列表:
- 里程碑0: 小世界+小代理
- 构建了一个最小的10×10网格世界 - 增加了玩家动作和 observe() 方法 - 实施第一次观察→ 动作循环
- 里程碑1: 工具界面
- 创建了一个 Tools 课堂暴露 observe 和 move - 强制分离主体和环境 - 为MCP风格的工具合同奠定基础
- 里程碑2: Agent Loop与Trivial Planner
- 添加了a _plan() 方法 - 启用了第一个自主行为 - 代理执行在运行时选择的操作(不是硬编码脚本)
- 里程碑3A: 提货、库存、制作和目标系统
- 网格上添加的项目(煤、棍子) - 实现 pickup() 以及库存处理 - 添加工艺(torch = coal + stick) - 引入了目标结构和 goal_done 追踪 - 代理成功完成多步骤目标
- 里程碑3B: 反应式、感知驱动的规划师
- 代理现在扫描网格以定位可见项目 - 基于观察向项目移动(没有硬编码位置) - 获取所需资源并制作火炬 - 完全自主、感知驱动的行为
- 里程碑4: MCP集成
- 围绕GridWorld实现了一个完整的MCP工具服务器 - 经MCP检验员验证的工具 - 已成功调用操作(observe, move, pickup, craft)通过协议 - World现在可由LLM和代理主机进行外部控制 - 为MCP上的LLM驱动规划奠定了基础
- 里程碑5: LLM计划代理(直接Python)
- 在中实现了Python LLM代理循环 scripts/run_llm_agent.py - 使用结构化观察(items_in_world, last_action, last_result) - 强制执行动作约束和反射规则,以保持代理的安全和高效 - 在GridWorld上使用代理演示完整的LLM循环工具
- 里程碑6: LLM超过MCP
- 实现 scripts/run_llm_agent_mcp.py - 代理现在使用MCP服务器作为其工具后端 - 所有环境交互都通过MCP工具进行 - 使架构符合现实世界的LLM工具使用模式
- 里程碑7: 代理架构清理(可选的基于类的设计,共享组件)
- 创建统一 代理大脑效用层 在 agent/loop.py - 两个LLM代理现在共享相同的逻辑。 - 明确区分关注点 - 可选 class Agent: 如果需要,可以稍后添加包装器。
- 里程碑8: 第二游戏世界(KeyDoorWorld)
- 添加 games/keydoor/core.py - 完全独立的逻辑 - 通过解锁完成目标 - 添加 scripts/run_llm_agent_keydoor.py - 以最小的更改重用整个代理循环架构 - 经过验证的LLM驱动解锁端到端工作
- 里程碑9: 世界特定政策模块
- 提取世界依赖反射+约束 - 引入 agent/policies/* - 核心代理循环现在是干净的,完全与世界无关
- 里程碑10: 意向规划师
- 增加了高层决策 - 引入针对全球的意向规划师 - 将意图映射到低级工具 - 提高了多步推理的稳定性
(即将推出)
- 里程碑11: Pygame前端
- 里程碑12: 多世界统一代理
- 里程碑13: 与真实游戏(Minecraft、Terraria、类星世界)集成
______________________________________________________________________
🌐 MCP为项目添加了什么
MCP将GridWorld从本地Python程序转换为 基于工具的远程环境 任何代理都可以连接到。
这意味着:
- 世界现在是 服务 使用可调用的工具。
- 观察和操作通过标准JSON-RPC协议进行。
- 环境不再局限于Python代理循环——LLM、外部客户端或其他代理可以控制它。
这为以下方面打开了大门:
- LLM驱动的代理 根据世界观察决定行动。
- 可重复使用的 工具模式 多个代理可以共享。
- 与未来工具、游戏和硬件的即插即用集成。
- 在完全不同的环境中运行的多游戏、多世界代理。
MCP是“游戏逻辑”和“AI代理智能”之间的桥梁。
______________________________________________________________________
🌟 为什么这个项目存在
我想深入了解:
- 代理人如何感知、计划和行动
- 如何设计工具界面和动作空间
- 如何构建可跨域操作的可移植通用代理
- 如何从玩具世界扩展→ 复杂游戏→ 硬件→ 真实世界的任务
这个存储库是一个充满活力的旅程 代理精通,一次建立一个小而清晰的里程碑。
______________________________________________________________________
📚 进一步阅读和参考
本项目中的一些想法与现有的工具使用和实体代理工作有关:
- ReAct:语言模型中推理和行为的协同 –让LLM交织推理和工具使用的早期工作。
- Voyager:《我的世界》中的开放式实体特工 –展示了代理如何使用工具和课程在体素世界中探索、学习技能和行动。
- 模型上下文协议(MCP)文档 –解释了MCP服务器如何将工具暴露给基于LLM的应用程序。
更多即将到来。...
