Skip to content

Latest commit

 

History

History
390 lines (278 loc) · 18.1 KB

File metadata and controls

390 lines (278 loc) · 18.1 KB
MetaClaw

Parlez simplement a votre agent, il apprend et EVOLUE.

Inspire par l'apprentissage du cerveau. Meta-apprenez et faites evoluer votre 🦞 a partir de chaque conversation. Sans GPU. Compatible Kimi, Qwen, Claude, MiniMax, et plus.

MetaClaw Architecture

GitHub License MIT Fully Async No GPU Cluster Skill Evolution One-Click Deploy


🇺🇸 English🇨🇳 中文🇯🇵 日本語🇰🇷 한국어🇩🇪 Deutsch🇪🇸 Español🇧🇷 Português🇷🇺 Русский🇮🇹 Italiano🇻🇳 Tiếng Việt🇦🇪 العربية🇮🇳 हिन्दी


ApercuDemarrage rapideConfigurationMode SkillsMode RLMode MadMaxCitation


Deux commandes. C'est tout.

metaclaw setup              # assistant de configuration unique
metaclaw start              # par defaut : mode madmax, skills + entrainement RL planifie
metaclaw start --daemon     # executer en arriere-plan, logs -> ~/.metaclaw/metaclaw.log
metaclaw start --daemon --log-file /tmp/metaclaw.log  # chemin de log personnalise
metaclaw start --mode rl    # RL sans planificateur (entraine des qu'un batch est plein)
metaclaw start --mode skills_only  # skills uniquement, pas de RL (Tinker non requis)
MetaClaw demo

🔥 Actualites

  • [16/03/2026] v0.3.2 Support multi-Claw : IronClaw, PicoClaw, ZeroClaw, CoPaw, NanoClaw et NemoClaw sont desormais supportes aux cotes d'OpenClaw. NanoClaw via le nouvel endpoint compatible Anthropic /v1/messages ; NemoClaw via le routage d'inference OpenShell. OpenRouter ajoute comme plateforme LLM.
  • [13/03/2026] v0.3.1 Support du backend MinT : l'entrainement RL fonctionne desormais avec Tinker et MinT. Configurable via rl.backend (auto/tinker/mint).
  • [13/03/2026] v0.3 Support continu de meta-apprentissage : les mises a jour RL ne s'executent que pendant les heures de sommeil, les periodes d'inactivite ou les reunions Google Calendar. Ajout de la separation support/query pour eviter que des signaux de recompense perimes ne polluent les mises a jour du modele.
  • [11/03/2026] v0.2 Deploiement en un clic via la CLI metaclaw. Les skills sont actives par defaut, le RL est desormais optionnel.
  • [09/03/2026] Lancement de MetaClaw. Parlez simplement a votre agent et laissez-le evoluer automatiquement. Aucun deploiement GPU requis, connectez-vous simplement a l'API.

🎥 Demo

video_v2_compressed.mp4

📖 Apercu

MetaClaw est un agent qui meta-apprend et evolue en conditions reelles. Parlez simplement a votre agent comme d'habitude. MetaClaw transforme chaque conversation en direct en signal d'apprentissage, permettant a l'agent de s'ameliorer continuellement en deploiement reel plutot que par entrainement hors ligne seul.

Sous le capot, il encapsule votre modele derriere un proxy compatible OpenAI (avec un endpoint /v1/messages compatible Anthropic pour les agents comme NanoClaw), intercepte les interactions via OpenClaw, NanoClaw, NemoClaw et autres agents supportes, injecte les skills pertinents a chaque tour, et meta-apprend a partir de l'experience accumulee. Les skills sont resumes automatiquement apres chaque session ; avec le RL active, un planificateur de meta-apprentissage reporte les mises a jour des poids aux fenetres d'inactivite pour ne jamais interrompre l'agent pendant l'utilisation active.

Aucun cluster GPU necessaire. MetaClaw fonctionne avec n'importe quelle API LLM compatible OpenAI et utilise un backend compatible Tinker pour l'entrainement LoRA dans le cloud. Tinker reste le chemin de reference par defaut ; MinT ou Weaver peuvent etre actives via des paquets de compatibilite separes si necessaire.

🤖 Fonctionnalites principales

Deploiement en un clic

Configurez une fois avec metaclaw setup, puis metaclaw start lance le proxy, injecte les skills et connecte OpenClaw automatiquement. Aucun script shell manuel necessaire.

