[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google-deepmind--mctx":3,"tool-google-deepmind--mctx":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":96,"env_os":97,"env_gpu":98,"env_ram":97,"env_deps":99,"category_tags":103,"github_topics":104,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":107,"updated_at":108,"faqs":109,"releases":138},2444,"google-deepmind\u002Fmctx","mctx","Monte Carlo tree search in JAX","mctx 是一个基于 JAX 框架原生实现的蒙特卡洛树搜索（MCTS）算法库。它专为强化学习领域设计，支持包括 AlphaZero、MuZero 和 Gumbel MuZero 在内的多种先进搜索算法。简单来说，mctx 让智能体能够在复杂环境中通过“模拟推演”来做出更优决策，从而最大化累积奖励。\n\n在人工智能研究中，将搜索算法与深度神经网络结合是提升智能体性能的关键路径，但传统实现往往依赖 C++ 等编译型语言，导致代码难以阅读、修改和扩展，这在一定程度上阻碍了研究人员的创新效率。mctx 的出现正是为了解决这一痛点。它利用 JAX 的特性，既保持了高性能计算能力，又提供了 Python 级别的易用性和灵活性，让开发者能够轻松地在纯 Python 环境中进行实验和迭代。\n\nmctx 的核心技术亮点在于其完全支持 JIT（即时）编译，显著提升了计算速度。同时，它天然支持批量输入并行处理，能够充分利用 GPU 或 TPU 等硬件加速器的算力，高效处理由深度神经网络参数化的大规模环境模型。这种设计使得算法在处理复杂任务时依然保持极高的响应速度。\n\n这款工具主要面向 AI 研究人员、算法工程","mctx 是一个基于 JAX 框架原生实现的蒙特卡洛树搜索（MCTS）算法库。它专为强化学习领域设计，支持包括 AlphaZero、MuZero 和 Gumbel MuZero 在内的多种先进搜索算法。简单来说，mctx 让智能体能够在复杂环境中通过“模拟推演”来做出更优决策，从而最大化累积奖励。\n\n在人工智能研究中，将搜索算法与深度神经网络结合是提升智能体性能的关键路径，但传统实现往往依赖 C++ 等编译型语言，导致代码难以阅读、修改和扩展，这在一定程度上阻碍了研究人员的创新效率。mctx 的出现正是为了解决这一痛点。它利用 JAX 的特性，既保持了高性能计算能力，又提供了 Python 级别的易用性和灵活性，让开发者能够轻松地在纯 Python 环境中进行实验和迭代。\n\nmctx 的核心技术亮点在于其完全支持 JIT（即时）编译，显著提升了计算速度。同时，它天然支持批量输入并行处理，能够充分利用 GPU 或 TPU 等硬件加速器的算力，高效处理由深度神经网络参数化的大规模环境模型。这种设计使得算法在处理复杂任务时依然保持极高的响应速度。\n\n这款工具主要面向 AI 研究人员、算法工程师以及对强化学习感兴趣的开发者。如果你正在探索基于搜索的智能体算法，或者希望在不牺牲性能的前提下快速验证新的研究想法，mctx 提供了一个平衡了性能与开发体验的理想平台。通过 PyPI 即可快速安装上手，助力你更高效地投身于下一代搜索算法的研究与开发中。","# Mctx: MCTS-in-JAX\n\nMctx is a library with a [JAX](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax)-native\nimplementation of Monte Carlo tree search (MCTS) algorithms such as\n[AlphaZero](https:\u002F\u002Fdeepmind.com\u002Fblog\u002Farticle\u002Falphazero-shedding-new-light-grand-games-chess-shogi-and-go),\n[MuZero](https:\u002F\u002Fdeepmind.com\u002Fblog\u002Farticle\u002Fmuzero-mastering-go-chess-shogi-and-atari-without-rules), and\n[Gumbel MuZero](https:\u002F\u002Fopenreview.net\u002Fforum?id=bERaNdoegnO). For computation\nspeed up, the implementation fully supports JIT-compilation. Search algorithms\nin Mctx are defined for and operate on batches of inputs, in parallel. This\nallows to make the most of the accelerators and enables the algorithms to work\nwith large learned environment models parameterized by deep neural networks.\n\n## Installation\n\nYou can install the latest released version of Mctx from PyPI via:\n\n```sh\npip install mctx\n```\n\nor you can install the latest development version from GitHub:\n\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx.git\n```\n\n## Motivation\n\nLearning and search have been important topics since the early days of AI\nresearch. In the [words of Rich Sutton](http:\u002F\u002Fwww.incompleteideas.net\u002FIncIdeas\u002FBitterLesson.html):\n\n> One thing that should be learned [...] is the great power of general purpose\n> methods, of methods that continue to scale with increased computation even as\n> the available computation becomes very great. The two methods that seem to\n> scale arbitrarily in this way are *search* and *learning*.\n\nRecently, search algorithms have been successfully combined with learned models\nparameterized by deep neural networks, resulting in some of the most powerful\nand general reinforcement learning algorithms to date (e.g. MuZero).\nHowever, using search algorithms in combination with deep neural networks\nrequires efficient implementations, typically written in fast compiled\nlanguages; this can come at the expense of usability and hackability,\nespecially for researchers that are not familiar with C++. In turn, this limits\nadoption and further research on this critical topic.\n\nThrough this library, we hope to help researchers everywhere to contribute to\nsuch an exciting area of research. We provide JAX-native implementations of core\nsearch algorithms such as MCTS, that we believe strike a good balance between\nperformance and usability for researchers that want to investigate search-based\nalgorithms in Python. The search methods provided by Mctx are\nheavily configurable to allow researchers to explore a variety of ideas in\nthis space, and contribute to the next generation of search based agents.\n\n## Search in Reinforcement Learning\n\nIn Reinforcement Learning the *agent* must learn to interact with the\n*environment* in order to maximize a scalar *reward* signal. On each step the\nagent must select an action and receives in exchange an observation and a\nreward. We may call whatever mechanism the agent uses to select the action the\nagent's *policy*.\n\nClassically, policies are parameterized directly by a function approximator (as\nin REINFORCE), or policies are inferred by inspecting a set of learned estimates\nof the value of each action (as in Q-learning). Alternatively, search allows to\nselect actions by constructing on the fly, in each state, a policy or a value\nfunction local to the current state, by *searching* using a learned *model* of\nthe environment.\n\nExhaustive search over all possible future courses of actions is computationally\nprohibitive in any non trivial environment, hence we need search algorithms\nthat can make the best use of a finite computational budget. Typically priors\nare needed to guide which nodes in the search tree to expand (to reduce the\n*breadth* of the tree that we construct), and value functions are used to\nestimate the value of incomplete paths in the tree that don't reach an episode\ntermination (to reduce the *depth* of the search tree).\n\n## Quickstart\n\nMctx provides a low-level generic `search` function and high-level concrete\npolicies: `muzero_policy` and `gumbel_muzero_policy`.\n\nThe user needs to provide several learned components to specify the\nrepresentation, dynamics and prediction used by [MuZero](https:\u002F\u002Fdeepmind.com\u002Fblog\u002Farticle\u002Fmuzero-mastering-go-chess-shogi-and-atari-without-rules).\nIn the context of the Mctx library, the representation of the *root* state is\nspecified by a `RootFnOutput`. The `RootFnOutput` contains the `prior_logits`\nfrom a policy network, the estimated `value` of the root state, and any\n`embedding` suitable to represent the root state for the environment model.\n\nThe dynamics environment model needs to be specified by a `recurrent_fn`.\nA `recurrent_fn(params, rng_key, action, embedding)` call takes an `action` and\na state `embedding`. The call should return a tuple `(recurrent_fn_output,\nnew_embedding)` with a `RecurrentFnOutput` and the embedding of the next state.\nThe `RecurrentFnOutput` contains the `reward` and `discount` for the transition,\nand `prior_logits` and `value` for the new state.\n\nIn [`examples\u002Fvisualization_demo.py`](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fblob\u002Fmain\u002Fexamples\u002Fvisualization_demo.py), you can\nsee calls to a policy:\n\n```python\npolicy_output = mctx.gumbel_muzero_policy(params, rng_key, root, recurrent_fn,\n                                          num_simulations=32)\n```\n\nThe `policy_output.action` contains the action proposed by the search. That\naction can be passed to the environment. To improve the policy, the\n`policy_output.action_weights` contain targets usable to train the policy\nprobabilities.\n\nWe recommend to use the `gumbel_muzero_policy`.\n[Gumbel MuZero](https:\u002F\u002Fopenreview.net\u002Fforum?id=bERaNdoegnO) guarantees a policy\nimprovement if the action values are correctly evaluated. The policy improvement\nis demonstrated in\n[`examples\u002Fpolicy_improvement_demo.py`](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fblob\u002Fmain\u002Fexamples\u002Fpolicy_improvement_demo.py).\n\n### Example projects\nThe following projects demonstrate the Mctx usage:\n\n- [Pgx](https:\u002F\u002Fgithub.com\u002Fsotetsuk\u002Fpgx) — A collection of 20+ vectorized\n  JAX environments, including backgammon, chess, shogi, Go, and an AlphaZero\n  example.\n- [Basic Learning Demo with Mctx](https:\u002F\u002Fgithub.com\u002Fkenjyoung\u002Fmctx_learning_demo) —\n  AlphaZero on random mazes.\n- [a0-jax](https:\u002F\u002Fgithub.com\u002FNTT123\u002Fa0-jax) — AlphaZero on Connect Four,\n  Gomoku, and Go.\n- [muax](https:\u002F\u002Fgithub.com\u002Fbwfbowen\u002Fmuax) — MuZero on gym-style environments\n(CartPole, LunarLander).\n- [Classic MCTS](https:\u002F\u002Fgithub.com\u002FCarbon225\u002Fmctx-classic) — A simple example on Connect Four.\n- [mctx-az](https:\u002F\u002Fgithub.com\u002Flowrollr\u002Fmctx-az) — Mctx with AlphaZero subtree persistence.\n\nTell us about your project.\n\n## Citing Mctx\n\nThis repository is part of the DeepMind JAX Ecosystem, to cite Mctx\nplease use the citation:\n\n```bibtex\n@software{deepmind2020jax,\n  title = {The {D}eep{M}ind {JAX} {E}cosystem},\n  author = {DeepMind and Babuschkin, Igor and Baumli, Kate and Bell, Alison and Bhupatiraju, Surya and Bruce, Jake and Buchlovsky, Peter and Budden, David and Cai, Trevor and Clark, Aidan and Danihelka, Ivo and Dedieu, Antoine and Fantacci, Claudio and Godwin, Jonathan and Jones, Chris and Hemsley, Ross and Hennigan, Tom and Hessel, Matteo and Hou, Shaobo and Kapturowski, Steven and Keck, Thomas and Kemaev, Iurii and King, Michael and Kunesch, Markus and Martens, Lena and Merzic, Hamza and Mikulik, Vladimir and Norman, Tamara and Papamakarios, George and Quan, John and Ring, Roman and Ruiz, Francisco and Sanchez, Alvaro and Sartran, Laurent and Schneider, Rosalia and Sezener, Eren and Spencer, Stephen and Srinivasan, Srivatsan and Stanojevi\\'{c}, Milo\\v{s} and Stokowiec, Wojciech and Wang, Luyu and Zhou, Guangyao and Viola, Fabio},\n  url = {http:\u002F\u002Fgithub.com\u002Fdeepmind},\n  year = {2020},\n}\n```\n","# Mctx: MCTS-in-JAX\n\nMctx 是一个库，提供了基于 [JAX](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax) 的原生实现，支持蒙特卡洛树搜索（MCTS）算法，例如 [AlphaZero](https:\u002F\u002Fdeepmind.com\u002Fblog\u002Farticle\u002Falphazero-shedding-new-light-grand-games-chess-shogi-and-go)、[MuZero](https:\u002F\u002Fdeepmind.com\u002Fblog\u002Farticle\u002Fmuzero-mastering-go-chess-shogi-and-atari-without-rules) 和 [Gumbel MuZero](https:\u002F\u002Fopenreview.net\u002Fforum?id=bERaNdoegnO)。为了提升计算速度，该实现完全支持 JIT 编译。Mctx 中的搜索算法是为批量输入设计的，并且可以并行运行。这使得加速器能够得到充分利用，同时也让这些算法能够处理由深度神经网络参数化的大型学习型环境模型。\n\n## 安装\n\n你可以通过 PyPI 安装最新发布的 Mctx 版本：\n\n```sh\npip install mctx\n```\n\n或者从 GitHub 安装最新的开发版本：\n\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx.git\n```\n\n## 动机\n\n自人工智能研究的早期以来，学习和搜索一直是重要的研究课题。正如 Rich Sutton 所说：\n\n> 我们应该认识到的一点是通用方法的强大之处——即使可用的计算资源变得非常庞大，这些方法仍然能够随着计算能力的提升而不断扩展。目前看来，能够以这种方式无限扩展的两种方法就是 *搜索* 和 *学习*。\n\n近年来，搜索算法与由深度神经网络参数化的学习模型成功结合，产生了迄今为止最强大、最通用的强化学习算法之一（如 MuZero）。然而，在将搜索算法与深度神经网络结合使用时，通常需要高效的实现，而这些实现往往用快速编译的语言编写；这可能会牺牲易用性和可 hack 性，尤其是对于不熟悉 C++ 的研究人员而言。因此，这限制了这一关键领域的采用和进一步研究。\n\n通过这个库，我们希望帮助全球的研究人员参与到这一激动人心的研究领域中。我们提供了诸如 MCTS 等核心搜索算法的 JAX 原生实现，我们认为这些实现能够在性能和易用性之间取得良好的平衡，适合希望在 Python 中探索基于搜索算法的研究人员。Mctx 提供的搜索方法高度可配置，允许研究人员在这个领域探索各种想法，并为下一代基于搜索的智能体做出贡献。\n\n## 强化学习中的搜索\n\n在强化学习中，*智能体* 必须学会与 *环境* 交互，以最大化标量 *奖励* 信号。在每一步中，智能体必须选择一个动作，并获得相应的观测和奖励。智能体用来选择动作的任何机制都可以称为智能体的 *策略*。\n\n传统上，策略可以直接由函数近似器参数化（如 REINFORCE），或者通过检查一组已学习的动作价值估计来推断策略（如 Q 学习）。另一种方法是利用搜索，即在每个状态下，通过使用学习到的环境 *模型* 进行 *搜索*，即时构建针对当前状态的局部策略或价值函数，从而选择动作。\n\n在任何非平凡环境中，对所有可能的未来行动序列进行穷举搜索在计算上都是不可行的，因此我们需要能够在有限的计算预算内发挥最大作用的搜索算法。通常，我们需要先验信息来指导搜索树中哪些节点需要扩展（以减少我们构建的树的 *宽度*），同时还需要价值函数来估计那些未到达回合终止状态的不完整路径的价值（以减少搜索树的 *深度*）。\n\n## 快速入门\n\nMctx 提供了一个低层次的通用 `search` 函数，以及两个高层次的具体策略：`muzero_policy` 和 `gumbel_muzero_policy`。\n\n用户需要提供若干学习到的组件，以指定 [MuZero](https:\u002F\u002Fdeepmind.com\u002Fblog\u002Farticle\u002Fmuzero-mastering-go-chess-shogi-and-atari-without-rules) 所使用的表示、动力学和预测模块。在 Mctx 库的上下文中，*根状态* 的表示由 `RootFnOutput` 指定。`RootFnOutput` 包含来自策略网络的 `prior_logits`、根状态的估计 *value*，以及任何适合用于环境模型表示根状态的 `embedding`。\n\n环境的动力学模型需要由一个 `recurrent_fn` 来指定。`recurrent_fn(params, rng_key, action, embedding)` 函数接受一个 `action` 和一个状态 `embedding`。该函数应返回一个元组 `(recurrent_fn_output, new_embedding)`，其中包含 `RecurrentFnOutput` 以及下一个状态的嵌入。`RecurrentFnOutput` 包含此次转移的 `reward` 和 `discount`，以及新状态的 `prior_logits` 和 `value`。\n\n在 [`examples\u002Fvisualization_demo.py`](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fblob\u002Fmain\u002Fexamples\u002Fvisualization_demo.py) 中，你可以看到如下策略调用：\n\n```python\npolicy_output = mctx.gumbel_muzero_policy(params, rng_key, root, recurrent_fn,\n                                          num_simulations=32)\n```\n\n`policy_output.action` 包含搜索建议的动作，该动作可以传递给环境。为了改进策略，`policy_output.action_weights` 包含可用于训练策略概率的目标值。\n\n我们推荐使用 `gumbel_muzero_policy`。[Gumbel MuZero](https:\u002F\u002Fopenreview.net\u002Fforum?id=bERaNdoegnO) 在正确评估动作价值的情况下，能够保证策略的改进。策略改进的效果可以在 [`examples\u002Fpolicy_improvement_demo.py`](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fblob\u002Fmain\u002Fexamples\u002Fpolicy_improvement_demo.py) 中看到。\n\n### 示例项目\n以下项目展示了 Mctx 的使用：\n\n- [Pgx](https:\u002F\u002Fgithub.com\u002Fsotetsuk\u002Fpgx) — 一个包含 20 多个向量化 JAX 环境的集合，包括西洋双陆棋、国际象棋、将棋、围棋，以及一个 AlphaZero 示例。\n- [使用 Mctx 的基础学习演示](https:\u002F\u002Fgithub.com\u002Fkenjyoung\u002Fmctx_learning_demo) — 随机迷宫上的 AlphaZero。\n- [a0-jax](https:\u002F\u002Fgithub.com\u002FNTT123\u002Fa0-jax) — 四子连线、五子棋和围棋上的 AlphaZero。\n- [muax](https:\u002F\u002Fgithub.com\u002Fbwfbowen\u002Fmuax) — Gym 风格环境中（CartPole、LunarLander）的 MuZero。\n- [经典 MCTS](https:\u002F\u002Fgithub.com\u002FCarbon225\u002Fmctx-classic) — 四子连线的一个简单示例。\n- [mctx-az](https:\u002F\u002Fgithub.com\u002Flowrollr\u002Fmctx-az) — 带有 AlphaZero 子树持久化的 Mctx。\n\n请告诉我们你的项目！\n\n## 引用 Mctx\n\n本仓库是 DeepMind JAX 生态系统的一部分，如需引用 Mctx，请使用以下引用格式：\n\n```bibtex\n@software{deepmind2020jax,\n  title = {DeepMind JAX 生态系统},\n  author = {DeepMind 以及 Babuschkin, Igor、Baumli, Kate、Bell, Alison、Bhupatiraju, Surya、Bruce, Jake、Buchlovsky, Peter、Budden, David、Cai, Trevor、Clark, Aidan、Danihelka, Ivo、Dedieu, Antoine、Fantacci, Claudio、Godwin, Jonathan、Jones, Chris、Hemsley, Ross、Hennigan, Tom、Hessel, Matteo、Hou, Shaobo、Kapturowski, Steven、Keck, Thomas、Kemaev, Iurii、King, Michael、Kunesch, Markus、Martens, Lena、Merzic, Hamza、Mikulik, Vladimir、Norman, Tamara、Papamakarios, George、Quan, John、Ring, Roman、Ruiz, Francisco、Sanchez, Alvaro、Sartran, Laurent、Schneider, Rosalia、Sezener, Eren、Spencer, Stephen、Srinivasan, Srivatsan、Stanojevi\\'{c}, Milo\\v{s}、Stokowiec, Wojciech、Wang, Luyu、Zhou, Guangyao、Viola, Fabio},\n  url = {http:\u002F\u002Fgithub.com\u002Fdeepmind},\n  year = {2020},\n}\n```","# Mctx 快速上手指南\n\nMctx 是一个基于 JAX 原生实现的蒙特卡洛树搜索（MCTS）算法库，支持 AlphaZero、MuZero 和 Gumbel MuZero 等算法。它完全支持 JIT 编译，能够并行处理批量输入，充分利用加速器性能，非常适合与深度神经网络结合进行强化学习研究。\n\n## 环境准备\n\n*   **系统要求**：Linux、macOS 或 Windows（推荐 Linux 以获得最佳 GPU\u002FTPU 支持）。\n*   **前置依赖**：\n    *   Python 3.8+\n    *   [JAX](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax)：Mctx 强依赖于 JAX 生态。请确保已根据硬件环境（CPU\u002FGPU\u002FTPU）正确安装 JAX 及其对应的加速后端（如 `jax[cuda12]` 等）。\n\n## 安装步骤\n\n你可以选择从 PyPI 安装稳定版，或从 GitHub 安装最新开发版。\n\n**选项 1：安装最新稳定版（推荐）**\n\n```sh\npip install mctx\n```\n\n**选项 2：安装最新开发版**\n\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx.git\n```\n\n> **提示**：如果下载速度较慢，可配置 pip 使用国内镜像源（如清华源）：\n> `pip install mctx -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 基本使用\n\nMctx 提供了底层的通用 `search` 函数以及高层的具体策略实现，如 `muzero_policy` 和 `gumbel_muzero_policy`。官方推荐使用 `gumbel_muzero_policy`，因为它在动作价值评估准确时能保证策略提升。\n\n### 核心概念\n\n在使用前，你需要定义两个关键组件：\n\n1.  **根状态表示 (`RootFnOutput`)**：包含策略网络的先验 logits (`prior_logits`)、根状态的估计价值 (`value`) 以及用于环境模型的状态嵌入 (`embedding`)。\n2.  **递归动力学模型 (`recurrent_fn`)**：一个函数 `recurrent_fn(params, rng_key, action, embedding)`，接收动作和当前状态嵌入，返回 `(RecurrentFnOutput, new_embedding)`。其中 `RecurrentFnOutput` 包含转移的奖励 (`reward`)、折扣因子 (`discount`) 以及新状态的先验 logits 和价值。\n\n### 代码示例\n\n以下展示了如何调用 Gumbel MuZero 策略进行搜索：\n\n```python\nimport mctx\n\n# 假设 params, rng_key, root, recurrent_fn 已经定义好\n# num_simulations: 模拟次数，控制搜索预算\npolicy_output = mctx.gumbel_muzero_policy(\n    params, \n    rng_key, \n    root, \n    recurrent_fn,\n    num_simulations=32\n)\n\n# 获取搜索建议的动作\naction = policy_output.action\n\n# 获取用于训练策略概率的目标权重\naction_weights = policy_output.action_weights\n```\n\n执行后，`policy_output.action` 即为智能体应采取的动作，可直接传入环境交互；`policy_output.action_weights` 可用于后续的策略网络训练优化。\n\n更多完整示例（包括可视化演示和策略提升验证）请参考仓库中的 `examples\u002F` 目录。","某AI研究团队正在开发基于MuZero算法的复杂策略游戏智能体，需要利用蒙特卡洛树搜索（MCTS）结合深度神经网络模型进行决策优化，以在有限计算资源下实现超越人类玩家的博弈水平。\n\n### 没有 mctx 时\n- **开发门槛高且迭代慢**：传统高效MCTS实现多依赖C++编写，Python研究人员需跨越语言障碍进行混合编程，调试困难，导致算法原型验证周期长达数周。\n- **硬件加速利用率低**：自定义实现难以完美适配GPU\u002FTPU的并行计算特性，往往只能串行处理单个状态搜索，无法充分利用现代加速器的批量计算能力，训练效率低下。\n- **代码复用性与兼容性差**：自行维护的搜索算法与JAX生态割裂，无法直接享受JAX的自动微分和即时编译（JIT）优势，每次修改网络结构都需重写大量底层交互代码。\n- **扩展实验成本高**：若想尝试Gumbel MuZero等变体算法，需从头重构搜索逻辑，缺乏统一接口支持快速切换不同搜索策略，严重阻碍创新探索。\n\n### 使用 mctx 后\n- **纯Python原生开发体验**：mctx提供JAX原生的MCTS实现，研究人员仅需使用Python即可调用高性能搜索算法，无需关心底层C++细节，原型开发时间缩短至几天。\n- **极致并行计算性能**：天然支持批量输入并行搜索，能充分榨取GPU\u002FTPU算力，显著加快大规模神经网络环境模型下的推理速度，提升整体训练吞吐量。\n- **无缝集成JAX生态**：完全兼容JAX的JIT编译和自动微分，搜索过程可端到端梯度传播，代码简洁且易于维护，实现了性能与易用性的最佳平衡。\n- **灵活配置算法变体**：内置AlphaZero、MuZero及Gumbel MuZero等多种标准算法接口，参数高度可配置，研究者可通过少量代码调整快速对比不同搜索策略效果。\n\nmctx通过提供高性能、易用的JAX原生MCTS实现，消除了强化学习研究中搜索算法的工程壁垒，让研究者能专注于算法创新而非底层优化。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_mctx_e5c05d81.png","google-deepmind","Google DeepMind","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle-deepmind_06b1dd17.png","",null,"https:\u002F\u002Fwww.deepmind.com\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind",[84,88],{"name":85,"color":86,"percentage":87},"Python","#3572A5",97.8,{"name":89,"color":90,"percentage":91},"Shell","#89e051",2.2,2603,206,"2026-04-02T19:01:29","Apache-2.0",1,"未说明","未说明（但文中提到支持加速器加速，通常指 GPU\u002FTPU）",{"notes":100,"python":97,"dependencies":101},"该库是 JAX 原生的蒙特卡洛树搜索（MCTS）实现，完全支持 JIT 编译以加速计算。算法针对批量输入并行操作，旨在充分利用加速器（如 GPU\u002FTPU）并与深度神经网络参数化的环境模型配合使用。可通过 PyPI 或 GitHub 安装。",[102],"jax",[13],[102,105,106],"reinforcement-learning","monte-carlo-tree-search","2026-03-27T02:49:30.150509","2026-04-06T05:16:42.198507",[110,115,120,125,130,134],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},11243,"在 Gumbel MuZero 中，应该使用什么作为价值（Value）预测的目标？","不应直接使用回传到根节点的价值，因为它可能不对应于改进后的策略。建议使用基于搜索树中访问计数（visit counts）加权计算的 Q 值作为价值目标。注意：不建议仅使用“最可能动作”的 Q 值，因为被选中的动作并不总是概率最高的动作。如果 Q 值估计正确，这将是一个正确的策略价值估计器。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fissues\u002F21",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},11244,"在使用 Gumbel MuZero 策略时，应该直接使用 policy_output.action 还是根据访问计数采样动作来构建训练轨迹？","不应该将访问计数（visit counts）直接用作训练目标分布。`policy_output.action` 已经包含了基于 Gumbel 噪声选择的探索性动作，这个动作旨在用于构建具有探索性的移动。虽然附录 F 提到了与计数成比例的采样，但在实际实现中，访问计数主要用于产生探索性动作，而不是作为固定的目标分布形状。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fissues\u002F38",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},11245,"Stochastic MuZero 中出现无效的动作索引和结果索引（如负数或超出范围的值）是怎么回事？","这是一个已知问题。在 JAX 中，越界索引（out-of-bounds indexing）的行为可能导致未定义行为，特别是在反向模式自动微分中。如果传递给 `decision_recurrent_fn` 和 `chance_recurrent_fn` 的索引超出有效范围，可能会导致下游出现错误。建议在将这些索引传递给函数之前，将其裁剪（clip）到有效范围内，或者确保模型逻辑能正确处理这些边界情况。维护者已确认此问题并进行了修复。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fissues\u002F88",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},11246,"训练围棋代理时，推荐设置多少次模拟（num_simulations）？不同模拟次数对最终强度影响大吗？","模拟次数对性能有显著影响。通常来说，1600 次搜索 > 800 次搜索 > 400 次搜索。如果在训练中使用 400 次模拟，代理可能会停止变强且无法达到超人水平，这是正常的。增加模拟次数通常能带来更强的性能，但也会降低训练速度。评估时使用不同的 num_simulations 并不完全等价，但在一定范围内，如果在低模拟次数下 Agent A 优于 Agent B，通常在高模拟次数下也保持优势，不过具体表现需实验验证。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fissues\u002F83",{"id":131,"question_zh":132,"answer_zh":133,"source_url":129},11247,"如果在训练中先使用 num_simulations=800，然后改为 num_simulations=400 继续训练，会发生什么？","减少模拟次数可能会导致代理性能下降或停止提升。模拟次数决定了搜索的深度和广度，较低的模拟次数意味着较少的计算资源和较差的策略评估。如果之前已经在高模拟次数下训练，突然降低模拟次数可能会导致代理无法充分利用之前的知识，甚至导致性能退化。建议保持一致或逐渐调整，并监控 Elo 分数变化。",{"id":135,"question_zh":136,"answer_zh":137,"source_url":129},11248,"MCTX 是否支持多 GPU 加速推理？如何在自我对弈中加速单局游戏的移动生成？","MCTX 主要设计用于 TPU 环境。虽然自我对弈可以在多个 GPU 上并行运行多个游戏，但要加速单个游戏的移动生成（即单次推理），多 GPU 的支持并不直接且效果有限。维护者表示不清楚广播（broadcasting）使用的具体结果，且许多实现细节依赖于 TPU。对于单局加速，通常更依赖于算法优化和硬件本身的单核性能，而非简单的多 GPU 并行。",[139,144,149,154,159],{"id":140,"version":141,"summary_zh":142,"released_at":143},61708,"v0.0.6","## 变更内容\n* 在 https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fpull\u002F90 中，由 @copybara-service[bot] 添加了指向 mctx-az 的链接。\n* 在 https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fpull\u002F91 中，由 @copybara-service[bot] 将已弃用的 `jax.tree_*` 函数替换为 `jax.tree.*`。\n* 在 https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fpull\u002F92 中，由 @KazukiOhta 修复了 tree.py 中的拼写错误。\n* 在 https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fpull\u002F95 中，由 @carlosgmartin 将已弃用的 `jax.tree_util.tree_map` 替换为 `jax.tree.map`，并修复了传递给 `jax.numpy.finfo` 调用的参数。\n* 在 https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fpull\u002F101 中，由 @copybara-service[bot] 忽略了 pylint 的重构提示。\n\n## 新贡献者\n* @KazukiOhta 在 https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fpull\u002F92 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fcompare\u002Fv0.0.5...v0.0.6","2025-09-02T09:58:49",{"id":145,"version":146,"summary_zh":147,"released_at":148},61709,"v0.0.5","## 变更内容\n* 自动确定 stochastic_muzero_policy 中的 num_actions 和 num_chance_outcomes（感谢 Carlos Martin）。\n* 即使在启用 jax_enable_x64 的情况下，也显式使用 int32 作为 argmax 的输出类型。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fcompare\u002Fv0.0.3...v0.0.5","2023-11-24T11:52:10",{"id":150,"version":151,"summary_zh":152,"released_at":153},61710,"v0.0.4","## 变更内容\n* 自动确定 stochastic_muzero_policy 中的 num_actions 和 num_chance_outcomes（感谢 Carlos Martin）。\n* 即使在启用 jax_enable_x64 的情况下，也显式使用 int32 作为 argmax 的输出类型。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmctx\u002Fcompare\u002Fv0.0.3...v0.0.4","2023-11-24T10:49:59",{"id":155,"version":156,"summary_zh":157,"released_at":158},61711,"v0.0.3","## 变更内容\n* 添加对随机版 MuZero 的实验性支持。\n* 修复 pylint 和 pytype 的警告。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Fmctx\u002Fcompare\u002Fv0.0.2...v0.0.3","2023-07-24T20:29:08",{"id":160,"version":161,"summary_zh":162,"released_at":163},61712,"v0.0.2","## 变更内容\n* 在四子棋、五子棋和围棋中添加指向 a0-jax 的链接。\n* 通过避免使用未使用的 NaN 来改进调试。\n* 使用 jax.tree_util 以避免弃用警告。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Fmctx\u002Fcommits\u002Fv0.0.2","2022-07-26T10:18:52"]