ข้ามไปที่เนื้อหา

สำหรับผู้ใช้ Devin Desktop

Devin Desktop แก้ไขไฟล์
Maguyva มองเห็นทั้งรีโพ

Devin Desktop (Windsurf IDE) คือเอดิเตอร์ และ Devin Local คือเอเจนต์ แต่ในโมโนรีโพ เอเจนต์ก็ยังต้องมีแผนที่ว่าไฟล์ไหนสำคัญ Maguyva ทำดัชนีโค้ดเบสของคุณและส่งข้อมูลกลับผ่าน MCP (เชิงความหมาย เชิง AST เชิงกราฟ และเชิงข้อความ) ทำให้คำถาม “auth ทำงานตรงไหน” ได้คำตอบเป็นโฟลว์การยืนยันตัวตนจริง ไม่ใช่ test stub เจ็ดตัว

แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตรเครดิต

Devin Desktop แก้ไขสิ่งที่คุณชี้ไป Maguyva บอก Devin Local ว่าควรชี้ไปที่ไฟล์ไหน

แต่ละชั้นทำหน้าที่อะไร

สี่ส่วนประกอบ แต่ละส่วนมีหน้าที่ของตัวเอง

// เอดิเตอร์

Devin Desktop

ที่ที่คุณและ Devin Local ทำงานกันจริงๆ

// บริบทแบบแมนวล

@ mentions + .devin/rules/

บริบทแบบแมนวลเวิร์กดี จนกว่ารีโพจะใหญ่ขึ้น

// โค้ดเบส

Maguyva

ข้อมูลจริงของโค้ดเบสแบบอัตโนมัติผ่าน MCP

// ใครจ่ายเงิน

เวิร์กสเปซ ไม่ใช่ที่นั่ง

ไม่คิดค่าบริการต่อที่นั่งสำหรับเอเจนต์ ดูราคา

Devin Desktop คือเอดิเตอร์ ใช้มันให้เต็มที่

IDE ไม่ใช่ปัญหา ทั้ง Devin Local, การเติมคำอัตโนมัติแบบแท็บ, การแก้ไขหลายไฟล์ และ .devin/rules/ ยอดเยี่ยมอยู่แล้ว และคุณก็ใช้มันอยู่แล้วสำหรับ:

  • คำแนะนำแบบอินไลน์และการแก้ไขของ Devin Local ในไฟล์ที่เปิดอยู่
  • การแก้ไขหลายไฟล์เมื่อการเปลี่ยนแปลงอยู่ในขอบเขตจำกัด
  • .devin/rules/ สำหรับข้อตกลงของรีโพและกฎด้านสไตล์
  • การ @-mention เพื่อดึงไฟล์ที่ต้องการเข้ามาในบริบท

ทำแบบนี้ต่อไปได้เลย ไม่มีอะไรหายไปไหน

แต่ในโมโนรีโพจริง (TypeScript ที่มีการพึ่งพาระดับเวิร์กสเปซ, บริการ Python, แพ็กเกจปะปนกัน) บริบทของเอเจนต์จะพังทันทีที่ไฟล์ที่เกี่ยวข้องยังไม่อยู่ในสายตาของ Devin Local

วิธีแก้แบบแมนวลที่คุณลองมาแล้ว และจุดที่มันพัง

วิธีแก้แบบแมนวลสี่แบบ คู่กับจุดที่มันล้มเหลว ฝั่งซ้าย = สิ่งที่คุณทำอยู่ทุกวันนี้ ฝั่งขวา = จุดที่มันพัง

// the fix

// mention ไฟล์ที่คิดว่าใช่

คุณ @-mention ไฟล์สามไฟล์ที่คิดว่าสำคัญ Devin Local ก็แก้ไขในไฟล์เหล่านั้นได้เนียนๆ

// where it breaks

// การ mention คือการเดา

มันได้ผลก็ต่อเมื่อคุณรู้อยู่แล้วว่าไฟล์ไหนเกี่ยวข้อง ประเด็นทั้งหมดของเครื่องมือบริบทคือการเปิดเผยไฟล์ที่คุณไม่รู้ว่าต้อง mention

// the fix

// วางโค้ดที่ก็อบมา

คุณวางโค้ด 200 บรรทัดจากแพ็กเกจอื่นให้ Devin Local เพื่อให้มันมีบริบทเพียงพอ

// where it breaks

// โค้ดที่วางไว้ล้าสมัยไว

สนิปเป็ตที่คุณวางไว้ตอน 9 โมงเช้า ไม่สะท้อนการ rebase ที่เพื่อนร่วมทีมทำเสร็จตอน 11 โมง Devin Local กำลังแก้ไขโดยอิงกับแพ็กเกจเวอร์ชันผีที่ไม่มีอยู่จริงแล้ว

// the fix

// เขียนเอกสารบริบท

คุณเขียนไฟล์ .devin/rules/ หรือ markdown อธิบายสถาปัตยกรรม วันนี้มันยังถูกต้องอยู่

// where it breaks

// เอกสารล้าหลังโค้ดเร็วกว่าที่คิด

อะไรก็ตามที่คุณเขียนด้วยมือจะค่อยๆ คลาดเคลื่อนไปเรื่อยๆ โค้ดคือแหล่งความจริงเดียว เอกสารที่อธิบายชั้นคิวถูกต้องอยู่แค่หนึ่งสัปดาห์ แล้วก็ผิดตลอดกาลหลังจากนั้น

// the fix

// เก็บไฟล์กฎไว้

คุณเพิ่ม .devin/rules/ สำหรับการตั้งชื่อ lint และคำสั่งบิลด์ เหมาะมากสำหรับควบคุมพฤติกรรม