Trois modes de fonctionnement

Mode Par defaut Fonctionnement
skills_only Proxy vers votre API LLM. Skills injectes, resumes automatiquement apres chaque session. Pas de GPU/Tinker requis.
rl Skills + entrainement RL (GRPO). Entraine immediatement quand un batch est plein. OPD optionnel pour la distillation enseignant.
madmax Skills + RL + planificateur intelligent. Mises a jour RL uniquement pendant les fenetres de sommeil/inactivite/reunion.

Asynchrone par conception

Le serving, la modelisation des recompenses et l'entrainement sont entierement decouples. L'agent continue de repondre pendant que le scoring et l'optimisation s'executent en parallele.


🚀 Demarrage rapide

1. Installation

pip install -e .                        # mode skills_only (leger)
pip install -e ".[rl]"                  # + support d'entrainement RL (torch, transformers, tinker)
pip install -e ".[evolve]"              # + evolution des skills via LLM compatible OpenAI
pip install -e ".[scheduler]"           # + integration Google Calendar pour le planificateur
pip install -e ".[rl,evolve,scheduler]" # recommande : configuration complete RL + planificateur

Si vous voulez utiliser rl.backend=mint, installez separement le paquet de compatibilite MinT dans le meme environnement, par exemple mindlab-toolkit. Pour rl.backend=weaver, installez separement nex-weaver. MetaClaw garde volontairement ces dependances hors du paquet par defaut afin que les utilisateurs RL choisissent explicitement entre Tinker, MinT et Weaver.

2. Configuration

metaclaw setup

L'assistant interactif vous demande de choisir votre fournisseur LLM (Kimi, Qwen, MiniMax, ou personnalise), votre cle API, et d'activer optionnellement l'entrainement RL.

La pile RL de MetaClaw peut basculer explicitement entre tinker, mint et weaver. auto est la valeur recommandee et continuera d'inferer MinT ou Weaver a partir d'identifiants ou de base URLs correspondants lorsque les paquets sont installes.

Tinker (par défaut) :

metaclaw config rl.backend tinker
metaclaw config rl.api_key sk-...
metaclaw config rl.model moonshotai/Kimi-K2.5

MinT:

metaclaw config rl.backend mint
metaclaw config rl.api_key sk-mint-...
metaclaw config rl.base_url https://mint.macaron.xin/
metaclaw config rl.model Qwen/Qwen3-4B-Instruct-2507

Weaver:

metaclaw config rl.backend weaver
metaclaw config rl.api_key sk-...
metaclaw config rl.base_url https://weaver-console.nex-agi.cn
metaclaw config rl.model Qwen/Qwen3-8B

Les alias herites rl.tinker_api_key et rl.tinker_base_url restent acceptes pour compatibilite.

3. Demarrage

metaclaw start

C'est tout. MetaClaw demarre le proxy, configure automatiquement OpenClaw et redemarre la passerelle. Ouvrez OpenClaw et commencez a discuter. Les skills sont injectes a chaque tour, et la session est automatiquement resumee en nouveaux skills a la fin.


⚙️ Configuration

La configuration se trouve dans ~/.metaclaw/config.yaml, creee par metaclaw setup.

Commandes CLI :

metaclaw setup                  # Assistant de configuration interactif initial
metaclaw start                  # Demarrer MetaClaw (par defaut : mode madmax)
metaclaw start --daemon         # Demarrer MetaClaw en arriere-plan
metaclaw start --daemon --log-file /tmp/metaclaw.log  # Chemin de log personnalise
metaclaw start --mode rl        # Forcer le mode RL pour cette session (sans planificateur)
metaclaw start --mode skills_only  # Forcer le mode skills uniquement pour cette session
metaclaw stop                   # Arreter une instance MetaClaw en cours
metaclaw status                 # Verifier l'etat du proxy, le mode en cours et le planificateur
metaclaw config show            # Afficher la configuration actuelle
metaclaw config KEY VALUE       # Definir une valeur de configuration

Lorsque vous demarrez MetaClaw avec --daemon, la commande attend que le proxy local soit operationnel avant de retourner. Utilisez metaclaw status pour verifier l'etat et metaclaw stop pour arreter le processus en arriere-plan.

Reference de configuration complete (cliquez pour developper)
mode: madmax               # "madmax" | "rl" | "skills_only"

