DexterousHands

GitHub
1k 117 较难 1 次阅读 5天前Apache-2.0开发框架其他
AI 解读 由 AI 自动生成,仅供参考

DexterousHands(又名 Bi-DexHands)是一个基于 Isaac Gym 构建的开源库,专注于提供双手灵巧操作任务与强化学习算法。它旨在解决现代机器人研究中双手协调与手指精细操作难以达到人类水平的挑战,为学术界和工业界提供了一个高保真的仿真基准。

该工具特别适合机器人学研究人员、强化学习开发者以及多智能体系统探索者使用。其核心亮点在于极高的运行效率,利用 GPU 并行计算能力,单张显卡即可同时运行数千个仿真环境,大幅加速训练过程。此外,DexterousHands 支持异构智能体协作,真实模拟了手指、关节等不同部件的特性,区别于传统参数共享的多智能体环境。它还提供了丰富的任务场景(如传递、投掷、放置等)和超过 2000 种物体模型,并支持视觉观测与点云输入,能够很好地满足元学习、多任务学习及离线强化学习等前沿算法的验证需求。无论是想要复现经典算法,还是探索新的双手协作策略,DexterousHands 都是一个功能强大且易于集成的研究平台。

使用场景

某机器人实验室团队正致力于训练一双机械手协同完成复杂的“物体递接”与“精准放置”任务,以服务于柔性制造场景。

没有 DexterousHands 时

  • 仿真效率极低:传统单环境串行训练方式导致数据采样缓慢,在普通显卡上难以支撑大规模强化学习所需的亿级交互步数,模型收敛需数周时间。
  • 缺乏双手基准:社区缺少专门针对双臂异构协作的标准测试环境,研究人员不得不自行搭建简陋场景,难以公平对比多智能体强化学习(MARL)算法效果。
  • 感知能力受限:现有工具多仅支持关节角度等本体感知,缺乏深度相机点云输入支持,导致机器人无法像人类一样基于视觉进行精细的空间定位与抓取。
  • 泛化验证困难:由于缺乏多样化的物体库(如 YCB 数据集),训练出的策略往往只能处理特定形状物体,一旦更换目标物品,机器人便无法适应。

使用 DexterousHands 后

  • 千倍加速训练:依托 Isaac Gym 并行架构,DexterousHands 能在单张 RTX 3090 上同时运行 2048 个环境,实现超 40,000 FPS 的仿真速度,将训练周期从数周缩短至数小时。
  • 开箱即用的基准:直接提供涵盖递接、抛掷、放置等丰富任务的双手操作基准,支持主流 RL 算法一键调用,让团队能立即专注于算法优化而非环境搭建。
  • 视觉融合感知:原生支持将深度图像转换为点云作为观测输入,使机械手能基于实时视觉反馈调整手指姿态,显著提升了非结构化环境下的操作成功率。
  • 海量物体泛化:内置超过 2000 种来自 YCB 和 SAPIEN 数据集的物体,轻松验证元学习与多任务算法的泛化能力,确保机器人面对新物品时依然灵活可靠。

DexterousHands 通过极致的仿真效率与丰富的双手协作基准,彻底打破了复杂灵巧操作算法研发的效率瓶颈。

运行环境要求

操作系统
  • Linux (Ubuntu 18.04/20.04)
GPU

必需 NVIDIA GPU,支持 Isaac Gym (最低驱动版本 470.74),文中示例提及 RTX 3090 可达高性能

内存

未说明

依赖
notes该工具基于 NVIDIA Isaac Gym 构建,必须安装 Isaac Gym Preview Release 3 或 4 版本并验证其示例脚本(如 joint_monkey.py)能正常运行。建议使用 Anaconda 创建虚拟环境。支持在命令行或 Python 脚本中调用环境。
python3.7, 3.8
Isaac Gym (Preview Release 3/4)
Anaconda
rl_games (可选)
DexterousHands hero image

快速开始

Bi-DexHands:基于强化学习的双手灵巧操作


PyPI 组织 单元测试 文档 GitHub许可证

更新

[2023/02/09] 我们重新封装了Bi-DexHands。现在您不仅可以在命令行中调用Bi-DexHands环境,还可以在Python脚本中使用。请查看下方的README中的在Python脚本中使用Bi-DexHands部分。

[2022/11/24] 现在我们支持所有任务的视觉观测,请参阅这篇关于视觉输入的文档。

[2022/10/02] 现在我们支持默认的IsaacGymEnvs强化学习库rl_games,请参阅我们的README中的下方内容

