使用说明
🧠 游戏代理——代理开发的学习沙盒
游戏代理 是我个人的学习沙盒 从第一性原理看主体发展.
我没有依赖预先构建的框架,而是从头开始构建一切——世界、工具、代理循环、规划者和使代理可跨环境移植的MCP服务器。
n
长期目标是掌握跨领域的代理思维和代理工程 任何 域名:
游戏、嵌入式系统、机器人、生产力、商业自动化等等。
该项目使用游戏作为一种有趣和直观的方式来探索代理能力、决策、感知和工具使用。
🌍 现在支持多个世界
该项目现在支持 多个独立的游戏世界,每个代表不同的代理挑战:
✔️ 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()方法 - 启用了第一个自主行为
- 代理执行在运行时选择的操作(不是硬编码脚本)
- 添加了a
-
里程碑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循环工具
- 在中实现了Python 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的应用程序。
更多即将到来。...