Tâches à long terme et Sous-agents
Anda Bot est conçu pour des objectifs complexes qui nécessitent de la continuité, et non pas une seule réponse. Les tâches à long terme préservent l'objectif d'origine, vérifient la progression, condensent le contexte et reprennent le travail lorsque c'est nécessaire.
Utiliser /goal
Le commande /goal marque une requête comme un objectif à long terme :
/goal Terminer cette préparation de version : lancer les tests, vérifier le journal des modifications, valider la documentation du script d'installation et résumer les risques.
Lorsque l'agent principal est inactif, le vérificateur d'objectif évalue si le résultat actuel est complet. Si du travail supplémentaire est requis, il peut générer un suivi pour l'agent principal. Si le travail ne peut avancer qu'avec votre intervention, comme une décision, des identifiants ou une approbation, l'objectif se met en pause et indique ce dont il a besoin ; votre prochain message le relance. Lorsque le contexte devient trop long, Anda condense l'état actuel et ouvre une conversation liée pour poursuivre la même session.
Utiliser /loop
Le commande /loop exécute un prompt ou une commande slash de manière répétée. Décrivez l'intervalle dans la requête en utilisant la formulation qui vous semble naturelle, comme every 5 minutes (toutes les 5 minutes), 5m, ou des unités de temps localisées. Le modèle interprète l'intervalle et peut créer une tâche cron d'agent récurrente si nécessaire :
/loop toutes les 5 minutes /side Vérifier si la file d'attente de déploiement est bloquée et résumer le résultat.
Si vous ne décrivez pas d'intervalle, Anda laisse le modèle cadencer lui-même la boucle et poursuivre lorsqu'un travail supplémentaire est requis :
/loop Continuer à vérifier la migration jusqu'à ce que chaque étape de validation soit confirmée comme terminée.
Tâches planifiées
Cron prend en charge les expressions cron, les intervalles every et les tâches uniques at/once. Le planificateur vérifie les tâches toutes les cinq secondes et en exécute au maximum huit simultanément. Les tâches d’agent attendent la fin du travail soumis, y compris les outils en arrière-plan ; les tâches shell attendent la fin du processus. Les intervalles every partent de la fin de l’exécution, et les occurrences périodiques manquées ne sont pas rejouées individuellement. Les horaires uniques sont arrondis à la seconde supérieure afin de ne jamais démarrer avant l’heure demandée. Les expressions cron utilisent les cinq champs standard, où 0 ou 7 désigne le dimanche ; les formes à six et sept champs ajoutent les secondes et l’année et numérotent les jours à partir de 1 = dimanche : utilisez-y plutôt des noms de jours comme MON-FRI.
Modifier une tâche en pause conserve son état ; utilisez manage_cron_job avec resume pour la réactiver. Renvoyer la planification actuelle avec d’autres modifications conserve l’heure de la prochaine exécution. Une tâche unique déjà exécutée est signalée comme completed, et non en pause, et ne peut pas être reprise ; donnez-lui une nouvelle planification pour la relancer. origin=true dans update_cron_job déplace les exécutions futures vers l’appelant et la conversation actuels. Une exécution déjà démarrée conserve sa route d’origine. Les listes de tâches et d’exécutions n’affichent que des aperçus textuels limités ; utilisez manage_cron_job avec get pour la tâche complète et son dernier résultat. Supprimer une tâche conserve son historique et n’annule pas une exécution en cours.
Les outils cron sont réservés aux utilisateurs de confiance. Les tâches créées depuis la CLI du propriétaire valident et enregistrent le répertoire de travail autorisé ; cette autorisation reste valable après un redémarrage ou l’expiration de l’enregistrement temporaire de la CLI. Pour les anciennes tâches sans autorisation enregistrée, reconnectez la CLI dans le répertoire voulu puis mettez la tâche à jour une fois avec origin=true. Les métadonnées d’une requête ne peuvent pas, à elles seules, autoriser un nouveau répertoire.
Utiliser /side
Les commandes /side ou /btw placent une requête dans une tâche secondaire indépendante. C'est utile pour :
- Étudier un risque particulier.
- Demander à une autre perspective de réviser la conclusion actuelle.
- Rassembler des informations contextuelles sans interrompre la conversation principale.
/side Vérifier si cette mise à niveau de dépendance affecte les utilisateurs de macOS arm64.
Utiliser /skill
Les compétences (Skills) de runtime personnelles résident dans ~/.anda/skills ; les compétences intégrées aux versions officielles se chargent depuis ~/.anda/bundled-skills. Lorsque vous souhaitez qu'un flux de travail spécifique gère une requête :
/skill git-assistant Rédiger un message de commit de type Conventional Commit à partir du diff actuel.
Rôle des sous-agents
Les sous-agents peuvent assumer des rôles spécialisés tels que la recherche, l'implémentation, la révision et la supervision. La session principale conserve l'objectif et le jugement final ; les sous-agents gèrent les tâches ciblées.
Cette structure est utile pour :
- Des recherches nécessitant la lecture de nombreux fichiers ou documentations de référence.
- Des tâches de codage où l'implémentation et la révision doivent être séparées.
- Des objectifs qui nécessitent des vérifications régulières pour s'assurer que le travail est réellement terminé.
- Des travaux qui requièrent des outils externes sans perdre le fil principal.
Outils et espace de travail local
Les outils de base d'Anda comprennent la mémoire, le shell, la lecture/écriture de fichiers, les compétences, le cron et les sous-agents. Les outils de fichiers et de shell s'exécutent par défaut dans ~/.anda/workspace.
Lorsqu'une tâche implique le dépôt actuel ou des outils externes, énoncez clairement l'objectif, les critères d'acceptation et les limites.
/goal Corriger le build de la doc dans le dépôt actuel. Ne pas modifier le code Rust. Terminé signifie que la commande pnpm --dir docsite build s'exécute avec succès.
Quand ne pas utiliser /goal ou /loop
Les questions-réponses simples, les explications ponctuelles et les recherches rapides de commandes ne nécessitent pas /goal ou /loop. Envoyez un message normal. Réservez /goal pour les tâches qui nécessitent un audit de complétion, et /loop pour les suivis récurrents ou à cadencement automatique.