llm:
  provider: kimi            # kimi | qwen | openai | minimax | custom
  model_id: moonshotai/Kimi-K2.5
  api_base: https://api.moonshot.cn/v1
  api_key: sk-...

proxy:
  port: 30000
  api_key: ""              # jeton bearer optionnel pour le proxy local MetaClaw

skills:
  enabled: true
  dir: ~/.metaclaw/skills   # votre bibliotheque de skills
  retrieval_mode: template  # template | embedding
  top_k: 6
  task_specific_top_k: 10   # limite des skills specifiques a la tache (par defaut 10)
  auto_evolve: true         # resumer automatiquement les skills apres chaque session

rl:
  enabled: false            # mettre a true pour activer l'entrainement RL
  backend: auto             # "auto" | "tinker" | "mint" | "weaver"
  model: moonshotai/Kimi-K2.5
  api_key: ""
  base_url: ""              # endpoint backend optionnel, p. ex. https://mint.macaron.xin/ pour MinT ou https://weaver-console.nex-agi.cn pour Weaver
  tinker_api_key: ""        # alias herite de api_key
  tinker_base_url: ""       # alias herite de base_url
  prm_url: https://api.openai.com/v1
  prm_model: gpt-5.2
  prm_api_key: ""
  lora_rank: 32
  batch_size: 4
  resume_from_ckpt: ""      # chemin de checkpoint optionnel pour reprendre l'entrainement
  evolver_api_base: ""      # laisser vide pour reutiliser llm.api_base
  evolver_api_key: ""
  evolver_model: gpt-5.2

opd:
  enabled: false            # mettre a true pour activer OPD (distillation enseignant)
  teacher_url: ""           # URL de base du modele enseignant (OpenAI-compatible /v1/completions)
  teacher_model: ""         # nom du modele enseignant (ex. Qwen/Qwen3-32B)
  teacher_api_key: ""       # cle API du modele enseignant
  kl_penalty_coef: 1.0      # coefficient de penalite KL pour OPD

max_context_tokens: 20000   # limite de tokens de prompt avant troncature

scheduler:                  # v0.3 : planificateur de meta-apprentissage (auto-active en mode madmax)
  enabled: false            # le mode madmax l'active automatiquement ; a definir manuellement pour rl
  sleep_start: "23:00"
  sleep_end: "07:00"
  idle_threshold_minutes: 30
  min_window_minutes: 15
  calendar:
    enabled: false
    credentials_path: ""
    token_path: ""

💪 Mode Skills

metaclaw start --mode skills_only

Le mode le plus leger. Pas de GPU, pas de backend RL necessaire. MetaClaw place votre LLM derriere un proxy qui injecte les skills pertinents a chaque tour, puis resume automatiquement de nouveaux skills apres chaque conversation.

Les skills sont de courtes instructions Markdown stockees dans ~/.metaclaw/skills/ sous forme de fichiers SKILL.md individuels. La bibliotheque grandit automatiquement avec l'utilisation.

Pour precharger la banque de skills integree (40+ skills pour le coding, la securite, les taches agentiques, etc.) :

