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

สำหรับผู้ใช้ Goose

Goose ทำงานด้วยส่วนขยาย เพิ่มสักตัวที่รู้จักรีโพของคุณ

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

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

ใช้ .goosehints สำหรับวิธีทำงาน ใช้ Maguyva สำหรับสิ่งที่โค้ดบอกอยู่ตอนนี้

สิ่งที่ต้องรู้เกี่ยวกับ Goose

ข้อเท็จจริงสี่ข้อเฉพาะของ Goose

// ไฟล์คอนฟิก

config.yaml

ส่วนขยายอยู่ใต้ extensions ใน ~/.config/goose/config.yaml คำสั่ง goose configure → Add Extension จะเขียนรายการแบบเดียวกันให้คุณ

// การรับส่งข้อมูล

ส่วนขยายระยะไกล

Maguyva เป็นส่วนขยาย streamable_http Goose จึงเชื่อมต่อกับ endpoint เองได้: ไม่มีโปรเซสบนเครื่อง ไม่ต้องใช้ Node.js URL ใส่ใน uri ไม่ใช่ url

// คีย์

headers

Goose ส่งแมป headers ไปกับทุกคำขอ คีย์จึงใส่ในเฮดเดอร์ Authorization และ Goose ยังเติมค่าจากตัวแปรสภาพแวดล้อมที่ระบุไว้ใน env_keys ได้ด้วย

// ตัวกรองเครื่องมือ

available_tools

ส่วนขยายเปิดให้ใช้เครื่องมือเพียงบางส่วนได้: ลิสต์ตัวที่ต้องการไว้ใต้ available_tools หรือเว้นว่างไว้เพื่อใช้ทั้งหมด

คำใบ้ของ Goose คือข้อตกลงในการทำงาน ใช้มันให้เต็มที่

# .goosehints
- ใช้ pnpm ไม่ใช่ npm
- รัน integration test ก่อนถือว่างานเสร็จ

โดยค่าเริ่มต้น Goose โหลด AGENTS.md และ .goosehints: คำใบ้ส่วนกลางจาก ~/.config/goose/.goosehints คำใบ้ของโปรเจกต์จากรีโพ และไฟล์ที่ซ้อนอยู่เมื่อทำงานในโฟลเดอร์ย่อย คำใบ้ต้องใช้ส่วนขยาย Developer เหมาะสำหรับ:

  • ตัวเลือกเครื่องมือและคำสั่ง
  • ข้อตกลงที่ Goose ควรปฏิบัติตาม
  • ตำแหน่งของเอกสาร

คำใบ้อธิบายโปรเจกต์ แต่ไม่ได้ตอบว่า “อะไรพึ่งพาสิ่งนี้อยู่?”

เมื่อคำใบ้และเชลล์ไม่พอ

ช่องว่างสามจุดที่ Goose เติมด้วยคำสั่งเชลล์ ทีละไฟล์

// รายการไฟล์ไม่ใช่แผนที่

ในรีโพที่ไม่คุ้นเคย Goose หาทิศทางด้วยการลิสต์ไดเรกทอรีและอ่านไฟล์ ทุกครั้งใช้บริบทไปก่อนที่งานจะเริ่ม

// grep เจอสตริง ไม่ใช่ผู้เรียก

การค้นหาข้อความแยกการเรียกจริงออกจากคอมเมนต์ mock หรือเมธอดชื่อเดียวกันไม่ได้

// คำใบ้ค่อย ๆ ล้าสมัย

ไฟล์คำใบ้ที่เขียนเมื่อไตรมาสก่อนอธิบายโครงสร้างของไตรมาสก่อน แต่ Goose ก็ยังทำตาม

Maguyva ในฐานะส่วนขยายของ Goose

รายการ extensions เดียวให้สิ่งเหล่านี้แก่ Goose:

  • เครื่องมือ 11 รายการบนรีโพที่ทำดัชนีแล้วของคุณ การค้นหาเชิงความหมาย เชิงโครงสร้าง (AST) เชิงกราฟ และข้อความ รวมถึงการค้นหาสัญลักษณ์ ส่วนที่พึ่งพา และการดึงไฟล์
  • คำตอบพร้อมพาธไฟล์และหมายเลขบรรทัด ครอบคลุม 285+ ภาษา
  • เครื่องมือที่อ่านอย่างเดียว เครื่องมือของ Maguyva สืบค้นดัชนี ไม่มีตัวไหนแก้ไขไฟล์ของคุณ

คำใบ้บอก Goose ว่าต้องทำงานอย่างไร

Maguyva มอบแผนที่ของโค้ดให้ Goose

สองเวิร์กโฟลว์

ดูแผนที่ก่อน แล้วค่อยปล่อยให้ Goose ทำงาน

// workflow 01

ไล่บั๊กไปจนถึงต้นตอ

goose> ทำไมการ export บางครั้งจบด้วยศูนย์แถว?

semantic_search("export job empty result")
  src/export/runner.ts:118   flushBatch()
  src/export/filters.ts:40   applyTenantFilter()

→ Goose อ่านสองไฟล์ ไม่ใช่ทั้งแพ็กเกจ export
[exit 0]

ผลลัพธ์ที่จัดอันดับช่วยแคบขอบเขตการค้นหาก่อน Goose จะเปิดเชลล์

// workflow 02

ตรวจส่วนที่พึ่งพาก่อนรีแฟกเตอร์

goose> แยกคลาส Notifier เป็นอีเมลกับ SMS

dependency_search("Notifier", dependents)
  การอ้างอิง 11 จุดใน 5 แพ็กเกจ

→ แผนครอบคลุมครบทั้งสิบเอ็ดจุดก่อนการแก้ไขครั้งแรก
[exit 0]

Goose ได้รายการส่วนที่พึ่งพาครบถ้วนในการเรียกครั้งเดียว แทนการ grep ต่อกันหลายรอบ

ตั้งค่าใน Goose

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

  1. // step 01

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

    เลือกรีโพที่คุณรู้จักอยู่แล้ว เพื่อให้คุณประเมินคำตอบได้

  2. // step 02

    เพิ่ม Maguyva ใน extensions ใน config.yaml

    ~/.config/goose/config.yaml

    extensions:
      maguyva:
        name: maguyva
        type: streamable_http
        uri: https://maguyva.tools/mcp
        enabled: true
        headers:
          Authorization: Bearer mgv_xxxx
        timeout: 300
    
  3. // step 03

    แทนที่ตัวยึดตำแหน่งแล้วเริ่มเซสชัน

    เปลี่ยน mgv_xxxx เป็นคีย์ API ของคุณ รัน goose session แล้วถามหนึ่งคำถามที่คุณรู้คำตอบอยู่แล้ว YAML ไวต่อการเยื้อง: ใช้ช่องว่าง ไม่ใช่แท็บ