// trình soạn thảo
Devin Desktop
Nơi bạn và Devin Local thực sự làm việc.
Dành cho người dùng Devin Desktop
Devin Desktop (IDE Windsurf) là trình soạn thảo và Devin Local là agent. Trong một monorepo, agent vẫn cần một bản đồ để biết tệp nào quan trọng. Maguyva lập chỉ mục codebase của bạn và trả về qua MCP (ngữ nghĩa, AST, đồ thị, và văn bản), để câu hỏi “auth xảy ra ở đâu” trả về đúng luồng auth thực tế, chứ không phải bảy test stub.
Gói Free: 3 repository, Tối đa 50K dòng repo đã index, không cần thẻ tín dụng.
Devin Desktop chỉnh sửa nơi bạn trỏ tới. Maguyva cho Devin Local biết nên trỏ tới tệp nào. Bốn mảnh ghép. Mỗi mảnh có một nhiệm vụ.
// trình soạn thảo
Nơi bạn và Devin Local thực sự làm việc.
// ngữ cảnh thủ công
Ngữ cảnh thủ công vẫn ổn, cho đến khi repo trở nên lớn.
// codebase
Tự động cung cấp dữ kiện về codebase qua MCP.
// ai trả tiền
Không tính phí riêng cho từng agent. Xem bảng giá
Vấn đề không nằm ở IDE. Devin Local, tab completion, chỉnh sửa đa tệp, và .devin/rules/ đều xuất sắc, và bạn đã dùng chúng cho:
.devin/rules/ cho quy ước repo và các rào chắn phong cách viết mã.@-mentions để đưa một tệp cụ thể vào ngữ cảnh.Cứ tiếp tục làm vậy. Không có gì trong số đó biến mất cả.
Nhưng trong một monorepo thực thụ (TypeScript với các phụ thuộc workspace, dịch vụ Python, các package hỗn hợp) ngữ cảnh của agent sẽ vỡ ngay khi tệp liên quan chưa nằm trong tầm nhìn của Devin Local.
Bốn cách khắc phục thủ công đi kèm với kiểu thất bại của chúng. Trái = điều bạn làm hôm nay. Phải = nơi nó vỡ.
// the fix
Bạn @-mention ba tệp mà bạn nghĩ là quan trọng. Devin Local chỉnh sửa gọn gàng bên trong chúng.
// where it breaks
Nó chỉ hiệu quả khi bạn đã biết những tệp nào liên quan. Cả điểm mấu chốt của công cụ ngữ cảnh là làm nổi lên những tệp mà bạn không biết để nhắc tới.
// the fix
Bạn dán 200 dòng từ một package khác vào Devin Local để cho nó đủ ngữ cảnh.
// where it breaks
Đoạn mã bạn dán lúc 9 giờ sáng không phản ánh lần rebase mà đồng đội của bạn đã đẩy lên lúc 11 giờ. Devin Local đang chỉnh sửa dựa trên một phiên bản ma của package đó.
// the fix
Bạn viết một tệp .devin/rules/ hoặc một tài liệu markdown về kiến trúc. Nó đúng ở thời điểm hôm nay.
// where it breaks
Bất cứ thứ gì bạn viết tay đều sẽ trôi dần. Mã nguồn mới là nguồn sự thật. Một tài liệu giải thích lớp hàng đợi đúng trong một tuần, rồi sai mãi mãi.
// the fix
Bạn thêm .devin/rules/ cho quy ước đặt tên, lint, và các lệnh build. Rất tốt cho hành vi.
// where it breaks
.devin/rules/ là nơi đúng để ghi “luôn chạy pnpm tsc -b trước khi commit.” Nó không phải là một chỉ mục có thể truy vấn của mọi ký hiệu, tệp, và call-site trong monorepo của bạn.
Không phải để thay thế Devin Desktop. Đây là lớp ngữ cảnh repo gắn vào khả năng hỗ trợ MCP của Devin Local.
.devin/rules/ vẫn tiếp tục làm việc của nó. @-mentions vẫn tiếp tục làm việc của chúng. Maguyva lấp đầy khoảng trống mà chúng không lấp được. Devin Local chỉnh sửa tệp bạn trỏ tới.
Maguyva cho agent biết nên trỏ tới tệp nào.
Xuyên package, xuyên ngôn ngữ. Có căn cứ vào đồ thị lệnh gọi thực tế, không phải grep của Devin Local.
// workflow 01
devin> xác thực xảy ra ở đâu trong monorepo này? graph::query("authentication flow") packages/web/src/auth/session.ts:42 middleware packages/api/src/auth/jwt.ts:88 xác thực token packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 kiểm tra quyền rbac → 4 điểm vào trên 4 package, xếp hạng theo mật độ call-site. [exit 0]
Bạn không nhắc đến tệp nào. Bạn không dán đoạn mã nào. Devin Local có sẵn bốn tệp quan trọng, đúng thứ tự xếp hạng, và có thể thực hiện một chỉnh sửa có căn cứ.
// workflow 02
devin> normalizePhoneNumber xử lý E.164 như thế nào? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← cài đặt thực packages/api/test/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
Tên gọi có thể lừa dối. Mock che khuất mã thực. Maguyva xếp hạng cài đặt thực cao hơn test mock, trên mọi package.
// workflow 03
devin> điều gì gọi QueueDispatcher.publish trên toàn monorepo? graph::callers(QueueDispatcher.publish) 3 nơi trong packages/billing/* 1 nơi trong packages/audit/* 1 nơi trong packages/notifications/* 1 nơi trong services/python-worker/* ← xuyên ngôn ngữ qua gRPC stub [exit 0]
Xuyên package, và xuyên ngôn ngữ khi bạn có một repo đa ngôn ngữ, call-site hiện ra ngay trong dòng kết quả. Diff có căn cứ vào các importer thực tế, không phải grep của Devin Local.
Ba bước. Gói Free: 3 repository, Tối đa 50K dòng repo đã index, không cần thẻ tín dụng.
// step 01
Chọn monorepo mà bạn cảm thấy đau đầu nhất về ngữ cảnh.
// step 02
~/.config/devin/mcp_config.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
}
}
}
} // step 03
Đừng bắt đầu với toàn bộ công ty của bạn. Hãy bắt đầu với một repo và một câu hỏi có thể kiểm chứng, như “điều gì gọi formatInvoice xuyên package?”