
GitHub Copilot Chat
GenAIScript s’intègre avec GitHub Copilot Chat en fournissant un participant de chat qui vous permet d’exécuter des scripts dans le contexte d’une conversation de chat, et une invite personnalisée pour générer GenAIScript plus efficacement avec Copilot Chat.
Participant de chat @genaiscript
Section intitulée « Participant de chat @genaiscript »Le participant de chat @genaiscript
vous permet d’exécuter des scripts sans le contexte
d’une conversation GitHub Copilot Chat.
Cela est utile pour exploiter des scripts existants dans une session de chat interactive.

Choix du script à exécuter
Section intitulée « Choix du script à exécuter »La commande /run
attend un identifiant de script comme premier argument (par exemple, /run poem
). Le reste de la requête est
transmis au script sous la variable env.vars.question
.
@genaiscript /run summarize
Si vous omettez la commande /run
, GenAIScript recherchera un script nommé copilotchat
. S’il en trouve un, il l’exécutera.
Sinon, il vous demandera de choisir un script dans la liste des scripts disponibles.
@genaiscript add comments to the current editor
Choix du modèle
Section intitulée « Choix du modèle »Si votre script ne spécifie pas de modèle, GenAIScript vous invitera à en choisir un.
Vous pouvez également spécifier quel modèle choisir dans la configuration du script en utilisant le fournisseur github_copilot_chat
.
- modèle actuellement sélectionné :
github_copilot_chat:current
script({ model: "github_copilot_chat:current",});
- gpt-4o-mini :
github_copilot_chat:gpt-4o-mini
script({ model: "github_copilot_chat:gpt-4o-mini",});
Lorsque GenAIScript vous invite à choisir un modèle, il stocke vos choix dans les paramètres de l’espace de travail sous
{ "genaiscript.languageChatModels": { "gpt-4o": "gpt-4o-2024-11-20" }}
Disponibilité des modèles
Section intitulée « Disponibilité des modèles »Tous les modèles listés dans l’interface utilisateur de GitHub Copilot Chat ne sont pas disponibles pour les extensions tierces. Lorsque GenAIScript tente d’accéder à un modèle non disponible, il vous en informe mais n’a pas de contrôle sur votre configuration d’accès aux modèles.
Contexte
Section intitulée « Contexte »Le contexte sélectionné par l’utilisateur dans Copilot Chat est converti en variables et transmis au script :
- le contenu de l’invite est passé dans
env.vars.question
. L’identifiant du script est supprimé dans le cas de/run
. - le texte courant de l’éditeur est passé dans
env.vars["copilot.editor"]
- la sélection courante de l’éditeur est passée dans
env.vars["copilot.selection"]
- toutes les autres références de fichiers sont transmises dans
env.files
Exemples
Section intitulée « Exemples »mermaid
générera un diagramme à partir de l’invite de l’utilisateur.
def("CODE", env.files);$`Generate a class diagram using mermaid of the code symbols in the CODE.`;
websearcher
effectuera une recherche web pour l’invite de l’utilisateur et utilisera le fichier en contexte dans la réponse.
const res = await retrieval.webSearch(env.vars.question);def("QUESTION", env.vars.question);def("WEB_SEARCH", res);def("FILE", env.files, { ignoreEmpty: true });$`Answer QUESTION using WEB_SEARCH and FILE.`;
dataanalyst
utilise les outils d’interprète de code Python pour résoudre une question de calcul de données.
script({ tools: [ "fs_read_file", "python_code_interpreter_copy_files_to_container", "python_code_interpreter_read_file", "python_code_interpreter_run", ],});def("DATA", env.files.map(({ filename }) => filename).join("\n"));def("QUESTION", env.vars.question);
$`Run python code to answer the data analyst questionin QUESTION using the data in DATA.Return the python code that was used to compute the answer.`;
Historique
Section intitulée « Historique »L’historique des messages est transmis dans env.vars["copilot.history"]
. Il s’agit d’un tableau de HistoryMessageUser | HistoryMessageAssistant
:
[ { "role": "user", "content": "write a poem" }, { "role": "assistant", "content": "I am an assistant" }]
Conversation continue
Section intitulée « Conversation continue »Vous pouvez utiliser le chat @genaiscript
pour intégrer l’exécution d’un script dans une conversation existante
ou pour continuer la conversation avec Copilot avec les résultats du script. Les résultats
du script sont réintégrés dans l’historique du chat et sont accessibles à tout copilot par la suite.
@genaiscript /run tool
exécutera le scripttool
et réintégrera les résultats dans l’historique du chat.analyze the results
continuera la conversation avec les résultats du script.
Script par défaut
Section intitulée « Script par défaut »Le script suivant peut être utilisé comme modèle de départ pour créer le script par défaut lorsque l’utilisateur n’utilise pas la commande /run
.
script({ title: "Reasoning Agent", description: "A reasoning agent that can answer questions about files, git, github, documentation, web queries, video analysis.", model: "large", system: [ // List of system components and tools available for the script "system", "system.assistant", "system.safety_harmful_content", "system.safety_jailbreak", "system.safety_protected_material", "system.tools", "system.files", "system.files_schema", "system.diagrams", "system.annotations", "system.git_info", "system.github_info", "system.safety_harmful_content", "system.safety_validate_harmful_content", "system.agent_fs", "system.agent_git", "system.agent_github", "system.agent_interpreter", "system.agent_docs", "system.agent_web", "system.agent_video", "system.agent_data", "system.vision_ask_images", "system.think", ], group: "mcp", // Group categorization for the script parameters: { question: { type: "string", description: "the user question", }, "copilot.editor": { type: "string", description: "the content of the opened editor, if any", default: "", }, "copilot.selection": { type: "string", description: "the content of the opened editor, if any", default: "", }, }, flexTokens: 20000, // Flexible token limit for the script});
// Extract the 'question' parameter from the environment variablesconst { question } = env.vars;const editor = env.vars["copilot.editor"];const selection = env.vars["copilot.selection"];const history = env.vars["copilot.history"];
$`## Tasks
- make a plan to answer the QUESTION step by step using the information in the Context section- answer the QUESTION
## Output
- The final output will be inserted into the Visual Studio Code Copilot Chat window.- do NOT include the plan in the output
## Guidance
- use the agent tools to help you- do NOT be lazy, always finish the tasks- do NOT skip any steps`;
// Define a variable QUESTION with the value of 'question'def("QUESTION", question, { lineNumbers: false, detectPromptInjection: "available",});
$`## Context`;
// Define a variable FILE with the file data from the environment variables// The { ignoreEmpty: true, flex: 1 } options specify to ignore empty files and to use flexible token allocationif (history?.length > 0) defData("HISTORY", history, { flex: 1, format: "yaml", sliceTail: 10 });if (env.files.length) def("FILE", env.files, { lineNumbers: false, ignoreEmpty: true, flex: 1, detectPromptInjection: "available", });if (editor) def("EDITOR", editor, { flex: 4, ignoreEmpty: true, detectPromptInjection: "available", });if (selection) def("SELECTION", selection, { flex: 5, ignoreEmpty: true, detectPromptInjection: "available", });
Fonctionnalités non prises en charge
Section intitulée « Fonctionnalités non prises en charge »Les fonctionnalités suivantes ne sont actuellement pas prises en charge dans le participant de chat :
- Outils (
#tool
) - Référence
Workspace
genaiscript
instructions personnalisées
Section intitulée « genaiscriptinstructions personnalisées »GenAIScript sauvegardera automatiquement un fichier instructions.md dans le dossier .genaiscript/instructions
lorsque vous exécutez un script. Ce fichier contient les instructions utilisées pour générer le script.
Sessions de chat augmentées
Section intitulée « Sessions de chat augmentées »Voici comment démarrer une session de chat en utilisant l’invite genaiscript
.
Sélectionnez l’icône Attacher le contexte 📎 (
Ctrl+/
), puis sélectionnez Instructions…, puis choisissez l’invite genaiscript.instructions.md.Incluez des instructions pour écrire un script ou répondre à une question concernant GenAIScript,
write a script that summarizes a video
.
Comme l’invite injecte la documentation complète de GenAIScript (plus de 700 ko au moment de la rédaction), il est recommandé d’utiliser un modèle avec un grand contexte comme Sonnet ou Gemini.
N’oubliez pas non plus que la conversation entière est renvoyée à chaque itération, cette technique fonctionne donc mieux pour une requête détaillée en une seule fois.