Aiguille : Un modèle d'appel de fonctions de 26M paramètres fonctionnant à 6000 tok/s sur mobile
Cactus a open-sourcé Needle, un modèle d'appel de fonction de 26M paramètres conçu pour fonctionner sur des téléphones, montres et lunettes économiques. Il atteint 6000 tok/s en pré-remplissage et 1200 tok/s en décodage sur des appareils grand public grâce à son moteur d'inférence personnalisé, Cactus.
Architecture : Simple Attention Networks
Needle utilise un Simple Attention Network — pas de MLP nulle part. Le modèle entier se compose de couches d'attention et de gating. Conception clé : d=512, 8H/4KV, BPE=8192, avec une structure encodeur-décodeur (12 couches encodeur, 8 couches décodeur) utilisant l'attention croisée, l'auto-attention masquée avec RoPE, et des embeddings liés.
Détails d'entraînement
- Pré-entraîné sur 200B tokens avec 16 TPU v6e (27 heures)
- Post-entraîné sur 2B tokens de données synthétisées d'appel de fonction (45 minutes)
- Données synthétisées via Gemini avec 15 catégories d'outils (minuteries, messagerie, navigation, maison intelligente, etc.)
Résultats des benchmarks
Needle bat FunctionGemma-270M, Qwen-0.6B, Granite-350M et LFM2.5-350M sur l'appel de fonction en un seul tour. Cependant, ces modèles ont plus de portée/capacité et excellent dans les contextes conversationnels.
Démarrage rapide
git clone https://github.com/cactus-compute/needle.git
cd needle && source ./setup
needle playgroundOuvre une interface web à http://127.0.0.1:7860 pour tester et affiner vos propres outils.
Utilisation (Python)
from needle import SimpleAttentionNetwork, load_checkpoint, generate, get_tokenizer
params, config = load_checkpoint("checkpoints/needle.pkl")
model = SimpleAttentionNetwork(config)
tokenizer = get_tokenizer()
result = generate(
model, params, tokenizer,
query="Quel temps fait-il à San Francisco ?",
tools='[{"name":"get_weather","parameters":{"location":"string"}}]',
stream=False
)
print(result)
[{"name":"get_weather","arguments":{"location":"San Francisco"}}]
Affinage local
# via playground (génère automatiquement des données via Gemini)
needle playground
ou fournissez vos propres données
needle finetune data.jsonl
Disponibilité
Les poids sont sur Hugging Face : Cactus-Compute/needle. Tout est sous licence MIT.
📖 Lire la source complète : HN AI Agents
👀 See Also

Sgai : Outil de développement logiciel multi-agent axé sur les objectifs
Sgai est un outil Go open-source qui coordonne des agents d'IA pour exécuter des objectifs logiciels définis dans des fichiers GOAL.md. Il décompose les objectifs en workflows DAG, exécute des tests pour les portes de validation, et fonctionne localement avec un tableau de bord web pour le suivi.

Claude Code réimplémenté en open-source modifié pour la compatibilité avec les modèles locaux
Un développeur a corrigé la réimplémentation open-source de Claude Code pour la faire fonctionner avec Ollama et les modèles locaux en supprimant les dépendances clientes codées en dur d'Anthropic. L'interface CLI détecte maintenant automatiquement les fournisseurs à partir des noms de modèles et des variables d'environnement.

OpenPlawd : Compétence OpenClaw pour la prise automatisée de notes de réunion Plaud
OpenPlawd est une compétence OpenClaw qui traite automatiquement les enregistrements Plaud pour les transformer en comptes-rendus de réunion structurés au format HTML. Il interroge les comptes Plaud toutes les heures, effectue la transcription avec Whisper ou OpenAI, découpe les fichiers volumineux et génère des notes avec des points d'action via un agent OpenClaw.

Mémoire persistante pour Claude : Stack local avec MCP, récupération en 39 ms, réduction de tokens de 82 %
Un développeur a construit une couche mémoire persistante pour Claude en utilisant une recherche vectorielle locale (Qdrant + Qwen3) et une intégration MCP, atteignant 82 % de réduction de tokens, 39 ms de récupération à chaud, et la cristallisation des sessions via des nœuds L4.