Bi-DexHands点击bi-dexhands.ai)提供了一系列双手灵巧操作任务和强化学习算法。 达到人类水平的手部灵巧性和双手协调性仍然是现代机器人研究领域的一个开放性挑战。为了更好地帮助社区研究这一问题,Bi-DexHands具备以下关键特性:

  • Isaac效率:Bi-DexHands构建于Isaac Gym之上;它支持同时运行数千个环境。例如,在一块NVIDIA RTX 3090 GPU上,Bi-DexHands通过并行运行2,048个环境,可以达到40,000+的平均FPS
  • 全面的强化学习基准:我们为RL、MARL、多任务RL、元强化学习和离线强化学习的研究者提供了首个双手操作任务环境,并附带针对SOTA连续控制无模型RL/MARL方法的全面基准。请参阅示例
  • 异构智能体协作:Bi-DexHands中的智能体(即关节、手指、手等)是真正意义上的异构体;这与常见的多智能体环境(如SMAC)截然不同,在那些环境中智能体通常可以通过共享参数来解决问题。
  • 任务泛化能力:我们引入了多种灵巧操作任务(如交接、举起、投掷、放置等),以及来自YCBSAPIEN数据集的大量目标物体(超过2,000种);这使得元强化学习和多任务强化学习算法能够在任务泛化方面得到测试。
  • 点云:我们提供了使用点云作为观测值的功能。我们利用Isaacc Gym中的深度相机获取深度图像,然后将其转换为局部点云。我们可以自定义深度相机的位置和数量,以从不同角度获取点云。生成点云的密度取决于相机像素的数量。请参阅视觉输入文档
  • 快速演示

此仓库的内容如下:



有关这项工作的更多信息,请参阅我们的论文


安装

关于IsaacGym的安装详情,请参阅此处我们目前支持IsaacGym的Preview Release 3/4版本。

先决条件

该代码已在Ubuntu 18.04/20.04系统上使用Python 3.7/3.8进行了测试。Linux系统上推荐的最低NVIDIA驱动版本为470.74(由IsaacGym的支持要求决定)。

它使用Anaconda来创建虚拟环境。 要安装Anaconda,请按照此处的说明进行操作。

请确保Isaac Gym能在您的系统上正常运行,方法是运行python/examples目录下的示例之一,比如joint_monkey.py。如果您在运行示例时遇到任何问题,请按照Isaac Gym Preview Release 3/4安装说明中的故障排除步骤操作。

一旦Isaac Gym安装完成且示例在您当前的Python环境中能够正常运行,即可安装本仓库:

从源代码安装

您也可以从源代码安装本仓库:

pip install -e .

简介

此仓库包含复杂的灵巧手控制任务。Bi-DexHands构建于NVIDIA Isaac Gym之上,具有高性能保障,可用于训练强化学习算法。我们的环境专注于应用无模型RL/MARL算法进行双手灵巧操作,而这类任务被普遍认为对传统控制方法而言极具挑战性。

开始使用

任务

任务的源代码可以在 envs/tasks 中找到。状态/动作/奖励的具体设置请参见这里

截至目前,我们发布了以下任务(未来还将推出更多):

环境 描述 演示
ShadowHand 传递 这些环境涉及两只位置固定的机械手。初始持有物体的手需要设法将物体传递给另一只手。
ShadowHand 腋下接球 这些环境同样包含两只机械手,但它们现在具有额外的自由度,可以在一定范围内平移或旋转其质心。
ShadowHand 上抛下接 该环境由一半 ShadowHandCatchUnderarm 和一半 ShadowHandCatchOverarm 组成,物体需要从垂直放置的手抛向掌心朝上的另一只手。
ShadowHand 并排接球 该环境与 ShadowHandCatchUnderarm 类似,不同之处在于两只手的位置从相对变为并排。
ShadowHand 双人腋下接球 这些环境要求两只手协同配合,将两个物体在手中来回抛掷(即交换位置)。
ShadowHand 腋下提壶 该环境要求用两只手抓住壶柄,并将壶提升到指定位置。
ShadowHand 向内开门 该环境要求打开一扇关闭的门,且门只能向内拉动。
ShadowHand 向外开门 该环境要求打开一扇关闭的门,且门只能向外推开。
ShadowHand 向内关门 该环境要求关闭一扇已经打开的门,且门最初是向内打开的。
ShadowHand 开瓶盖 该环境涉及两只机械手和一个瓶子,我们需要用一只手握住瓶子,另一只手打开瓶盖。
ShadowHand 推方块 该环境要求两只手同时接触方块,并将其向前推动。
ShadowHand 打开剪刀 该环境要求两只手协同合作,打开一把剪刀。
ShadowHand 打开笔帽 该环境要求两只手协同合作,打开一支笔的笔帽。
ShadowHand 摆动杯子 该环境要求两只手握住杯柄,将杯子旋转 90 度。
ShadowHand 按按钮 该环境要求两只手同时按下按钮。
ShadowHand 抓取并放置 该环境有一个水桶和一个物体,我们需要将物体放入水桶中。

