[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-hijkzzz--pymarl2":3,"tool-hijkzzz--pymarl2":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":73,"owner_location":73,"owner_email":76,"owner_twitter":73,"owner_website":77,"owner_url":78,"languages":79,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":92,"env_os":93,"env_gpu":94,"env_ram":95,"env_deps":96,"category_tags":110,"github_topics":111,"view_count":32,"oss_zip_url":73,"oss_zip_packed_at":73,"status":17,"created_at":117,"updated_at":118,"faqs":119,"releases":149},6552,"hijkzzz\u002Fpymarl2","pymarl2","Fine-tuned  MARL algorithms on SMAC (100% win rates on most scenarios)","pymarl2 是一个专注于合作式多智能体强化学习（MARL）的开源代码库，核心目标是复现并优化论文中提出的算法技巧，使其在星际争霸多智能体挑战（SMAC）环境中达到顶尖水平。它主要解决了传统 MARL 算法在复杂场景下胜率不稳定、样本效率低的问题。通过精细调整超参数并整合多项关键工程技巧，pymarl2 让经典的 QMIX 算法在绝大多数高难度甚至超高难度场景中实现了 100% 的胜率，显著超越了基准表现。\n\n这款工具特别适合从事多智能体系统研究的研究人员、希望复现 SOTA 结果的开发者，以及需要高效基线模型进行对比实验的算法工程师。其独特亮点在于系统性地验证并集成了多种常被忽视但至关重要的“实现技巧”，包括价值函数裁剪、奖励缩放、正交初始化、大批次训练、N 步回报机制以及特定的探索率衰减策略等。此外，项目还提供了针对不同任务特性（如高样本效率需求或通信任务）的专用配置文件，帮助用户更灵活地适配各类多智能体环境。无论是用于学术探索还是工程落地，pymarl2 都提供了一个经过严格验证、性能卓越的实现参考。","```diff\n- If you want high sample efficiency, please use qmix_high_sample_efficiency.yaml\n- which uses 4 processes for training, slower but higher sample efficiency.\n- Performance is *not* comparable of models trained with different number of processes. \n```\n\n# PyMARL2\n\nOpen-source code for [Rethinking the Implementation Tricks and Monotonicity Constraint in Cooperative Multi-Agent Reinforcement Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2102.03479).\n\nThis repository is fine-tuned for StarCraft Multi-agent Challenge (SMAC). For other multi-agent tasks, we also recommend an optimized implementation of QMIX: https:\u002F\u002Fgithub.com\u002Fmarlbenchmark\u002Foff-policy.\n\n**StarCraft 2 version: SC2.4.10. difficulty: 7.**\n\n```\n2022.10.10 update: add qmix_high_sample_efficiency.yaml, which uses 4 processes for training, slower but higher sample efficiency.\n\n2021.10.28 update: add Google Football Environments [vdn_gfootball.yaml] (use `simple115 features`).\n\n2021.10.4 update: add QMIX with attention (qmix_att.yaml) as a baseline for Communication tasks.\n```\n\n## Finetuned-QMIX\n\nThere are so many code-level tricks in the  Multi-agent Reinforcement Learning (MARL), such as:\n\n- Value function clipping (clip max Q values for QMIX)\n- Value Normalization\n- Reward scaling\n- Orthogonal initialization and layer scaling\n- **Adam**\n- **Neural networks hidden size**\n- learning rate annealing\n- Reward Clipping\n- Observation Normalization\n- Gradient Clipping\n- **Large Batch Size**\n- **N-step Returns(including GAE($\\lambda$) and Q($\\lambda$) ...)**\n- **Rollout Process Number**\n- **$\\epsilon$-greedy annealing steps**\n- Death Agent Masking\n\n**Related Works**\n\n- Implementation Matters in Deep RL: A Case Study on PPO and TRPO\n- What Matters In On-Policy Reinforcement Learning? A Large-Scale Empirical Study\n- The Surprising Effectiveness of MAPPO in Cooperative, Multi-Agent Games\n\nUsing a few of tricks above (bold texts), we enabled QMIX (qmix.yaml) to solve almost all hard scenarios of SMAC (Fine-tuned hyperparameters **for each scenarios**).\n\n| Senarios     | Difficulty | QMIX (batch_size=128) |                   Finetuned-QMIX                   |\n| ------------ | :--------: | :-------------------: | :------------------------------------------------: |\n| 8m           |    Easy    |           -           |                  **100\\%**                  |\n| 2c_vs_1sc    |    Easy    |           -           |                  **100\\%**                  |\n| 2s3z         |    Easy    |           -           |                  **100\\%**                  |\n| 1c3s5z       |    Easy    |           -           |                  **100\\%**                  |\n| 3s5z         |    Easy    |           -           |                  **100\\%**                  |\n| 8m_vs_9m     |    Hard    |          84%          |                  **100\\%**                  |\n| 5m_vs_6m     |    Hard    |          84%          |                   **90\\%**                   |\n| 3s_vs_5z     |    Hard    |          96%          |                  **100\\%**                  |\n| bane_vs_bane |    Hard    |    **100\\%**    |                  **100\\%**                  |\n| 2c_vs_64zg   |    Hard    |    **100\\%**    |                  **100\\%**                  |\n| corridor     | Super Hard |          0%          |                  **100\\%**                  |\n| MMM2         | Super Hard |          98%          |                  **100\\%**                  |\n| 3s5z_vs_3s6z | Super Hard |          3%          | **93\\%**(hidden_size = 256, qmix_large.yaml) |\n| 27m_vs_30m   | Super Hard |          56%          |                  **100\\%**                  |\n| 6h_vs_8z     | Super Hard |          0%          |         **93\\%**($\\lambda$ = 0.3, epsilon_anneal_time = 500000)         |\n\n## Re-Evaluation\n\nAfterwards, we re-evaluate numerous QMIX variants with normalized the tricks (a **general** set of hyperparameters), and find that QMIX achieves the SOTA.\n\n| Scenarios    | Difficulty |   Value-based   |                |                |                |                |  Policy-based  |       |                |                |\n| ------------ | ---------- | :-------------: | :------------: | :------------: | :------------: | :------------: | :------------: | ----- | :------------: | :------------: |\n|              |            |      QMIX      |      VDNs      |     Qatten     |     QPLEX     |     WQMIX     |      LICA      | VMIX  |      DOP      |      RIIT      |\n| 2c_vs_64zg   | Hard       | **100%** | **100%** | **100%** | **100%** | **100%** | **100%** | 98%   |      84%      | **100%** |\n| 8m_vs_9m     | Hard       | **100%** | **100%** | **100%** |      95%      |      95%      |      48%      | 75%   |      96%      |      95%      |\n| 3s_vs_5z     | Hard       | **100%** | **100%** | **100%** | **100%** | **100%** |      96%      | 96%   | **100%** |      96%      |\n| 5m_vs_6m     | Hard       |  **90%**  | **90%** | **90%** | **90%** | **90%** |      53%      | 9%    |      63%      |      67%      |\n| 3s5z_vs_3s6z | S-Hard     |  **75%**  |      43%      |      62%      |      68%      |      56%      |       0%       | 56%   |       0%       | **75%** |\n| corridor     | S-Hard     | **100%** |      98%      | **100%** |      96%      |      96%      |       0%       | 0%    |       0%       | **100%** |\n| 6h_vs_8z     | S-Hard     |       84%       | **87%** |      82%      |      78%      |      75%      |       4%       | 80%   |       0%       |      19%      |\n| MMM2         | S-Hard     | **100%** |      96%      | **100%** | **100%** |      96%      |       0%       | 70%   |       3%       | **100%** |\n| 27m_vs_30m   | S-Hard     | **100%** | **100%** | **100%** | **100%** | **100%** |       9%       | 93%   |       0%       |      93%      |\n| Discrete PP  | -          |  **40**  |       39       |       -       |       39       |       39       |       30       | 39    |       38       |       38       |\n| Avg. Score   | Hard+      | **94.9%** |     91.2%     |     92.7%     |     92.5%     |     90.5%     |     29.2%     | 67.4% |     44.1%     |     84.0%     |\n\n## Communication\n\nWe also tested our QMIX-with-attention (qmix_att.yaml, $\\lambda=0.3$, attention\\_heads=4) on some maps (from [NDQ](https:\u002F\u002Fgithub.com\u002FTonghanWang\u002FNDQ)) that require communication.\n\n| Senarios (200w steps) | Difficulty | Finetuned-QMIX (No Communication) | QMIX-with-attention ( Communication) |\n| --------------------- | :--------: | :-------------------------------: | :----------------------------------: |\n| 1o_10b_vs_1r          |     -     |                56%                |            **87\\%**            |\n| 1o_2r_vs_4r           |     -     |                50%                |            **95\\%**            |\n| bane_vs_hM            |     -     |                0%                |            **0\\%**            |\n\n## Google Football\n\nWe also tested VDN (vdn_gfootball.yaml) on some maps (from [Google Football](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Ffootball)). Specially, we use `simple115 features` to train the model (The Google Football original paper use complex `CNN features`). We did not test QMIX because this environment does not provide global status information.\n\n| Senarios                   | Difficulty | VDN ($\\lambda=1.0$) |\n| -------------------------- | :--------: | :-------------------: |\n| academy_counterattack_hard |     -     |   0.71 (Test Score)   |\n| academy_counterattack_easy |     -     |   0.87 (Test Score)   |\n\n# Usage\n\nPyMARL is [WhiRL](http:\u002F\u002Fwhirl.cs.ox.ac.uk)'s framework for deep multi-agent reinforcement learning and includes implementations of the following algorithms:\n\nValue-based Methods:\n\n- [**QMIX**: QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1803.11485)\n- [**VDN**: Value-Decomposition Networks For Cooperative Multi-Agent Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.05296)\n- [**IQL**: Independent Q-Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1511.08779)\n- [**QTRAN**: Learning to Factorize with Transformation for Cooperative Multi-Agent Reinforcement Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.05408)\n- [**Qatten**: Qatten: A general framework for cooperative multiagent reinforcement learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2002.03939)\n- [**QPLEX**: Qplex: Duplex dueling multi-agent q-learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2008.01062)\n- [**WQMIX**: Weighted QMIX: Expanding Monotonic Value Function Factorisation](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.10800)\n\nActor Critic Methods:\n\n- [**COMA**: Counterfactual Multi-Agent Policy Gradients](https:\u002F\u002Farxiv.org\u002Fabs\u002F1705.08926)\n- [**VMIX**: Value-Decomposition Multi-Agent Actor-Critics](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.12306)\n- [**LICA**: Learning Implicit Credit Assignment for Cooperative Multi-Agent Reinforcement Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.02529)\n- [**DOP**: Off-Policy Multi-Agent Decomposed Policy Gradients](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.12322)\n- [**RIIT**: Rethinking the Implementation Tricks and Monotonicity Constraint in Cooperative Multi-Agent Reinforcement Learning.](https:\u002F\u002Farxiv.org\u002Fabs\u002F2102.03479)\n\n## Installation instructions\n\nInstall Python packages\n\n```shell\n# require Anaconda 3 or Miniconda 3\nconda create -n pymarl python=3.8 -y\nconda activate pymarl\n\nbash install_dependecies.sh\n```\n\nSet up StarCraft II (2.4.10) and SMAC:\n\n```shell\nbash install_sc2.sh\n```\n\nThis will download SC2.4.10 into the 3rdparty folder and copy the maps necessary to run over.\n\nSet up Google Football:\n\n```shell\nbash install_gfootball.sh\n```\n\n## Command Line Tool\n\n**Run an experiment**\n\n```shell\n# For SMAC\npython3 src\u002Fmain.py --config=qmix --env-config=sc2 with env_args.map_name=corridor\n```\n\n```shell\n# For Difficulty-Enhanced Predator-Prey\npython3 src\u002Fmain.py --config=qmix_predator_prey --env-config=stag_hunt with env_args.map_name=stag_hunt\n```\n\n```shell\n# For Communication tasks\npython3 src\u002Fmain.py --config=qmix_att --env-config=sc2 with env_args.map_name=1o_10b_vs_1r\n```\n\n```shell\n# For Google Football (Insufficient testing)\n# map_name: academy_counterattack_easy, academy_counterattack_hard, five_vs_five...\npython3 src\u002Fmain.py --config=vdn_gfootball --env-config=gfootball with env_args.map_name=academy_counterattack_hard env_args.num_agents=4\n```\n\nThe config files act as defaults for an algorithm or environment.\n\nThey are all located in `src\u002Fconfig`.\n`--config` refers to the config files in `src\u002Fconfig\u002Falgs`\n`--env-config` refers to the config files in `src\u002Fconfig\u002Fenvs`\n\n**Run n parallel experiments**\n\n```shell\n# bash run.sh config_name env_config_name map_name_list (arg_list threads_num gpu_list experinments_num)\nbash run.sh qmix sc2 6h_vs_8z epsilon_anneal_time=500000,td_lambda=0.3 2 0 5\n```\n\n`xxx_list` is separated by `,`.\n\nAll results will be stored in the `Results` folder and named with `map_name`.\n\n**Kill all training processes**\n\n```shell\n# all python and game processes of current user will quit.\nbash clean.sh\n```\n\n# Citation\n\n```\n@article{hu2021rethinking,\n      title={Rethinking the Implementation Tricks and Monotonicity Constraint in Cooperative Multi-Agent Reinforcement Learning}, \n      author={Jian Hu and Siyang Jiang and Seth Austin Harding and Haibin Wu and Shih-wei Liao},\n      year={2021},\n      eprint={2102.03479},\n      archivePrefix={arXiv},\n      primaryClass={cs.LG}\n}\n```\n","```diff\n- 如果您希望获得更高的采样效率，请使用 qmix_high_sample_efficiency.yaml，\n- 该配置使用4个进程进行训练，速度较慢但采样效率更高。\n- 使用不同数量的进程训练得到的模型性能*不可比较*。\n```\n\n# PyMARL2\n\n用于[重新思考合作式多智能体强化学习中的实现技巧与单调性约束](https:\u002F\u002Farxiv.org\u002Fabs\u002F2102.03479)的开源代码。\n\n本仓库针对星际争霸多智能体挑战赛（SMAC）进行了优化。对于其他多智能体任务，我们也推荐一个优化版的QMIX实现：https:\u002F\u002Fgithub.com\u002Fmarlbenchmark\u002Foff-policy。\n\n**星际争霸2版本：SC2.4.10，难度：7。**\n\n```\n2022年10月10日更新：新增 qmix_high_sample_efficiency.yaml，该配置使用4个进程进行训练，速度较慢但采样效率更高。\n\n2021年10月28日更新：新增谷歌足球环境 [vdn_gfootball.yaml]（使用 `simple115 features`）。\n\n2021年10月4日更新：新增带有注意力机制的QMIX（qmix_att.yaml），作为通信任务的基线模型。\n```\n\n## 细调版-QMIX\n\n在多智能体强化学习（MARL）中，有许多代码层面的技巧，例如：\n\n- 价值函数裁剪（对QMIX的最大Q值进行裁剪）\n- 价值归一化\n- 奖励缩放\n- 正交初始化和层缩放\n- **Adam优化器**\n- **神经网络隐藏层大小**\n- 学习率退火\n- 奖励裁剪\n- 观测归一化\n- 梯度裁剪\n- **大批量训练**\n- **N步回报（包括GAE($\\lambda$)和Q($\\lambda$)等）**\n- **并行采样进程数**\n- **$\\epsilon$-贪婪策略的退火步数**\n- 死亡智能体掩码\n\n**相关工作**\n\n- 深度强化学习中的实现细节：以PPO和TRPO为例\n- 在基于策略的强化学习中，哪些因素最重要？一项大规模实证研究\n- MAPPO在合作式多智能体游戏中的惊人效果\n\n通过运用上述部分技巧（加粗显示），我们使QMIX（qmix.yaml）能够解决SMAC中的几乎所有困难场景（为**每个场景**单独调整超参数）。\n\n| 场景         | 难度   | QMIX (batch_size=128) |                   细调版-QMIX                   |\n| ------------ | :----: | :-------------------: | :------------------------------------------------: |\n| 8m           | 容易   |           -           |                  **100%**                  |\n| 2c_vs_1sc    | 容易   |           -           |                  **100%**                  |\n| 2s3z         | 容易   |           -           |                  **100%**                  |\n| 1c3s5z       | 容易   |           -           |                  **100%**                  |\n| 3s5z         | 容易   |           -           |                  **100%**                  |\n| 8m_vs_9m     | 困难   |          84%          |                  **100%**                  |\n| 5m_vs_6m     | 困难   |          84%          |                   **90%**                   |\n| 3s_vs_5z     | 困难   |          96%          |                  **100%**                  |\n| bane_vs_bane | 困难   |    **100%**    |                  **100%**                  |\n| 2c_vs_64zg   | 困难   |    **100%**    |                  **100%**                  |\n| corridor     | 超难   |          0%          |                  **100%**                  |\n| MMM2         | 超难   |          98%          |                  **100%**                  |\n| 3s5z_vs_3s6z | 超难   |          3%          | **93%**(hidden_size = 256, qmix_large.yaml) |\n| 27m_vs_30m   | 超难   |          56%          |                  **100%**                  |\n| 6h_vs_8z     | 超难   |          0%          |         **93%**($\\lambda$ = 0.3, epsilon_anneal_time = 500000)         |\n\n## 重新评估\n\n随后，我们对众多QMIX变体进行了重新评估，统一了标准化的技巧设置（一套**通用**的超参数），结果发现QMIX达到了当前最优水平。\n\n| 场景        | 难度   |   基于值的方法   |                |                |                |                |  基于策略的方法  |       |                |                |\n| ------------ | -------- | :-------------: | :------------: | :------------: | :------------: | :------------: | :------------: | ----- | :------------: | :------------: |\n|              |          |      QMIX      |      VDNs      |     Qatten     |     QPLEX     |     WQMIX     |      LICA      | VMIX  |      DOP      |      RIIT      |\n| 2c_vs_64zg   | 困难     | **100%** | **100%** | **100%** | **100%** | **100%** | **100%** | 98%   |      84%      | **100%** |\n| 8m_vs_9m     | 困难     | **100%** | **100%** | **100%** |      95%      |      95%      |      48%      | 75%   |      96%      |      95%      |\n| 3s_vs_5z     | 困难     | **100%** | **100%** | **100%** | **100%** | **100%** |      96%      | 96%   | **100%** |      96%      |\n| 5m_vs_6m     | 困难     |  **90%**  | **90%** | **90%** | **90%** | **90%** |      53%      | 9%    |      63%      |      67%      |\n| 3s5z_vs_3s6z | 超难     |  **75%**  |      43%      |      62%      |      68%      |      56%      |       0%       | 56%   |       0%       | **75%** |\n| corridor     | 超难     | **100%** |      98%      | **100%** |      96%      |      96%      |       0%       | 0%    |       0%       | **100%** |\n| 6h_vs_8z     | 超难     |       84%       | **87%** |      82%      |      78%      |      75%      |       4%       | 80%   |       0%       |      19%      |\n| MMM2         | 超难     | **100%** |      96%      | **100%** | **100%** |      96%      |       0%       | 70%   |       3%       | **100%** |\n| 27m_vs_30m   | 超难     | **100%** | **100%** | **100%** | **100%** | **100%** |       9%       | 93%   |       0%       |      93%      |\n| Discrete PP  | -          |  **40**  |       39       |       -       |       39       |       39       |       30       | 39    |       38       |       38       |\n| 平均得分   | 困难+      | **94.9%** |     91.2%     |     92.7%     |     92.5%     |     90.5%     |     29.2%     | 67.4% |     44.1%     |     84.0%     |\n\n## 通信\n\n我们还测试了带有注意力机制的QMIX（qmix_att.yaml，$\\lambda=0.3$，attention_heads=4）在一些需要通信的地图上（来自[NDQ](https:\u002F\u002Fgithub.com\u002FTonghanWang\u002FNDQ)）。\n\n| 场景（20万步） | 难度 | 细调版-QMIX（无通信） | 带有注意力的QMIX（通信） |\n| ----------------- | :----: | :-------------------------------: | :----------------------------------: |\n| 1o_10b_vs_1r      |     -     |                56%                |            **87%**            |\n| 1o_2r_vs_4r       |     -     |                50%                |            **95%**            |\n| bane_vs_hM        |     -     |                0%                |            **0%**            |\n\n## Google Football\n\n我们还在一些地图上测试了VDN（vdn_gfootball.yaml）（来自[Google Football](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Ffootball)）。特别地，我们使用`simple115特征`来训练模型（Google Football的原始论文使用的是复杂的`CNN特征`）。我们没有测试QMIX，因为这个环境不提供全局状态信息。\n\n| 场景                   | 难度 | VDN ($\\lambda=1.0$) |\n| -------------------------- | :--------: | :-------------------: |\n| academy_counterattack_hard |     -     |   0.71 (测试分数)   |\n| academy_counterattack_easy |     -     |   0.87 (测试分数)   |\n\n# 使用方法\n\nPyMARL是[WhiRL](http:\u002F\u002Fwhirl.cs.ox.ac.uk)用于深度多智能体强化学习的框架，包含了以下算法的实现：\n\n基于价值的方法：\n\n- [**QMIX**: QMIX：用于深度多智能体强化学习的单调值函数分解](https:\u002F\u002Farxiv.org\u002Fabs\u002F1803.11485)\n- [**VDN**: 用于合作型多智能体学习的价值分解网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.05296)\n- [**IQL**: 独立Q学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F1511.08779)\n- [**QTRAN**: 用于合作型多智能体强化学习的学习转换因子分解](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.05408)\n- [**Qatten**: Qatten：一种通用的合作型多智能体强化学习框架](https:\u002F\u002Farxiv.org\u002Fabs\u002F2002.03939)\n- [**QPLEX**: Qplex：双工斗士型多智能体Q学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F2008.01062)\n- [**WQMIX**: 加权QMIX：扩展单调值函数分解](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.10800)\n\n基于策略梯度的方法：\n\n- [**COMA**: 反事实多智能体策略梯度](https:\u002F\u002Farxiv.org\u002Fabs\u002F1705.08926)\n- [**VMIX**: 值分解多智能体策略梯度](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.12306)\n- [**LICA**: 学习合作型多智能体强化学习中的隐式信用分配](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.02529)\n- [**DOP**: 离线多智能体分解策略梯度](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.12322)\n- [**RIIT**: 重新思考合作型多智能体强化学习中的实现技巧与单调性约束](https:\u002F\u002Farxiv.org\u002Fabs\u002F2102.03479)\n\n## 安装说明\n\n安装Python包\n\n```shell\n# 需要Anaconda 3或Miniconda 3\nconda create -n pymarl python=3.8 -y\nconda activate pymarl\n\nbash install_dependecies.sh\n```\n\n设置StarCraft II（2.4.10）和SMAC：\n\n```shell\nbash install_sc2.sh\n```\n\n这将下载SC2.4.10到thirdparty文件夹，并复制运行所需的地图。\n\n设置Google Football：\n\n```shell\nbash install_gfootball.sh\n```\n\n## 命令行工具\n\n**运行一个实验**\n\n```shell\n# 对于SMAC\npython3 src\u002Fmain.py --config=qmix --env-config=sc2 with env_args.map_name=corridor\n```\n\n```shell\n# 对于难度增强的捕食者-猎物任务\npython3 src\u002Fmain.py --config=qmix_predator_prey --env-config=stag_hunt with env_args.map_name=stag_hunt\n```\n\n```shell\n# 对于通信任务\npython3 src\u002Fmain.py --config=qmix_att --env-config=sc2 with env_args.map_name=1o_10b_vs_1r\n```\n\n```shell\n# 对于Google Football（测试不足）\n# 地图名称：academy_counterattack_easy, academy_counterattack_hard, five_vs_five...\npython3 src\u002Fmain.py --config=vdn_gfootball --env-config=gfootball with env_args.map_name=academy_counterattack_hard env_args.num_agents=4\n```\n\n配置文件充当算法或环境的默认设置。\n\n它们都位于`src\u002Fconfig`中。\n`--config`指的是`src\u002Fconfig\u002Falgs`中的配置文件。\n`--env-config`指的是`src\u002Fconfig\u002Fenvs`中的配置文件。\n\n**并行运行n个实验**\n\n```shell\n# bash run.sh config_name env_config_name map_name_list (arg_list threads_num gpu_list experinments_num)\nbash run.sh qmix sc2 6h_vs_8z epsilon_anneal_time=500000,td_lambda=0.3 2 0 5\n```\n\n`xxx_list`用`,`分隔。\n\n所有结果都将存储在`Results`文件夹中，并以`map_name`命名。\n\n**终止所有训练进程**\n\n```shell\n# 当前用户的所有Python和游戏进程都会退出。\nbash clean.sh\n```\n\n# 引用\n\n```\n@article{hu2021rethinking,\n      title={Rethinking the Implementation Tricks and Monotonicity Constraint in Cooperative Multi-Agent Reinforcement Learning}, \n      author={Jian Hu and Siyang Jiang and Seth Austin Harding and Haibin Wu and Shih-wei Liao},\n      year={2021},\n      eprint={2102.03479},\n      archivePrefix={arXiv},\n      primaryClass={cs.LG}\n}\n```","# PyMARL2 快速上手指南\n\nPyMARL2 是一个针对合作式多智能体强化学习（MARL）优化的开源框架，特别针对星际争霸多智能体挑战（SMAC）进行了微调。它实现了 QMIX、VDN、Qatten 等多种主流算法，并通过调整超参数和实现技巧显著提升了在困难场景下的性能。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04\u002F20.04)\n*   **Python 版本**: 3.8 (必须使用 Conda 管理)\n*   **依赖管理**: Anaconda 3 或 Miniconda 3\n*   **游戏环境**: StarCraft II (版本 2.4.10)\n*   **可选环境**: Google Football (如需测试足球场景)\n\n> **注意**：本项目代码针对 SC2.4.10 版本优化，其他版本可能导致运行错误。\n\n## 安装步骤\n\n### 1. 创建并激活 Conda 环境\n首先创建一个名为 `pymarl` 的 Python 3.8 环境：\n\n```shell\nconda create -n pymarl python=3.8 -y\nconda activate pymarl\n```\n\n### 2. 安装项目依赖\n运行官方提供的脚本来安装必要的 Python 包：\n\n```shell\nbash install_dependecies.sh\n```\n\n### 3. 设置 StarCraft II 和 SMAC\n下载指定版本的星际争霸 II 及所需地图：\n\n```shell\nbash install_sc2.sh\n```\n*该脚本会自动将 SC2.4.10 下载到 `3rdparty` 文件夹并复制必要的地图文件。*\n\n### 4. (可选) 设置 Google Football\n如果您需要运行足球环境任务，请执行：\n\n```shell\nbash install_gfootball.sh\n```\n\n## 基本使用\n\n配置文件中定义了算法默认参数和环境设置：\n*   `--config`: 对应 `src\u002Fconfig\u002Falgs` 下的算法配置（如 `qmix`, `vdn`）。\n*   `--env-config`: 对应 `src\u002Fconfig\u002Fenvs` 下的环境配置（如 `sc2`, `gfootball`）。\n\n### 运行单个实验\n\n**示例 1：在 SMAC 的 \"corridor\" 地图上运行 QMIX 算法**\n```shell\npython3 src\u002Fmain.py --config=qmix --env-config=sc2 with env_args.map_name=corridor\n```\n\n**示例 2：运行需要通信的任务（使用带注意力机制的 QMIX）**\n```shell\npython3 src\u002Fmain.py --config=qmix_att --env-config=sc2 with env_args.map_name=1o_10b_vs_1r\n```\n\n**示例 3：在 Google Football 上运行 VDN 算法**\n```shell\npython3 src\u002Fmain.py --config=vdn_gfootball --env-config=gfootball with env_args.map_name=academy_counterattack_hard env_args.num_agents=4\n```\n\n### 并行运行多个实验\n\n使用 `run.sh` 脚本可以启动并行训练。以下示例展示了如何在 GPU 0 上启动 2 个线程，进行 5 次实验，并自定义超参数：\n\n```shell\n# 语法：bash run.sh [算法配置] [环境配置] [地图名] [超参数列表] [线程数] [GPU ID] [实验次数]\nbash run.sh qmix sc2 6h_vs_8z epsilon_anneal_time=500000,td_lambda=0.3 2 0 5\n```\n\n*   超参数列表使用逗号 `,` 分隔。\n*   所有结果将保存在 `Results` 文件夹中，并以地图名称命名子目录。\n\n### 清理进程\n\n如果需要强制停止所有当前的训练进程（包括 Python 和游戏进程）：\n\n```shell\nbash clean.sh\n```","某游戏 AI 研发团队正在为即时战略游戏《星际争霸 II》开发高难度的多单位协同作战机器人，目标是让 AI 在复杂战场环境下实现近乎完美的胜率。\n\n### 没有 pymarl2 时\n- **超难场景无法攻克**：在\"corridor\"或\"6h_vs_8z\"等超级困难场景中，传统 QMIX 算法胜率长期为 0%，团队陷入调参瓶颈，无法验证策略上限。\n- **样本效率低下导致成本高昂**：缺乏针对采样效率的优化配置（如多进程训练），模型收敛极慢，消耗大量 GPU 算力与时间成本却难以获得稳定策略。\n- **关键技巧缺失导致性能不稳**：未系统整合价值函数裁剪、N-step 回报、死亡智能体掩码等关键工程技巧，导致模型在动态战斗中表现波动大，难以复现论文中的 SOTA 效果。\n\n### 使用 pymarl2 后\n- **全场景覆盖达成完美胜率**：借助预调优的超参数组合，pymarl2 在绝大多数高难场景（如 27m_vs_30m）实现了 100% 胜率，甚至在部分极端场景将胜率从 0% 提升至 93% 以上。\n- **灵活配置提升训练效能**：通过启用 `qmix_high_sample_efficiency.yaml` 等专用配置，利用多进程训练显著提高了样本利用率，用更少的交互数据更快收敛出强力策略。\n- **内置工程技巧确保稳健性**：自动集成正交初始化、奖励缩放、梯度裁剪等十余项关键技巧，消除了手动复现的不确定性，让团队能直接基于稳固基线进行二次创新。\n\npymarl2 通过系统化整合深层强化学习的工程细节，将多智能体协同算法从“理论可行”真正转化为“实战必胜”的生产力工具。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhijkzzz_pymarl2_5d142653.png","hijkzzz",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhijkzzz_76042d30.png","RLer + MLSyser \u002F 2  + NLPer \u002F 2","janhu9527@gmail.com","hujian.website","https:\u002F\u002Fgithub.com\u002Fhijkzzz",[80,84],{"name":81,"color":82,"percentage":83},"Python","#3572A5",99.2,{"name":85,"color":86,"percentage":87},"Shell","#89e051",0.8,707,134,"2026-04-09T12:47:44","Apache-2.0",4,"Linux","未说明（基于 PyTorch 的深度学习框架，通常建议配备 NVIDIA GPU 以加速训练，具体型号和显存取决于场景复杂度）","未说明（运行多进程训练及 StarCraft II 模拟器通常建议 16GB+）",{"notes":97,"python":98,"dependencies":99},"1. 必须安装 StarCraft II 版本 2.4.10 及对应的 SMAC 环境。2. 支持 Google Football 环境（需额外安装脚本）。3. 提供高样本效率配置（qmix_high_sample_efficiency.yaml），使用 4 个进程进行训练，速度较慢但效率更高。4. 不同进程数训练的模型性能不可直接比较。5. 针对超难场景（如 3s5z_vs_3s6z, 6h_vs_8z）需调整特定超参数（如隐藏层大小、lambda 值、epsilon 衰减步数）才能达到最佳效果。","3.8",[100,101,102,103,104,105,106,107,108,109],"torch","snappy","lz4","pytest","protobuf","google-api-python-client","opencv-python","mpyq","portpicker","attrs",[14,13],[112,113,114,115,116],"marl","smac","starcraft","sota","reinforcement-learning","2026-03-27T02:49:30.150509","2026-04-11T17:39:38.795754",[120,125,130,135,140,144],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},29599,"运行 PySC2 环境时遇到 'ConnectError: Failed to connect to the SC2 websocket' 错误怎么办？","该问题通常与 Docker 环境配置有关。建议尝试以下步骤：\n1. 使用 nvidia-docker 运行容器。\n2. 参考官方 Dockerfile 进行构建：https:\u002F\u002Fgithub.com\u002Foxwhirl\u002Fpymarl\u002Fblob\u002Fmaster\u002Fdocker\u002FDockerfile\n3. 如果问题依旧，请彻底删除所有相关文件并重新安装所有内容。\n4. 确保操作系统为 Ubuntu，避免在 macOS 或其他系统上出现兼容性问题。","https:\u002F\u002Fgithub.com\u002Fhijkzzz\u002Fpymarl2\u002Fissues\u002F7",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},29600,"遇到 'ValueError: Reference at refs\u002Fheads\u002Fmaster does not exist' 错误如何解决？","这是由于 sacred 库版本不兼容导致的。解决方法是降低 sacred 库的版本，执行以下命令即可修复：\npip install sacred==0.7.5","https:\u002F\u002Fgithub.com\u002Fhijkzzz\u002Fpymarl2\u002Fissues\u002F37",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},29601,"pymarl2 中动作探索（Epsilon-Greedy）的计算逻辑相比 pymarl 有什么变化？为什么要移到 action_selectors.py？","动作探索的逻辑确实从 basic_controller.py 移动到了 action_selectors.py 中以模块化代码。关于计算方式在 mask 处理上的不同，这是为了更灵活地处理可用动作的概率分布。当启用 mask 时，epsilon 概率下的随机动作只会从当前可用的动作中均匀选择（分母为可用动作数量），而不是所有动作。这种改动确保了智能体不会选择非法动作，提高了训练的稳定性和合理性。","https:\u002F\u002Fgithub.com\u002Fhijkzzz\u002Fpymarl2\u002Fissues\u002F10",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},29602,"在 Windows 环境下运行 COMA 算法时报错 'RuntimeError: invalid multinomial distribution (encountering probability entry \u003C 0)' 是什么原因？","该错误通常是由于梯度爆炸导致网络输出出现 NaN 或负数概率值引起的。特别是在 Windows 环境下使用 PyTorch 1.x 版本时，RNN Agent 中的 relu 激活函数可能在多次迭代后因梯度累积导致数值不稳定。\n建议解决方案：\n1. 检查并限制梯度裁剪（gradient clipping）的参数设置。\n2. 尝试降低学习率。\n3. 确保输入数据已归一化。\n4. 如果可能，建议在 Linux 环境下运行以避免潜在的数值计算差异。","https:\u002F\u002Fgithub.com\u002Fhijkzzz\u002Fpymarl2\u002Fissues\u002F1",{"id":141,"question_zh":142,"answer_zh":143,"source_url":134},29603,"在 episode_runner 中创建 batch 时，设备（device）选择逻辑是怎样的？是否存在冗余的 CPU-GPU 转换？","是的，存在潜在的冗余转换。逻辑如下：\n1. self.new_batch() 初始化时会根据 self.args.device（如果是 cuda）创建在 GPU 上的 batch。\n2. 但在后续将 episode_batch 加入全局 buffer 时，数据会被强制转移到 CPU 存储。\n3. 这意味着数据经历了 GPU -> CPU 的转移，而在生成过程中如果先转 CPU 再转回 GPU 确实是冗余的。\n优化建议：在生成 episode_batch 的初始阶段直接使用 CPU，或者在加入 buffer 前统一处理设备转移逻辑，以减少不必要的内存拷贝开销。",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},29604,"QMIX 算法在 corridor 地图下胜率一直为 0 且偶尔出现非法 ACTION 断言错误，如何排查？","针对胜率为 0 的问题：\n1. Corridor 是一张高难度地图，可能需要调整超参数（如学习率、epsilon 衰减策略）或增加训练步数。\n2. 检查是否使用了正确的配置文件（如 qmix_high_sample_efficiency.yaml）。\n\n针对非法 ACTION 断言错误：\n1. 这通常发生在动作选择逻辑未正确屏蔽非法动作时。\n2. 检查 action_selector 中的 mask 逻辑是否正确应用，确保在采样前已将不可用动作的概率置为 0 或极小值。\n3. 确认环境返回的 avail_actions 掩码与智能体接收到的状态一致。","https:\u002F\u002Fgithub.com\u002Fhijkzzz\u002Fpymarl2\u002Fissues\u002F32",[]]