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

Relay permet aux sessions Claude Code de s'envoyer des messages sans changer de fenêtre.
Un plugin appelé Relay utilise la fonctionnalité de canaux de Claude Code pour permettre à des sessions parallèles de communiquer directement, éliminant ainsi la nécessité de copier-coller manuellement le contexte entre les dépôts backend et frontend.

Agent Smith : Une commande pour structurer les serveurs MCP, les compétences et un pipeline ticket-vers-PR pour Claude Code
Agent Smith scanne votre dépôt, détecte la stack exacte (Go/Echo, React/Zustand, golang-jwt, pgx, etc.), met en place les serveurs MCP, hooks et compétences adaptés à votre configuration, et fournit un pipeline autonome du ticket à la PR.

DeepClaude remplace le backend Anthropic de Claude Code par DeepSeek V4 Pro à un coût 17 fois inférieur
Un script qui réécrit les variables d'environnement de Claude Code pour router tous les appels de la boucle agent via DeepSeek V4 Pro, OpenRouter ou Fireworks AI — même UX, 0,87 $/M tokens de sortie contre 15 $/M.

Création d'un RAG agentic pour Obsidian avec Claude et d'un harnais d'évaluation pour détecter les hallucinations
Un développeur a construit un système RAG agentique sur un coffre Obsidian pour permettre à Claude de répondre à des questions issues de livres d'ingénierie, puis a créé un harnais d'évaluation utilisant Claude Sonnet comme juge pour détecter quand l'agent avait tort avec assurance. Des itérations de la grille d'évaluation ont amélioré l'accord juge-humain de 39 % à 94 %.