训练

训练示例

强化学习/多智能体强化学习示例

例如,如果你想使用PPO算法为ShadowHandOver任务训练策略,可以在bidexhands文件夹中运行以下命令:

python train.py --task=ShadowHandOver --algo=ppo

要选择算法,只需通过--algo=ppo/mappo/happo/hatrpo/...作为参数即可。例如,如果你想使用happo算法,可以在bidexhands文件夹中运行以下命令:

python train.py --task=ShadowHandOver --algo=happo

支持的单智能体强化学习算法如下:

支持的多智能体强化学习算法如下:

多任务/元强化学习示例

多任务/元强化学习的训练方法与RL/MARL类似,只需选择相应的多任务/元类别及对应算法即可。例如,如果你想使用MTPPO算法为ShadowHandMT4类别训练策略,可以在bidexhands文件夹中运行以下命令:

python train.py --task=ShadowHandMetaMT4 --algo=mtppo

支持的多任务强化学习算法如下:

支持的元强化学习算法如下:

类Gym API

我们提供了一个类Gym API,允许从Isaac Gym环境中获取信息。我们的单智能体类Gym封装直接沿用了Isaac Gym团队的代码,并在此基础上开发了多智能体类Gym封装:

class MultiVecTaskPython(MultiVecTask):
    # 获取环境状态信息
    def get_state(self):
        return torch.clamp(self.task.states_buf, -self.clip_obs, self.clip_obs).to(self.rl_device)

    def step(self, actions):
        # 将所有智能体的动作按顺序堆叠并输入到环境中
        a_hand_actions = actions[0]
        for i in range(1, len(actions)):
            a_hand_actions = torch.hstack((a_hand_actions, actions[i]))
        actions = a_hand_actions
        # 对动作进行裁剪
        actions_tensor = torch.clamp(actions, -self.clip_actions, self.clip_actions)
        self.task.step(actions_tensor)
        # 获取环境中的信息,并手动区分不同智能体的观测值
        obs_buf = torch.clamp(self.task.obs_buf, -self.clip_obs, self.clip_obs).to(self.rl_device)
        hand_obs = []
        hand_obs.append(torch.cat([obs_buf[:, :self.num_hand_obs], obs_buf[:, 2*self.num_hand_obs:]], dim=1))
        hand_obs.append(torch.cat([obs_buf[:, self.num_hand_obs:2*self.num_hand_obs], obs_buf[:, 2*self.num_hand_obs:]], dim=1))
        rewards = self.task.rew_buf.unsqueeze(-1).to(self.rl_device)
        dones = self.task.reset_buf.to(self.rl_device)
        # 将信息整理成多智能体强化学习格式
        # 参考 https://github.com/tinyzqh/light_mappo/blob/HEAD/envs/env.py
        sub_agent_obs = []
        ...
        sub_agent_done = []
        for i in range(len(self.agent_index[0] + self.agent_index[1])):
            ...
            sub_agent_done.append(dones)
        # 转置第0维和第1维的值
        obs_all = torch.transpose(torch.stack(sub_agent_obs), 1, 0)
        ...
        done_all = torch.transpose(torch.stack(sub_agent_done), 1, 0)
        return obs_all、state_all、reward_all、done_all、info_all、None

    def reset(self):
        # 环境重置后,使用随机动作作为首次动作
        actions = 0.01 * (1 - 2 * torch.rand([self.task.num_envs, self.task.num_actions * 2], dtype=torch.float32, device=self.rl_device))
        # 运行模拟器
        self.task.step(actions)
        # 获取环境中的观测值和状态缓冲区,详细过程与step(self, actions)相同
        obs_buf = torch.clamp(self.task.obs_buf, -self.clip_obs, self.clip_obs)
        ...
        obs = torch.transpose(torch.stack(sub_agent_obs), 1, 0)
        state_all = torch.transpose(torch.stack(agent_state), 1, 0)
        return obs、state_all、None

RL/多智能体RL API

我们还提供了单智能体和多智能体RL接口。为了适配Isaac Gym并提高运行效率,所有操作均在GPU上以张量形式实现,因此无需在CPU和GPU之间传输数据。

