ข้ามไปที่เนื้อหา
cd /languages
  • งานอัตโนมัติบน Windows
  • เชลล์
  • รองรับ AST และสัญลักษณ์

PowerShell บน Maguyva: กราฟโค้ดสำหรับสคริปต์และโมดูล

Maguyva รองรับ PowerShell ด้วย AST สัญลักษณ์ และกราฟ เพื่อให้เอเจนต์ AI ติดตามฟังก์ชัน คลาส และการเรียก cmdlet ข้ามสคริปต์และโมดูลได้

จุดที่ PowerShell ทำให้เครื่องมือ AI แบบผิวเผินสะดุด

ฟังก์ชันของคุณกับ cmdlet ในตัวใช้รูปแบบการตั้งชื่อเดียวกัน Get-Invoice และ Get-ChildItem ดูเหมือนกัน เครื่องมือที่ทิ้งคำสั่ง “ในตัว” ตามคำกริยาจึงทิ้งฟังก์ชันของคุณไปด้วย สคริปต์ยังผสมโค้ดระดับโมดูล ฟังก์ชัน คลาส และบล็อกสคริปต์ไว้ในไฟล์เดียว จึงยากที่จะรู้ว่าบรรทัดหนึ่งเป็นของฟังก์ชันใด

Maguyva เก็บการเรียกทั้งสองแบบไว้ และผูกแต่ละการเรียกกับฟังก์ชันที่มันอยู่ภายใน

Maguyva ดึงอะไรจากโค้ด PowerShell ได้บ้าง

Maguyva ครอบคลุมไฟล์ .ps1, .psm1 และ .psd1 ฟังก์ชันและเมธอดของคลาสถูกดึงออกมาเป็นสิ่งที่เรียกใช้ได้ ส่วนคลาสและ enum เป็นไทป์ พารามิเตอร์ของสคริปต์และเมธอดถูกติดตาม และการอ่านและเขียนภายในฟังก์ชันจะผูกกับฟังก์ชันนั้น ไม่ใช่กับโมดูล

การเรียก 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 ที่สร้างจากฟังก์ชันขั้นสูง คลาส และ enum
  • > รันบุ๊กงานอัตโนมัติที่เอเจนต์ต้องเห็นว่าสคริปต์ใดแตะต้องเซอร์วิส แชร์ไฟล์ หรือคีย์รีจิสทรีก่อนมีการเปลี่ยนแปลง

เวิร์กโฟลว์ของเอเจนต์

  • > ค้นหาผู้เรียกทั้งหมดของฟังก์ชันขั้นสูงก่อนเปลี่ยนพารามิเตอร์
  • > แสดงรายการสคริปต์ที่เรียก cmdlet อย่าง `Restart-Service` ก่อนแก้รันบุ๊ก
  • > ทำแผนที่ฟังก์ชันที่เขียนลงตัวแปรที่ใช้ร่วมกันก่อนรีแฟกเตอร์โมดูล

รายละเอียดเอนจิน

  • > การรองรับ PowerShell ครอบคลุมไฟล์ `.ps1`, `.psm1` และ `.psd1` ฟังก์ชันและเมธอดของคลาสเป็นสิ่งที่เรียกใช้ได้ ส่วนคลาสและ enum เป็นไทป์
  • > ตัวกรองไลบรารีมาตรฐานถูกปิดสำหรับ PowerShell การเรียก cmdlet อย่าง `Get-ChildItem` จึงยังอยู่ในกราฟข้างฟังก์ชันของคุณเอง
  • > การอ่านและเขียนภายในฟังก์ชันจะผูกกับฟังก์ชันนั้น ไม่ใช่กับโมดูล

จุดเริ่มต้น MCP ที่มีประโยชน์

  • find_symbol

    ใช้กับฟังก์ชันขั้นสูงหรือคลาสเมื่อต้องการนิยามและผู้เรียก

  • dependency_search

    ใช้การท่องกราฟขาเข้าเพื่อดูว่าสคริปต์ใดเรียก cmdlet อย่าง `Restart-Service`

  • get_task_context

    ใช้กับพรอมต์อย่าง "ติดตามว่า `Deploy-Site` ทำอะไรตั้งแต่ต้นจนจบ"

คู่มือที่เกี่ยวข้อง

ส่วนอื่นของรีโพที่เกี่ยวข้อง

ดูคู่มือทั้งหมด
.NET ที่อยู่มายาวนาน การเขียนโปรแกรม

การรองรับ C# ใน Maguyva: รีแฟกเตอร์ที่ปลอดภัยขึ้นสำหรับโค้ดเบส .NET

เหมาะกับกรณีที่รีโพ .NET ใหญ่ขึ้นจนความปลอดภัยของการช่วยเหลือจาก AI ขึ้นอยู่กับโครงสร้างจริง

รองรับ AST และสัญลักษณ์ การแยกวิเคราะห์ AST การสกัดสัญลักษณ์ ความสัมพันธ์ในกราฟ

นามสกุลไฟล์

.cs, .csx

เปิดคู่มือ
ระบบไดนามิก การเขียนโปรแกรม

การรองรับ Python ใน Maguyva: ค้นหาโค้ดและรีแฟกเตอร์ด้วย AI

มีประโยชน์เมื่อโค้ดเบส Python กระจายไปทั่ว service, สคริปต์, stub ชนิดข้อมูล และโค้ดที่เชื่อมโยงส่วนต่างๆ ในการปฏิบัติงาน

รองรับ AST และสัญลักษณ์ การแยกวิเคราะห์ AST การสกัดสัญลักษณ์ ความสัมพันธ์ในกราฟ

นามสกุลไฟล์

.py, .pyi, .pyw

เปิดคู่มือ