À propos du projet

ThinkWatch est une passerelle auto-hébergée qui centralise toutes les requêtes vers les modèles d'IA et les appels d'outils MCP pour une organisation. Elle agit comme un point de contrôle similaire à un hôte bastion, se plaçant entre les clients tels que Claude Code, Cursor, les agents personnalisés et les pipelines CI/CD, et les fournisseurs en amont, notamment OpenAI, Anthropic, Google Gemini, Azure OpenAI et AWS Bedrock. Les capacités clés incluent : - **Identité MCP par utilisateur** : les utilisateurs connectent leurs propres comptes GitHub, Notion, Linear, Slack ou Atlassian via OAuth ou des jetons personnels, afin que les journaux d'audit en amont affichent l'acteur réel. Les jetons sont chiffrés au repos et les listes d'outils sont mises en cache par utilisateur. - **Garde-fous de sécurité** : les données personnelles telles que les e-mails, numéros de téléphone et numéros de carte sont masquées avant que les requêtes ne partent en amont et restaurées dans les réponses, y compris les réponses en streaming. Les appels d'outils sont vérifiés par rapport à des règles de commandes dangereuses, et les caractères Unicode cachés ainsi que les phrases d'injection de prompt peuvent être journalisés ou refusés. - **Identité organisationnelle** : la connexion fonctionne via n'importe quel fournisseur OIDC avec TOTP en option. Cinq rôles intégrés plus des rôles personnalisés contrôlent l'accès aux modèles, aux outils et aux pages d'administration. - **Clés unifiées** : les clés virtuelles `tw-` peuvent être limitées à la passerelle AI, à la passerelle MCP, ou aux deux. Les clés sont stockées sous forme de hachages et prennent en charge la rotation avec une période de grâce. - **Limites de débit et budgets** : des fenêtres glissantes d'une minute à une semaine limitent les requêtes ou les jetons, et des budgets quotidiens, hebdomadaires ou mensuels plafonnent les dépenses. Les limites s'appliquent aux utilisateurs, aux clés API ou aux rôles. - **Comptabilité analytique** : les dépenses sont rapportées par modèle, utilisateur, fournisseur et centre de coûts, avec des rapports de refacturation CSV et des prévisions de fin de mois. Des pondérations par modèle font que les modèles coûteux comptent davantage dans les quotas. - **Piste d'audit** : chaque requête de modèle et appel d'outil est enregistré dans ClickHouse avec l'utilisateur, les paramètres, la réponse, la latence et les erreurs. Les événements peuvent être transmis à un SIEM via Syslog, à Kafka via un proxy REST, ou par webhooks signés. - **Point de terminaison multi-format** : les requêtes OpenAI Chat Completions, OpenAI Responses, Anthropic Messages et Gemini sont servies sur un seul port et converties au format en amont. Le routage répartit le trafic selon le poids, la latence ou l'état de santé, avec un disjoncteur pour les services en amont défaillants. Le projet comprend une passerelle sur le port 3000 et une console de gestion sur le port 3001. Le déploiement est pris en charge via Docker Compose et Kubernetes avec un chart Helm. La console fournit des instructions de configuration pour Claude Code, Cursor, Continue, Cline, les SDK OpenAI et Anthropic, et cURL. ThinkWatch est à code source disponible sous la Business Source License 1.1. L'utilisation hors production est gratuite, et l'utilisation en production est gratuite jusqu'à 10 000 000 de jetons facturables et 10 000 appels d'outils MCP par mois calendaire, au-delà desquels une licence commerciale est requise.