Μετάβαση στο περιεχόμενο
cd /languages
  • Αυτοματισμός Windows
  • Κέλυφος & Σενάρια
  • Υποστήριξη AST και συμβόλων

PowerShell στο Maguyva: γράφοι κώδικα για σενάρια και αρθρώματα

Το Maguyva υποστηρίζει το PowerShell με AST, σύμβολα και γράφο, ώστε οι πράκτορες AI να ακολουθούν συναρτήσεις, κλάσεις και κλήσεις cmdlet σε σενάρια και αρθρώματα.

Πού σκοντάφτουν τα επιφανειακά εργαλεία AI στο PowerShell

Οι δικές σας συναρτήσεις και τα ενσωματωμένα cmdlet ακολουθούν το ίδιο στυλ ονοματοδοσίας. Τα Get-Invoice και Get-ChildItem μοιάζουν, οπότε ένα εργαλείο που απορρίπτει «ενσωματωμένες» εντολές με βάση το ρήμα απορρίπτει και τις δικές σας συναρτήσεις. Τα σενάρια επίσης αναμειγνύουν κώδικα επιπέδου αρθρώματος, συναρτήσεις, κλάσεις και μπλοκ σεναρίων σε ένα αρχείο, οπότε είναι δύσκολο να πει κανείς σε ποια συνάρτηση ανήκει μια γραμμή.

Το Maguyva κρατά και τα δύο είδη κλήσεων και αποδίδει κάθε κλήση στη συνάρτηση μέσα στην οποία βρίσκεται.

Τι εξάγει το Maguyva από κώδικα PowerShell

Το Maguyva καλύπτει αρχεία .ps1, .psm1 και .psd1. Οι συναρτήσεις και οι μέθοδοι κλάσεων εξάγονται ως καλέσιμες μονάδες, ενώ οι κλάσεις και οι απαριθμήσεις ως τύποι. Οι παράμετροι σεναρίων και μεθόδων παρακολουθούνται, και οι αναγνώσεις και εγγραφές μέσα σε μια συνάρτηση αποδίδονται σε αυτήν τη συνάρτηση, όχι στο άρθρωμα.

Οι κλήσεις cmdlet παραμένουν στον γράφο. Το PowerShell δεν εφαρμόζει το φίλτρο τυπικής βιβλιοθήκης που χρησιμοποιούν οι περισσότερες γλώσσες, οπότε τα Write-Host, Get-ChildItem και Restart-Service εμφανίζονται ως ακμές κλήσεων δίπλα στις δικές σας συναρτήσεις Get-* και Set-*. Ο πράκτορας μπορεί να ρωτήσει ποια σενάρια επανεκκινούν μια υπηρεσία ή ποιες συναρτήσεις γράφουν στην κονσόλα και να πάρει δομημένη απάντηση.

Κανένας τύπος σχέσης δεν σημειώνεται ως μη εφαρμόσιμος για το PowerShell, οπότε ο γράφος καταγράφει επίσης κληρονομικότητα κλάσεων και υλοποίηση διεπαφών, δημιουργία στιγμιοτύπων, ροή ελέγχου, αναγνώσεις και εγγραφές.

Παραδείγματα προτροπών για πράκτορες

  • «Ποιος καλεί το Invoke-Backup και από ποια προγραμματισμένα σενάρια;» (find_symbol, μετά dependency_search με εισερχόμενη κατεύθυνση)
  • «Ποιες συναρτήσεις καλούν το Restart-Service;» (dependency_search)
  • «Ακολούθησε τι κάνει το Deploy-Site από την αρχή ως το τέλος.» (get_task_context)

Γνωστοί περιορισμοί

  • Επειδή οι κλήσεις cmdlet διατηρούνται, πολύ συνηθισμένα cmdlet όπως Write-Host και Select-Object έχουν πολλές εισερχόμενες ακμές. Ξεκινήστε από τη δική σας συνάρτηση όταν θέλετε εστιασμένο γράφο κλήσεων.
  • Το Import-Module και η φόρτωση σεναρίων με τελεία είναι συνηθισμένες εντολές, οπότε η προεπιλογή imports στο structural_search δεν επιλέγει τίποτα. Χρησιμοποιήστε το text_pattern_search για να τα καταγράψετε.

Επόμενα βήματα

Συνδέστε ένα αποθετήριο με τον γρήγορο οδηγό εκκίνησης και έπειτα δείτε τον πίνακα υποστήριξης στη σελίδα συμβατότητας. Για τον κώδικα .NET που καλούν τα σενάριά σας, διαβάστε τον οδηγό για τη C#.

Ιδανική χρήση

  • > Ομάδες υποδομής και λειτουργιών με μεγάλες συλλογές `.ps1` και `.psm1` όπου τα σενάρια καλούν το ένα τις συναρτήσεις του άλλου.
  • > Αρθρώματα του PowerShell χτισμένα από προηγμένες συναρτήσεις, κλάσεις και απαριθμήσεις.
  • > Εγχειρίδια αυτοματισμού όπου ο πράκτορας πρέπει να δει ποια σενάρια αγγίζουν μια υπηρεσία, έναν κοινόχρηστο φάκελο ή ένα κλειδί μητρώου πριν από οποιαδήποτε αλλαγή.

Ροές εργασίας πρακτόρων

  • > Εύρεση όλων των καλούντων μιας προηγμένης συνάρτησης πριν αλλάξουν οι παράμετροί της.
  • > Καταγραφή των σεναρίων που καλούν ένα cmdlet όπως το `Restart-Service` πριν αλλάξει ένα εγχειρίδιο αυτοματισμού.
  • > Χαρτογράφηση των συναρτήσεων που γράφουν σε μια κοινόχρηστη μεταβλητή πριν από αναδιαμόρφωση ενός αρθρώματος.

Λεπτομέρειες μηχανής

  • > Η υποστήριξη του PowerShell καλύπτει αρχεία `.ps1`, `.psm1` και `.psd1`. Οι συναρτήσεις και οι μέθοδοι κλάσεων είναι καλέσιμες μονάδες· οι κλάσεις και οι απαριθμήσεις είναι τύποι.
  • > Το φίλτρο τυπικής βιβλιοθήκης είναι απενεργοποιημένο για το PowerShell, οπότε κλήσεις cmdlet όπως `Get-ChildItem` μένουν στον γράφο δίπλα στις δικές σας συναρτήσεις.
  • > Οι αναγνώσεις και εγγραφές μέσα σε μια συνάρτηση αποδίδονται σε αυτήν τη συνάρτηση, όχι στο module.

Χρήσιμα σημεία εισόδου MCP

  • find_symbol

    Χρησιμοποιήστε το για μια προηγμένη συνάρτηση ή κλάση όταν χρειάζεστε τον ορισμό και τους καλούντες.

  • dependency_search

    Χρησιμοποιήστε εισερχόμενη διάσχιση για να δείτε ποια σενάρια καλούν ένα cmdlet όπως το `Restart-Service`.

  • get_task_context

    Χρησιμοποιήστε το για προτροπές όπως «ακολούθησε τι κάνει το `Deploy-Site` από την αρχή ως το τέλος».