Créer un bot de revue de code
Dans ce guide, vous créerez un bot de revue de code qui examine automatiquement les pull requests à l’aide de Skills de Workspace. Le bot charge les normes de programmation depuis les fichiers de Skill et fournit des retours structurés. Vous créerez un Workspace avec un répertoire de Skills et définirez un Agent Skill avec des instructions de revue et des fichiers de référence. Vous relierez ensuite ce Skill à un Agent qui effectue les revues automatisées.
PrérequisLien direct vers Prérequis
- Node.js
v22.13.0ou version ultérieure est installé - Une clé API d’un fournisseur de modèles pris en charge
- Un projet Mastra existant (suivez le guide d’installation pour configurer un nouveau projet)
Créer le WorkspaceLien direct vers Créer le Workspace
Dans votre fichier src/mastra/index.ts, importez les classes Workspace et LocalFilesystem. Sur l’instance Workspace, configurez l’option skills afin qu’elle pointe vers un répertoire de Skills. Le répertoire skills se trouve dans le basePath du système de fichiers.
import { Mastra } from '@mastra/core'
import { resolve } from 'node:path'
import { Workspace, LocalFilesystem } from '@mastra/core/workspace'
const workspace = new Workspace({
filesystem: new LocalFilesystem({
basePath: resolve(import.meta.dirname, '../../workspace'),
}),
skills: ['skills'],
})
export const mastra = new Mastra({
workspace,
})
À la racine de votre projet, créez un dossier nommé workspace. À l’intérieur, créez un dossier skills. C’est là que vous définirez le Skill des normes de programmation à l’étape suivante.
Créer le Skill des normes de programmationLien direct vers Créer le Skill des normes de programmation
Les Skills sont des répertoires structurés qui contiennent un fichier SKILL.md avec des instructions destinées à l’Agent. Le Skill des normes de programmation définit le processus de revue et fait référence à un guide de style.
Dans workspace/skills, créez un dossier nommé code-standards. Créez un fichier nommé SKILL.md et ajoutez les instructions de revue.
---
name: code-standards
description: Automated code review standards and checks
---
# Code Review Standards
Review code systematically using these steps:
1. **Critical Issues**: Security vulnerabilities, memory leaks, logic bugs, missing error handling
2. **Code Quality**: Functions over 50 lines, code duplication, confusing names, missing types
3. **Style Guide**: Check references/style-guide.md for naming and organization
4. **Linting**: Flag common issues like use of `var`, leftover `console.log` statements, and `debugger` statements
Provide feedback in this format:
**Summary**: One sentence overview
**Critical Issues**: List with line numbers
**Suggestions**: Improvements that would help
**Positive Notes**: What the code does well
Dans workspace/skills/code-standards, créez un dossier references qui contiendra les documents de référence du Skill. Rédigez un guide de style qui décrit les conventions de programmation du projet dans le fichier style-guide.md.
# Style Guide
## Naming
- Variables/Functions: `camelCase`
- Constants: `UPPER_SNAKE_CASE`
- Files: `kebab-case.ts`
- Booleans: Start with `is`, `has`, `should`
## Code organization
```typescript
// 1. Imports
import { foo } from 'bar'
// 2. Constants
const MAX_SIZE = 100
// 3. Types
interface User {
id: string
}
// 4. Functions
function doSomething() {}
// 5. Exports
export { doSomething }
```
## Error handling
Always handle errors explicitly - never silently catch.
## Comments
Write "why" not "what".
Créer l’Agent de revueLien direct vers Créer l’Agent de revue
Il est maintenant temps de créer l’Agent de bot de revue de code qui utilise le Skill code-standards. Créez un fichier src/mastra/agents/code-reviewer.ts et définissez l’Agent :
import { Agent } from '@mastra/core/agent'
export const codeReviewer = new Agent({
id: 'code-reviewer',
name: 'Code Review Bot',
instructions: `You are an automated code reviewer.
When asked to review code:
1. Activate the 'code-standards' skill
2. Follow the review process from the skill
3. Check against the style guide in skill references
4. Be constructive and specific with line numbers`,
model: 'openai/gpt-5.6-sol',
})
Définissez l’Agent en l’important dans src/mastra/index.ts et en l’enregistrant auprès de l’instance Mastra :
import { Mastra } from '@mastra/core'
import { resolve } from 'node:path'
import { Workspace, LocalFilesystem } from '@mastra/core/workspace'
import { codeReviewer } from './agents/code-reviewer'
const workspace = new Workspace({
filesystem: new LocalFilesystem({
basePath: resolve(import.meta.dirname, '../../workspace'),
}),
skills: ['skills'],
})
export const mastra = new Mastra({
workspace,
agents: { codeReviewer },
})
Tester le botLien direct vers Tester le bot
Démarrez Studio et interagissez avec le bot de revue de code pour le voir à l’œuvre.
- npm
- pnpm
- Yarn
- Bun
npm run dev
pnpm run dev
yarn dev
bun run dev
Ouvrez localhost:4111, puis accédez à l’Agent de revue de code.
Dans le champ de chat, fournissez un extrait de code à réviser, par exemple :
Review this code:
function getData(id) {
var result = fetch('/api/data/' + id);
console.log(result);
return result;
}
Le bot devrait activer le Skill code-standards et fournir un retour structuré. Les réponses d’Agent étant non déterministes, votre sortie peut varier, mais vous devriez obtenir un résultat semblable à celui-ci :
**Summary**: Function has several issues with variable declaration,
debugging statements, and missing error handling.
**Critical Issues**:
- Missing error handling for fetch (line 2)
- No async/await for asynchronous operation (line 2)
**Suggestions**:
- Use const instead of var (line 2)
- Remove console.log before committing (line 3)
- Add TypeScript type for id parameter
- Use template literals instead of concatenation
**Positive Notes**:
- Function name is clear and descriptive
Étapes suivantesLien direct vers Étapes suivantes
Vous pouvez étendre ce bot afin de :
- Ajouter des Skills pour différents langages ou frameworks
- Créer des Skills pour les contrôles de sécurité et les revues de performances
- Intégrer GitHub Actions pour automatiser les revues de PR
- Créer un bot de commentaires de PR qui laisse des retours en ligne
Pour en savoir plus :