cp -r memory_data/skills/* ~/.metaclaw/skills/

🔬 Mode RL

metaclaw start --mode rl

Tout ce que le Mode Skills offre, plus le fine-tuning RL continu a partir des conversations en direct. Chaque tour de conversation est tokenise et soumis comme echantillon d'entrainement. Un LLM juge (PRM) evalue les reponses de maniere asynchrone, et un backend compatible Tinker (Tinker Cloud, MinT ou Weaver) execute le fine-tuning LoRA avec hot-swap des poids.

Tinker (par défaut) :

metaclaw config rl.backend tinker
metaclaw config rl.api_key sk-...
metaclaw config rl.model moonshotai/Kimi-K2.5
metaclaw config rl.prm_url https://api.openai.com/v1
metaclaw config rl.prm_api_key sk-...
metaclaw start --mode rl

MinT:

metaclaw config rl.backend mint
metaclaw config rl.api_key sk-mint-...
metaclaw config rl.base_url https://mint.macaron.xin/
metaclaw config rl.model Qwen/Qwen3-4B-Instruct-2507
metaclaw config rl.prm_url https://api.openai.com/v1
metaclaw config rl.prm_api_key sk-...
metaclaw start --mode rl

Weaver:

metaclaw config rl.backend weaver
metaclaw config rl.api_key sk-...
metaclaw config rl.base_url https://weaver-console.nex-agi.cn
metaclaw config rl.model Qwen/Qwen3-8B
metaclaw config rl.prm_url https://api.openai.com/v1
metaclaw config rl.prm_api_key sk-...
metaclaw start --mode rl

Un LLM evolueur dedie extrait egalement de nouveaux skills des episodes echoues, les reinjectant dans la bibliotheque de skills.

Rollout programmatique (sans TUI OpenClaw) : definissez openclaw_env_data_dir sur un repertoire de fichiers JSONL de taches :

{"task_id": "task_1", "instruction": "Register the webhook at https://example.com/hook"}

Distillation On-Policy (OPD)

L'OPD est un complement optionnel du Mode RL. Il distille un modele enseignant plus grand dans l'etudiant on-policy : l'etudiant genere des reponses normalement, et l'enseignant fournit des log-probabilites par token sur ces memes reponses. Une penalite KL oriente l'etudiant vers la distribution de l'enseignant.

metaclaw config opd.enabled true
metaclaw config opd.teacher_url http://localhost:8082/v1
metaclaw config opd.teacher_model Qwen/Qwen3-32B
metaclaw config opd.kl_penalty_coef 1.0

L'enseignant doit etre servi derriere un endpoint /v1/completions compatible OpenAI (ex. vLLM, SGLang). L'OPD peut etre combine avec le scoring PRM, les deux s'executent de maniere asynchrone. Consultez examples/run_conversation_opd.py et scripts/run_openclaw_tinker_opd.sh.


🧠 Mode MadMax (par defaut)

metaclaw start

Tout ce que le Mode RL offre, plus un planificateur de meta-apprentissage qui reporte les mises a jour des poids aux fenetres d'inactivite de l'utilisateur pour eviter toute interruption pendant l'utilisation active. C'est le mode par defaut.

L'etape de hot-swap des poids RL met l'agent en pause pendant plusieurs minutes. Au lieu d'entrainer immediatement quand un batch est plein (comme le fait le Mode RL), MadMax attend une fenetre appropriee.

Trois conditions declenchent une fenetre de mise a jour (une seule suffit) :

  • Heures de sommeil : heure de debut/fin configurable (ex. 23:00 a 07:00)
  • Inactivite clavier : se declenche apres N minutes d'inactivite
  • Evenements Google Calendar : detecte les reunions pour lancer les mises a jour pendant votre absence
metaclaw config scheduler.sleep_start "23:00"
metaclaw config scheduler.sleep_end   "07:00"
metaclaw config scheduler.idle_threshold_minutes 30

# Optionnel : integration Google Calendar
pip install -e ".[scheduler]"
metaclaw config scheduler.calendar.enabled true
metaclaw config scheduler.calendar.credentials_path ~/.metaclaw/client_secrets.json

Si l'utilisateur revient en cours de mise a jour, le batch partiel est sauvegarde et repris a la prochaine fenetre.

Chaque ConversationSample est etiquete avec une version skill_generation. Lorsque l'evolution des skills incremente la generation, le buffer RL est vide afin que seuls les echantillons post-evolution soient utilises pour les mises a jour de gradient (separation support/query MAML).


📚 Citation

@misc{xia2026metaclaw,
  author       = {Xia, Peng and Chen, Jianwen and Yang, Xinyu and Tu, Haoqin and Han, Siwei and Qiu, Shi and Zheng, Zeyu and Xie, Cihang and Yao, Huaxiu},
  title        = {MetaClaw: Just Talk --- An Agent That Meta-Learns and Evolves in the Wild},
  year         = {2026},
  organization = {GitHub},
  url          = {https://github.com/aiming-lab/MetaClaw},
}

🙏 Remerciements

MetaClaw est construit sur les projets open-source suivants :

  • OpenClaw le framework d'agent central.
  • SkillRL notre framework RL augmente de skills.
  • Tinker utilise pour l'entrainement RL en ligne.
  • MinT backend alternatif pour l'entrainement RL en ligne.
  • Weaver backend alternatif pour l'entrainement RL en ligne.
  • OpenClaw-RL inspiration pour notre conception RL.
  • awesome-openclaw-skills fournit la base de notre banque de skills.
  • NanoClaw agent Claude personnel de qwibitai, connecte via l'endpoint compatible Anthropic /v1/messages.
  • NemoClaw plugin agent OpenShell de NVIDIA pour l'inference.

📄 Licence

Ce projet est sous licence MIT.