我们以***HATRPO(用于合作任务的SOTA多智能体强化学习算法)***为例来说明多智能体RL API,请参考https://github.com/cyanrain7/TRPO-in-MARL

from algorithms.marl.hatrpo_trainer import HATRPO as TrainAlgo
from algorithms.marl.hatrpo_policy import HATRPO_Policy as Policy
...
# 主循环开始前的预热
self.warmup()
# 记录数据
start = time.time()
episodes = int(self.num_env_steps) // self.episode_length // self.n_rollout_threads
train_episode_rewards = torch.zeros(1, self.n_rollout_threads, device=self.device)

# 主循环
for episode in range(episodes):
    if self.use_linear_lr_decay:
        self.trainer.policy.lr_decay(episode, episodes)
    done_episodes_rewards = []
    for step in range(self.episode_length):
        # 采样动作
        values, actions, action_log_probs, rnn_states, rnn_states_critic = self.collect(step)
        # 观测奖励和下一个观测
        obs, share_obs, rewards, dones, infos, _ = self.envs.step(actions)
        dones_env = torch.all(dones, dim=1)
        reward_env = torch.mean(rewards, dim=1).flatten()
        train_episode_rewards += reward_env
        # 记录每个回合结束时的奖励
        for t in range(self.n_rollout_threads):
            if dones_env[t]:
                done_episodes_rewards.append(train_episode_rewards[:, t].clone())
                train_episode_rewards[:, t] = 0

        data = obs, share_obs, rewards, dones, infos, \
                values, actions, action_log_probs, \
                rnn_states, rnn_states_critic
        # 将数据插入缓冲区
        self.insert(data)

    # 计算回报并更新网络
    self.compute()
    train_infos = self.train()
    # 后处理
    total_num_steps = (episode + 1) * self.episode_length * self.n_rollout_threads
    # 保存模型
    if (episode % self.save_interval == 0 or episode == episodes - 1):
        self.save()

测试

训练好的模型将被保存到 logs/${Task Name}/${Algorithm Name} 文件夹中。

要加载已训练好的模型并仅进行推理(不进行训练),请传递 --test 参数,并使用 --model_dir 指定您想要加载的已训练模型路径。对于单智能体强化学习,您需要通过 --model_dir 精确指定要加载的 .pt 模型文件。以 PPO 算法为例:

python train.py --task=ShadowHandOver --algo=ppo --model_dir=logs/shadow_hand_over/ppo/ppo_seed0/model_5000.pt --test

对于多智能体强化学习,则需通过 --model_dir 指定包含所有智能体模型文件的文件夹路径。以 HAPPO 算法为例:

python train.py --task=ShadowHandOver --algo=happo --model_dir=logs/shadow_hand_over/happo/models_seed0 --test

绘图

用户可以将所有的 tfevent 文件转换为 csv 文件,然后尝试绘制结果。请注意,应确保 env-numenv-step 与您的实验设置一致。详细信息请参阅 ./utils/logger/tools.py

# 生成单智能体和多智能体算法的 csv 文件
$ python ./utils/logger/tools.py --alg-name <sarl algorithm> --alg-type sarl --env-num 2048 --env-step 8 --root-dir ./logs/shadow_hand_over --refresh 
$ python ./utils/logger/tools.py --alg-name <marl algorithm> --alg-type marl --env-num 2048 --env-step 8 --root-dir ./logs/shadow_hand_over --refresh 
# 生成图表
$ python ./utils/logger/plotter.py --root-dir ./logs/shadow_hand_over --shaded-std --legend-pattern "\\w+"  --output-path=./logs/shadow_hand_over/figure.png

在 Python 脚本中使用 Bi-DexHands

import bidexhands as bi
import torch

env_name = 'ShadowHandOver'
algo = "ppo"
env = bi.make(env_name, algo)

obs = env.reset()
terminated = False

while not terminated:
    act = torch.tensor(env.action_space.sample()).repeat((env.num_envs, 1))
    obs, reward, done, info = env.step(act)

环境性能

图表

我们提供了由 PPO、HAPPO、MAPPO、SAC 算法运行的稳定且可复现的基准测试结果。所有基准测试均在 2048 num_env100M total_step 的参数设置下运行。dataset 文件夹中包含了原始的 CSV 文件。

数据收集

ppo_collect 是用于收集离线数据的算法,其基本流程与 D4RL 中的 Mujoco 数据收集相同。首先使用 PPO 算法训练 5000 次迭代,并在前 2500 次迭代中收集并保存示范数据:

