Exécuter des agents IA d'équipe dans Slack avec Centaur

Les développeurs adoptent rapidement des agents CLI comme Claude Code, Codex ou Amp. Nous leur demandons de refactoriser un module, d'exécuter des tests ou de trouver un bug dans les logs. Mais les résultats de ce travail restent généralement dans le terminal d'un ingénieur spécifique. Quand une question sur un build échoué apparaît dans un chat de travail, quelqu'un doit aller à la console et nourrir manuellement le réseau de neurones.
Le fonds de capital-risque Paradigm a publié Centaur en open source. C'est une plateforme qui transforme des agents autonomes locaux en assistants d'équipe partagés vivant directement dans Slack ou Teams.
Pourquoi vous avez besoin de Centaur
Le principal défi du déploiement d'agents IA à travers une équipe entière est la sécurité. Donner à un LLM un accès direct à un environnement avec des clés de production est plus dangereux que de laisser un stagiaire en production un vendredi soir. Centaur résout ce problème grâce à des sandbox isolés.
Vous déployez la plateforme dans votre propre infrastructure. Un membre de l'équipe mentionne @centaur dans un fil Slack avec une tâche, et le système crée un contexte isolé et commence à travailler.
# Пример взаимодействия в Slack
@centaur можешь разобраться, почему падают тесты биллинга?
Après cela, Centaur alloue un conteneur séparé pour la tâche, y exécute un agent, lui donne accès au code et aux outils, et renvoie les résultats intermédiaires et finaux dans le fil.
Sécurité et architecture
Les ingénieurs de Paradigm ont conçu une limite sécurisée pour l'exécution autonome de code. Le système se compose de plusieurs composants :
- Rust Control Plane — gère les files d'attente, l'état des conversations, l'autorisation et l'exécution des workflows via Postgres.
- Kubernetes Sandbox — chaque conversation fait tourner un isolate basé sur un conteneur. Il est pré-installé avec Git, Python, Node.js, Bun et un ensemble basique d'utilitaires CLI.
- iron-proxy Network Proxy — gère la gestion des secrets.
La partie la plus intéressante ici est la substitution de credentials à la volée. Par défaut, le pod avec l'agent a le NetworkPolicy bloqué. L'agent ne reçoit pas de vraies clés API ou tokens des services internes du tout. Son environnement contient des chaînes de remplacement factices à la place.
Quand l'agent fait une requête HTTP vers une API tierce, le trafic passe par la couche proxy. Le proxy vérifie le domaine de destination, trouve l'en-tête correspondante et substitue la vraie clé depuis 1Password juste avant d'envoyer le paquet vers le réseau externe. Même si le modèle est compromis ou génère une sortie avec tous ses env, les vrais secrets ne fuiront pas.
Slack / API
│
▼
Centaur API (Rust + Postgres)
│
▼
Kubernetes Sandbox (Agent + Workspace + Shell)
│
▼
iron-proxy (Проверка доменов и инъекция реальных секретов)
│
▼
Внешний интернет / Внутренние сервисы
Comment étendre les capacités des agents
Centaur a deux formats d'extension : les Tools et les Workflows de longue durée.
Tools
Les Tools sont packagés comme des packages Python réguliers. Ils peuvent encapsuler les API internes de votre entreprise, les bases de données ou les utilitaires CLI.
Quand le conteneur démarre, la plateforme monte ces scripts comme des wrappers en ligne de commande. L'agent les découvre au démarrage via la commande centaur-tools list et lit les instructions des arguments depuis --help.
La structure de l'outil semble familière :
tools/my_tool/
├── __init__.py
├── client.py
├── cli.py
├── .env.example
└── pyproject.toml
Workflows
Si une tâche prend plus de deux minutes, nécessite d'attendre des événements externes ou implique des redémarrages de services, vous utilisez des workflows. Ce sont des fonctions Python avec des étapes d'exécution durables.
WORKFLOW_NAME = "daily_digest"
async def handler(inp, ctx):
# Данные сохранятся, даже если сервис перезагрузится во время выполнения
data = await ctx.step("collect", lambda: collect_digest_data(inp))
summary = await ctx.run_agent("summarize", text=f"Сделай краткую выжимку: {data}")
return {"summary": summary}
Cette approche sauve la mise quand un agent doit exécuter une longue suite de tests, attendre une réponse d'un système externe ou décomposer une tâche complexe en une chaîne de sous-tâches indépendantes.
Ce que vous pouvez déléguer à Centaur
Dans le README du projet, les auteurs mettent en avant plusieurs cas d'utilisation pour lesquels le système a été conçu à l'origine :
- Enquêter sur les échecs dans les pipelines CI/CD.
- Générer des résumés quotidiens et des rapports de garde.
- Trouver rapidement des réponses dans les bases de connaissances internes de l'entreprise via des plugins personnalisés.
- Analyser le contexte et résumer les longs fils dans Slack.
- Connecter les agents à un environnement de test isolé pour le débogage de code.
Déploiement et lancement
Vous n'aurez pas besoin de démarrer un cluster Kubernetes complet et lourd juste pour vous familiariser avec le projet. Pour le développement local ou le déploiement sur un petit Mac Mini / VPS, un k3s léger est suffisant.
La gestion du projet est liée à l'utilitaire just. Le processus de lancement se résume à quelques étapes :
# Клонируем репозиторий
git clone https://github.com/paradigmxyz/centaur
cd centaur
# Устанавливаем раннер команд
brew install just
# Настраиваем переменные для Slack и 1Password в bash-сессии
export OP_SERVICE_ACCOUNT_TOKEN=...
export SLACK_BOT_TOKEN=...
export SLACK_SIGNING_SECRET=...
# Создаём секреты в локальном K8s и запускаем стек
just bootstrap-secrets
just up
Une fois la compilation terminée, le bot commencera à accepter les commandes dans Slack ou via l'API REST.
Résumé
Paradigm a livré un outil soigné avec le bon focus sécurité. Au lieu de créer une autre interface web isolée, les développeurs se sont concentrés sur l'intégration avec le chat d'équipe existant et l'exécution de code dans des sandbox isolés.
Si votre équipe utilise déjà activement des agents IA en console et que vous cherchez un moyen de partager en toute sécurité leurs capacités entre employés, Centaur vaut définitivement le détour. Le projet est publié sous une licence ouverte, et le control plane basé sur Rust laisse une impression agréable en termes d'utilisation des ressources.
Projets similaires