// ไฟล์คอนฟิก
config.yaml
ส่วนขยายอยู่ใต้ extensions ใน ~/.config/goose/config.yaml คำสั่ง goose configure → Add Extension จะเขียนรายการแบบเดียวกันให้คุณ
สำหรับผู้ใช้ Goose
Goose ทำงานผ่านส่วนขยาย และส่วนขยายทุกตัวคือเซิร์ฟเวอร์ MCP Maguyva คือส่วนขยายที่ทำดัชนีโค้ดเบสของคุณ Goose จึงถามว่าสิ่งต่าง ๆ อยู่ที่ไหน แทนที่จะไล่ลิสต์ไดเรกทอรี
แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตรเครดิต
ใช้ .goosehints สำหรับวิธีทำงาน ใช้ Maguyva สำหรับสิ่งที่โค้ดบอกอยู่ตอนนี้ ข้อเท็จจริงสี่ข้อเฉพาะของ Goose
// ไฟล์คอนฟิก
ส่วนขยายอยู่ใต้ extensions ใน ~/.config/goose/config.yaml คำสั่ง goose configure → Add Extension จะเขียนรายการแบบเดียวกันให้คุณ
// การรับส่งข้อมูล
Maguyva เป็นส่วนขยาย streamable_http Goose จึงเชื่อมต่อกับ endpoint เองได้: ไม่มีโปรเซสบนเครื่อง ไม่ต้องใช้ Node.js URL ใส่ใน uri ไม่ใช่ url
// คีย์
Goose ส่งแมป headers ไปกับทุกคำขอ คีย์จึงใส่ในเฮดเดอร์ Authorization และ Goose ยังเติมค่าจากตัวแปรสภาพแวดล้อมที่ระบุไว้ใน env_keys ได้ด้วย
// ตัวกรองเครื่องมือ
ส่วนขยายเปิดให้ใช้เครื่องมือเพียงบางส่วนได้: ลิสต์ตัวที่ต้องการไว้ใต้ available_tools หรือเว้นว่างไว้เพื่อใช้ทั้งหมด
# .goosehints
- ใช้ pnpm ไม่ใช่ npm
- รัน integration test ก่อนถือว่างานเสร็จโดยค่าเริ่มต้น Goose โหลด AGENTS.md และ .goosehints: คำใบ้ส่วนกลางจาก ~/.config/goose/.goosehints คำใบ้ของโปรเจกต์จากรีโพ และไฟล์ที่ซ้อนอยู่เมื่อทำงานในโฟลเดอร์ย่อย คำใบ้ต้องใช้ส่วนขยาย Developer เหมาะสำหรับ:
คำใบ้อธิบายโปรเจกต์ แต่ไม่ได้ตอบว่า “อะไรพึ่งพาสิ่งนี้อยู่?”
ช่องว่างสามจุดที่ Goose เติมด้วยคำสั่งเชลล์ ทีละไฟล์
ในรีโพที่ไม่คุ้นเคย Goose หาทิศทางด้วยการลิสต์ไดเรกทอรีและอ่านไฟล์ ทุกครั้งใช้บริบทไปก่อนที่งานจะเริ่ม
การค้นหาข้อความแยกการเรียกจริงออกจากคอมเมนต์ mock หรือเมธอดชื่อเดียวกันไม่ได้
ไฟล์คำใบ้ที่เขียนเมื่อไตรมาสก่อนอธิบายโครงสร้างของไตรมาสก่อน แต่ Goose ก็ยังทำตาม
รายการ extensions เดียวให้สิ่งเหล่านี้แก่ Goose:
คำใบ้บอก 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 ต่อกันหลายรอบ
สามขั้นตอน แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตรเครดิต
// step 01
เลือกรีโพที่คุณรู้จักอยู่แล้ว เพื่อให้คุณประเมินคำตอบได้
// step 02
~/.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
// step 03
เปลี่ยน mgv_xxxx เป็นคีย์ API ของคุณ รัน goose session แล้วถามหนึ่งคำถามที่คุณรู้คำตอบอยู่แล้ว YAML ไวต่อการเยื้อง: ใช้ช่องว่าง ไม่ใช่แท็บ