python train.py --task=ShadowHandOver --algo=ppo_collection --num_envs=2048 --headless

选择 model_5000.pt 作为导出策略来收集专家数据集:

python3 train.py --task=ShadowHandOver --algo=ppo_collect --model_dir=./logs/shadow_hand_over/ppo_collect/ppo_collect_seed-1/model_5000.pt --test --num_envs=200 --headless

类似地,选择 model.pt 作为随机策略,并选择另一个模型作为中等难度策略,分别按照上述方法收集随机数据和中等难度数据。在训练至中等难度策略之前,从示范数据中均匀采样得到回放缓冲区数据。每个数据集的大小均为 10^6 条样本。运行 merge.py 脚本以生成中等-专家数据集。

离线数据

我们论文中最初收集的数据可在此处获取: Shadow Hand OverShadow Hand Door Open Outward

使用 rl_games 训练我们的任务

请注意,我们仅测试过 rl-games==1.5.2 版本,更高或更低版本可能会导致错误。

例如,若要使用 PPO 算法为 ShadowHandOver 任务训练策略,请在 bidexhands 文件夹中运行以下命令:

python train_rlgames.py --task=ShadowHandOver --algo=ppo

目前,rl_games 仅支持 PPO 和带有 LSTM 的 PPO 方法。若要使用带有 LSTM 的 PPO,请在 bidexhands 文件夹中运行以下命令:

python train_rlgames.py --task=ShadowHandOver --algo=ppo_lstm

使用 rl_games 生成的日志文件可在 bidexhands/runs 文件夹中找到。

已知问题

需要指出的是,Bi-DexHands 仍处于开发阶段,存在一些已知问题:

  • 部分环境在程序运行后期可能因 PhysX 的碰撞计算缺陷而报错:
RuntimeError: CUDA error: an illegal memory access was encountered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
  • 尽管我们提供了实现,但并未对 DDPGTD3MADDPG 算法进行测试,这些算法可能仍存在 bug。

未来计划

  • 为所有任务定义成功指标
  • 添加工厂环境(参见 此链接
  • 增加对默认 IsaacGymEnvs RL 库 rl-games 的支持

引用

如果您认为本工作对您有所帮助,请按以下方式引用:

@inproceedings{
chen2022towards,
title={Towards Human-Level Bimanual Dexterous Manipulation with Reinforcement Learning},
author={Yuanpei Chen and Yaodong Yang and Tianhao Wu and Shengjie Wang and Xidong Feng and Jiechuan Jiang and Zongqing Lu and Stephen Marcus McAleer and Hao Dong and Song-Chun Zhu},
booktitle={Thirty-sixth Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2022},
url={https://openreview.net/forum?id=D29JbExncTP}
}

团队

Bi-DexHands 是由 Yuanpei ChenYaodong YangTianhao WuShengjie WangXidong FengJiechuang JiangHao DongZongqing Lu 以及来自北京大学的 Song-chun Zhu 共同贡献的项目。如有合作意向,请联系 yaodong.yang@pku.edu.cn

我们还感谢以下两个开源仓库的贡献者: Isaac GymHATRPO

此外,我们也建议用户阅读启发本工作的早期关于灵巧手操作的研究成果:arxiv.org/abs/2009.05104

许可证

Bi-DexHands 采用 Apache 许可证,详情请参阅 LICENSE 文件。

ShadowHandOver ShadowHandLiftUnderarm
ShadowHandCatchUnderarm ShadowHandDoorOpenInward
ShadowHandOver2Underarm ShadowHandDoorOpenOutward
ShadowHandCatchAbreast ShadowHandDoorCloseInward
ShadowHandTwoCatchUnderarm ShadowHandDoorCloseOutward
ShadowHandPushBlock ShadowHandPen
ShadowHandScissors ShadowHandSwingCup
ShadowHandBlockStack ShadowHandReOrientation
任务名称 描述
ShadowHandOver 双手传递物体(一手交,一手接)
ShadowHandCatchUnderarm 腋下接物(手部可在限定区域移动/旋转)
ShadowHandLiftUnderarm 双手协作提壶
ShadowHandDoorOpenInward 向内开门
ShadowHandBottleCap 一手持瓶,一手开盖
ShadowHandOpenScissors 双手协作打开剪刀
ShadowHandGraspAndPlace 抓取物体并放入桶中

更多任务详情及状态/动作空间定义,请参阅项目内的 docs/environments.md 文档。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|3天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

145.9k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.1k|★★☆☆☆|今天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|2天前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|2天前
语言模型图像Agent