// where it breaks

// กฎ ≠ ดัชนี

.devin/rules/ คือที่ที่เหมาะสำหรับ “ต้องรัน pnpm tsc -b ก่อน commit เสมอ” แต่มันไม่ใช่ดัชนีที่สอบถามได้ของทุกสัญลักษณ์ ไฟล์ และจุดเรียกใช้ในโมโนรีโพของคุณ

Maguyva คือชั้นที่อยู่ข้างใต้

ไม่ได้มาแทนที่ Devin Desktop แต่เป็นชั้นบริบทของรีโพที่ต่อยอดจากการรองรับ MCP ของ Devin Local

  • เชิงความหมาย + AST + กราฟ + ข้อความ ค้นหาได้ทั้งตามความหมาย โครงสร้าง การพึ่งพา หรือข้อความตรงตัว ทุกผลลัพธ์คืนพาธไฟล์และเลขบรรทัดมาให้
  • ข้ามแพ็กเกจโดยค่าเริ่มต้น จุดเรียกใช้และโค้ดที่อิมพอร์ตครอบคลุมทุกแพ็กเกจในโมโนรีโพ ไม่ใช่แค่แพ็กเกจที่ Devin Local เปิดอยู่ตอนนี้
  • รับรู้แบรนช์ Maguyva มองเห็นโค้ดเวอร์ชันเดียวกับที่ Devin Local กำลังแก้ไขอยู่
  • เสริมกัน ไม่ได้แข่งกัน .devin/rules/ ก็ยังทำหน้าที่ของมันต่อไป @-mentions ก็ยังทำหน้าที่ของมันต่อไป Maguyva เข้ามาเติมเต็มช่องว่างที่ทั้งสองอย่างเติมไม่ได้

Devin Local แก้ไขไฟล์ที่คุณชี้ไป

Maguyva บอกเอเจนต์ว่าควรชี้ไปที่ไฟล์ไหน

สามเวิร์กโฟลว์สำหรับโมโนรีโพ

ข้ามแพ็กเกจ ข้ามภาษา อ้างอิงจากกราฟการเรียกใช้จริง ไม่ใช่การ grep ของ Devin Local

// workflow 01

ค้นหาโฟลว์การยืนยันตัวตนข้ามแพ็กเกจ โดยไม่ต้อง mention อะไรเลย

devin> ระบบยืนยันตัวตนในโมโนรีโพนี้ทำงานที่ตรงไหน?

graph::query("authentication flow")
  packages/web/src/auth/session.ts:42       middleware
  packages/api/src/auth/jwt.ts:88           token verify
  packages/shared/src/auth/types.ts:12      AuthContext
  packages/admin/src/auth/admin-only.ts:31  rbac gate

→ จุดเริ่มต้น 4 จุด ครอบคลุม 4 แพ็กเกจ จัดอันดับตามความหนาแน่นของจุดเรียกใช้
[exit 0]

คุณไม่ได้ mention ไฟล์ไหนเลย ไม่ได้วางสนิปเป็ตด้วย Devin Local มีไฟล์สำคัญทั้งสี่ไฟล์พร้อมลำดับที่ถูกต้อง และแก้ไขได้อย่างมีหลักฐานอ้างอิงจริง

// workflow 02

หาการอิมพลีเมนต์จริง ไม่ใช่ test stub

devin> normalizePhoneNumber จัดการ E.164 ยังไง?

semantic::query("normalize phone E.164")
  packages/shared/util/phone.ts:88     normalizePhoneNumber()  ← ของจริง
  packages/api/test/phone.spec.ts:14   jest.mock(...)          ← stub
[exit 0]

ชื่อบอกอะไรไม่ได้เสมอไป mock บดบังโค้ดจริงได้ Maguyva จัดอันดับการอิมพลีเมนต์จริงให้อยู่เหนือ test mock ในทุกแพ็กเกจ

// workflow 03

เช็ครัศมีผลกระทบก่อนรีแฟกเตอร์

devin> อะไรเรียก QueueDispatcher.publish บ้างในโมโนรีโพนี้?

graph::callers(QueueDispatcher.publish)
  3 ครั้งใน packages/billing/*
  1 ครั้งใน packages/audit/*
  1 ครั้งใน packages/notifications/*
  1 ครั้งใน services/python-worker/*  ← ข้ามภาษาผ่าน gRPC stub
[exit 0]

ข้ามแพ็กเกจ และข้ามภาษาด้วยถ้ารีโพของคุณเป็นแบบหลายภาษา จุดเรียกใช้จะโผล่ขึ้นมาให้เห็นทันที การเปลี่ยนแปลงอ้างอิงจากโค้ดที่อิมพอร์ตจริง ไม่ใช่การ grep ของ Devin Local

ตั้งค่ากับ Devin Desktop

สามขั้นตอน แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตรเครดิต

  1. // step 01

    ทำดัชนีรีโพที่ maguyva.ai

    เลือกโมโนรีโพที่คุณเจอปัญหาเรื่องบริบทมากที่สุด

  2. // step 02

    เพิ่ม Maguyva เป็นเซิร์ฟเวอร์ MCP ใน Devin Desktop

    ~/.config/devin/mcp_config.json

    {
      "mcpServers": {
        "maguyva": {
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
          }
        }
      }
    }
  3. // step 03

    ถามคำถามเดียวที่คุณรู้คำตอบอยู่แล้ว

    อย่าเริ่มจากทั้งบริษัทของคุณ เริ่มจากรีโพเดียวและคำถามเดียวที่ตรวจสอบได้ เช่น “มีอะไรเรียก formatInvoice บ้างข้ามแพ็กเกจ?”