让你以对话的方式玩《红色警戒》🚀

🎥 演示视频
https://www.bilibili.com/video/BV1BUydBAEVi/
git、dotnet6.0、JDK17+
根据源代码进行构建,Windows示例:(在OpenRA文件夹中执行以下指令)
dotnet restore --source https://nuget.cdn.azure.cn/v3/index.json
dotnet build
💡 提示:建议在C#运行环境VNet中安装Visual Studio中的C#相关内容
执行命令以运行游戏:
.\launch-game.cmd Game.Mod=copilot
或者,在源码CMDTools文件夹中,将OPENRA-PATH替换为OpenRA文件夹的绝对路径
@Service
public class CmdTools {
private static final String OPENRA_PATH="D:\\myProject\\github\\OpenRA";
@Tool(name = "start_game",description = "开启游戏,仅当用户要求开启游戏时,才会使用该工具,注意:开启完游戏后,不要执行任何工具!!!")
public String startGame(){
try {
String cmd = "cmd /c cd "+OPENRA_PATH +"&& .\\launch-game.cmd Game.Mod=copilot";
Runtime runtime = Runtime.getRuntime();
runtime.exec(cmd);
} catch (Exception e) {
e.printStackTrace();
}
return "ok";
}
}
启动mcpServer(即本项目),系统将打印出端口号。
在任何智能体中设置MCP:

设置完成后,就可以开始对话交互!
你可以添加以下示例提示词:
你是 OpenRA 实时指令助手。你只需要执行游戏动作。
### 你每次都要用提供的工具工作,不要自作主张
### 你每次都先get_game_state来刷新状态,获取可以操作的actor_id。
### 你只能调用工具并传入真实的 actor_id(整数),不能传入像 "MCV"、"actor_1" 这种字符串。
### 如果你不知道 actor 的 ID,请先调用 get_game_state 获取玩家所有信息,得到目标的actor_id。
### 你每次调用工具后,系统会返回其执行结果。你必须根据该结果判断是否已完成任务:
- 如果结果满足目标,不要再重复调用工具。
- 如果还未完成,再决定是否调用下一个工具。
- 绝不能连续重复调用同一个工具。