การติดตั้ง goose และการกำหนดค่า Provider แบบกำหนดเอง
หากต้องการให้ผู้ช่วย AI อ่านไฟล์ เขียนเนื้อหา หรือจัดการงานซ้ำ ๆ โดยไม่จำกัดอยู่แค่บนหน้าเว็บ goose มีทั้งเวอร์ชันเดสก์ท็อปและเทอร์มินัล เมื่อติดตั้งและกำหนดค่าโมเดลแล้ว ก็สามารถเริ่มใช้งานบนคอมพิวเตอร์ของคุณได้
goose คือผู้ช่วย AI อเนกประสงค์ที่ทำงานบนคอมพิวเตอร์ของคุณ นอกจากงานเขียนโค้ดแล้ว ยังใช้ค้นข้อมูล เขียนเนื้อหา ทำงานอัตโนมัติ และจัดระเบียบข้อมูลได้ คุณสามารถใช้งานผ่านเวอร์ชันเดสก์ท็อป เทอร์มินัล หรืออินเทอร์เฟซ โดยเวอร์ชันเดสก์ท็อปและเทอร์มินัลใช้การกำหนดค่าโมเดลชุดเดียวกัน เหมาะสำหรับจัดการงานเขียนโค้ดที่ทำซ้ำ ๆ และยังเชื่อมต่อกับ GitHub ฐานข้อมูล และไฟล์ได้ด้วย
การเตรียมตัวก่อนติดตั้ง
goose มีวิธีติดตั้งสองแบบ ได้แก่ Desktop และ CLI โดย Desktop คือเวอร์ชันเดสก์ท็อปที่มีหน้าต่าง ส่วน CLI คือเวอร์ชันที่ใช้งานด้วยการป้อนคำสั่งในเทอร์มินัล ทั้งสองแบบใช้การกำหนดค่าหลักร่วมกัน รวมถึง Provider และโมเดล Provider สามารถเข้าใจได้ว่าเป็นการตั้งค่าการเชื่อมต่อที่ “บอก goose ว่าจะใช้บริการโมเดลใด”
ต้องการหน้าต่าง
goose Desktop
- ดาวน์โหลด zip สำหรับ macOS
- หรือใช้ brew cask
- ใช้แพ็กเกจติดตั้งสำหรับ Linux
ต้องการเฉพาะเทอร์มินัล
goose CLI
- download_cli.sh
- หรือ Homebrew CLI
- จากนั้นใช้ goose session
Windows
เลือกสภาพแวดล้อมก่อน
- Git Bash หรือ MSYS2
- ใช้ PowerShell ก็ได้
- หากไม่พบคำสั่ง ให้เพิ่มใน PATH
ก่อนเริ่มต้น ให้เตรียม Model ID จากรายการโมเดลปัจจุบันไว้ Model ID คือชื่อที่บริการโมเดลใช้ระบุโมเดลแต่ละตัว และต้องคัดลอกแบบครบถ้วนเมื่อนำไปใช้
การติดตั้งและเปิดใช้งานครั้งแรก
หากต้องการใช้งานแบบมีหน้าต่าง
สำหรับ macOS มีวิธีติดตั้งสองแบบ:
- ดาวน์โหลดจากหน้าติดตั้ง ซึ่งมีตัวเลือก macOS Silicon และ macOS Intel หลังจากดาวน์โหลดแล้ว ให้แตกไฟล์ zip และเรียกใช้โปรแกรมที่อยู่ภายใน
- หรือใช้ Homebrew:
brew install --cask block-goose
วิธีนี้จะดาวน์โหลดแอปเดียวกัน และยังช่วยจัดการการอัปเดตได้ด้วย
หากใช้ Apple Mac M3 แล้วเปิดแอปแต่ไม่มีหน้าต่างปรากฏขึ้น ให้ตรวจสอบว่า ~/.config สามารถอ่านและเขียนได้หรือไม่ เนื่องจาก goose ต้องใช้ไดเรกทอรีนี้เพื่อเขียนล็อก
สำหรับเวอร์ชันเดสก์ท็อปบน Linux ให้ดาวน์โหลดจากหน้าติดตั้ง โดยมีแพ็กเกจ DEB (Ubuntu/Debian), RPM (RHEL/Fedora) และ Flatpak สำหรับ Debian หรือ Ubuntu ให้ดาวน์โหลด DEB เข้าไปยังไดเรกทอรีที่บันทึกไฟล์ แล้วเรียกใช้ sudo dpkg -i (filename).deb จากนั้นเปิด goose ผ่านเมนูแอป โดยแทนที่ (filename) ด้วยชื่อไฟล์จริง
สำหรับเวอร์ชันเดสก์ท็อปบน Windows ให้ดาวน์โหลดจากหน้าติดตั้ง แตกไฟล์ zip แล้วเรียกใช้โปรแกรมที่อยู่ภายใน
หากต้องการใช้เฉพาะเทอร์มินัล
บน macOS และ Linux ให้เรียกใช้:
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash
หากไม่ต้องการกำหนดค่าแบบโต้ตอบระหว่างการติดตั้ง ให้เติม CONFIGURE=false ไว้ด้านหน้า:
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash
บน macOS ยังสามารถเรียกใช้:
brew install block-goose-cli
หากต้องการอัปเดต CLI ที่ติดตั้งไว้แล้ว ให้ใช้:
goose update
สำหรับ Windows ต้องใช้หนึ่งในสามสภาพแวดล้อมต่อไปนี้: Git Bash (มาพร้อมกับ Git for Windows และถูกระบุว่าเป็นตัวเลือกที่แนะนำ), MSYS2 หรือ PowerShell ที่มาพร้อมกับ Windows 10/11 สำหรับ Git Bash และ MSYS2 ให้ใช้คำสั่ง download_cli.sh เดียวกับด้านบน ส่วน PowerShell ให้ดาวน์โหลดสคริปต์ก่อนแล้วจึงเรียกใช้:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/aaif-goose/goose/main/download_cli.ps1" -OutFile "download_cli.ps1"
.\download_cli.ps1
หากมีข้อความแจ้งว่า goose ไม่อยู่ใน PATH ให้เพิ่ม ~/.local/bin หรือ %USERPROFILE%\.local\bin ลงในการกำหนดค่าของ shell ปัจจุบันตามคำแนะนำในหน้าติดตั้ง แล้วเปิดเทอร์มินัลใหม่ PATH คือชุดไดเรกทอรีที่เทอร์มินัลใช้ค้นหาตำแหน่งโปรแกรม หากไม่ได้เพิ่มเข้าไป แม้โปรแกรมจะติดตั้งแล้วก็อาจเรียกใช้โดยพิมพ์ชื่อโปรแกรมโดยตรงไม่ได้
CLI เวอร์ชัน ณ วันที่ 2026-10-09 คือ 1.54.0 ตามค่าเริ่มต้น สคริปต์ติดตั้งจะวางโปรแกรมไว้ที่ ~/.local/bin คุณสามารถเปลี่ยนไดเรกทอรีนี้ได้ด้วยตัวแปรสภาพแวดล้อม GOOSE_BIN_DIR หลังจากเปลี่ยนแล้ว สคริปต์จะไม่เขียนการกำหนดค่า shell ให้โดยอัตโนมัติ และเทอร์มินัลจะแจ้งว่าไดเรกทอรีดังกล่าวไม่อยู่ใน PATH ให้เพิ่มไดเรกทอรีนั้นลงใน PATH หรือเรียกใช้โปรแกรมด้วยพาธแบบเต็ม
เมื่อใช้งานครั้งแรก goose จะขอให้คุณกำหนดค่า Provider คุณสามารถข้ามผู้ให้บริการที่มีมาให้ก่อน แล้วเพิ่ม Provider แบบกำหนดเองตามหัวข้อถัดไป ในเทอร์มินัล ให้เข้าไปยังไดเรกทอรีที่ต้องการทำงานแล้วเรียกใช้:
goose session
รับค่าการเชื่อมต่อจาก OmniProxy
เตรียมที่อยู่ คีย์ และชื่อโมเดลจาก OmniProxy ของคุณ ตัวอย่าง Provider แบบกำหนดเองระบุ base_url ไปยัง /v1/chat/completions ดังนั้นส่วนนี้จะใช้รูปแบบเดียวกัน:
API URL: https://your-omniproxy-origin.example/v1/chat/completions
API Key: <YOUR_OMNIPROXY_API_KEY>
Models: คัดลอกจากรายการโมเดลปัจจุบันของ OmniProxy หากมีหลายรายการให้คั่นด้วยเครื่องหมายจุลภาคภาษาอังกฤษ
ให้คัดลอกชื่อโมเดลทั้งหมดจากรายการปัจจุบันของ OmniProxy และคงเครื่องหมายทับไว้ด้วย ณ วันที่ 2026-10-09 ID สองรายการที่ใช้เปรียบเทียบในเอกสารของผู้ให้บริการคือ grok-4.7 ของ Grok และ gpt-6-luna ในเอกสาร OpenAI โดย gpt-6-luna รองรับ Chat Completions ส่วนการเรียกใช้ฟังก์ชันใน Chat Completions จะรองรับเฉพาะเมื่อ reasoning_effort เป็น none เท่านั้น อย่าคัดลอกชื่อที่ไม่มีอยู่ในรายการไปใช้
กรอกการกำหนดค่าเครื่องมือ
Provider แบบกำหนดเองใช้รูปแบบที่เข้ากันได้กับ OpenAI, Anthropic หรือ Ollama รูปแบบที่เข้ากันได้หมายถึงเครื่องมือจะส่งคำขอตามอินเทอร์เฟซทั่วไปชนิดใดชนิดหนึ่ง เมื่อเชื่อมต่อกับ OmniProxy ให้เลือก OpenAI Compatible
เวอร์ชันเดสก์ท็อป
- คลิกปุ่มมุมซ้ายบนเพื่อเปิดแถบด้านข้าง
- คลิก Settings
- คลิก Models
- คลิก Configure providers
- คลิก Add Custom Provider ที่ด้านล่างของหน้าต่าง
- ตั้งค่า Provider Type เป็น OpenAI Compatible ส่วน Display Name สามารถกรอกเป็น OmniProxy ได้ กรอกที่อยู่จากหัวข้อก่อนหน้าลงใน API URL หากต้องใช้คีย์ ให้เลือกว่าต้องใช้ API Key แล้วกรอกคีย์ของ OmniProxy ใน Available Models ให้กรอกชื่อโมเดล และหากมีหลายรายการให้คั่นด้วยเครื่องหมายจุลภาคภาษาอังกฤษ
- คลิก Create Provider
ขณะนี้เวอร์ชันเดสก์ท็อปยังไม่สามารถกำหนด request header แบบกำหนดเองภายในหน้าต่างนี้ได้ หากต้องใช้ request header ให้แก้ไขไฟล์การกำหนดค่าหลังจากสร้าง Provider แล้ว
เทอร์มินัล
เรียกใช้:
goose configure
เลือก Custom Providers แล้วเลือก Add A Custom Provider ตั้งค่า API Type เป็น OpenAI Compatible จากนั้นกรอกชื่อ, API URL, ระบุว่าต้องใช้คีย์หรือไม่, ชื่อโมเดล และระบุว่ารองรับการตอบกลับแบบสตรีมหรือไม่ตามคำแนะนำ
เมื่อกำหนดค่าด้วยตนเองบน Windows หาก keyring เกิดข้อผิดพลาด คำแนะนำในหน้าติดตั้งคือ เมื่อระบบถามว่าต้องการบันทึกลง keyring หรือไม่ ให้เลือกไม่บันทึก แล้วเปลี่ยนไปใช้ตัวแปรสภาพแวดล้อม จากนั้นเรียกใช้ goose configure อีกครั้ง keyring คือพื้นที่จัดเก็บขนาดเล็กที่ปลอดภัยซึ่งระบบใช้เก็บคีย์
ไฟล์การกำหนดค่า
ไดเรกทอรีที่ระบุไว้คือ:
- macOS และ Linux:
~/.config/goose/custom_providers/ - Windows:
%APPDATA%\Block\goose\config\custom_providers\
คุณสามารถสร้างไฟล์โดยอ้างอิงตัวอย่างต่อไปนี้ เปลี่ยนชื่อ ที่อยู่ และโมเดลเป็นค่าของคุณ และเก็บคีย์ไว้ในตัวแปรสภาพแวดล้อมที่ระบุโดย api_key_env อย่าเขียนคีย์จริงลงในไฟล์:
{
"name": "omniproxy",
"engine": "openai",
"display_name": "OmniProxy",
"api_key_env": "OMNIPROXY_API_KEY",
"base_url": "https://your-omniproxy-origin.example/v1/chat/completions",
"models": [
{ "name": "grok-4.7", "context_limit": 128000 },
{ "name": "gpt-6-luna", "context_limit": 128000 }
],
"supports_streaming": true,
"requires_auth": true
}
สำหรับ context_limit ให้คงตัวเลขไว้ตามตัวอย่าง ขนาดบริบทจริงขึ้นอยู่กับโมเดลและ OmniProxy อย่าถือว่าตัวเลขในตัวอย่างนี้เป็นขีดจำกัดอย่างเป็นทางการของโมเดล ก่อนใช้งาน ให้เรียกใช้:
export OMNIPROXY_API_KEY="<YOUR_OMNIPROXY_API_KEY>"
หลังจากเข้าไปยังไดเรกทอรีทำงานแล้ว ให้เรียกใช้:
goose session --provider omniproxy --model grok-4.7
เปลี่ยน --model เป็น ID แบบเต็มจากรายการ goose session ไม่มีคำสั่งย่อย start และคุณยังสามารถกำหนด --provider กับ --model ผ่านตัวแปรสภาพแวดล้อม GOOSE_PROVIDER และ GOOSE_MODEL ได้ หากเกตเวย์ไม่ตรวจสอบคีย์ OMNIPROXY_API_KEY ก็ยังต้องมีค่า โดยอาจเป็นชุดอักขระตัวแทนที่ใช้เฉพาะภายในเครื่องก็ได้ เมื่อตรวจสอบเมื่อวันที่ 2026-10-09 การกำหนดค่าแบบนี้สามารถอ่านไฟล์ได้
หน้าต่าง
Settings
- Settings ในแถบด้านข้าง
- หน้า Models
- Add Custom Provider
เทอร์มินัล
goose configure
- เลือก Custom Providers
- จากนั้นเลือกเพิ่ม
- เลือกประเภท OpenAI Compatible
ไฟล์
custom_providers
- บน macOS และ Linux อยู่ที่ ~/.config
- บน Windows อยู่ที่ APPDATA
- ตั้งค่า base_url ตามตัวอย่างทางการ
ตรวจสอบด้วยงานจริง
เข้าไปยังไดเรกทอรีที่มีไฟล์ทั่วไป แล้วเรียกใช้ goose session ตามหัวข้อก่อนหน้า ให้ goose อ่านบรรทัดแรกของไฟล์ที่คุณระบุ โดยต้องตอบกลับเป็นเนื้อหาของไฟล์ ไม่ใช่เพียงแสดงว่าบันทึกการกำหนดค่าแล้ว
หากต้องการอ่านไฟล์หรือเรียกใช้คำสั่ง เซสชันต้องมีส่วนขยาย Developer ส่วนขยาย Developer สามารถเข้าใจได้ว่าเป็นโมดูลเครื่องมือที่ช่วยให้ goose จัดการไฟล์และคำสั่งภายในเครื่อง โดยทั่วไปการกำหนดค่าเริ่มต้นจะเปิดใช้งานส่วนขยายนี้ไว้ หาก goose ตอบว่าไม่มีเครื่องมือสำหรับไฟล์ ให้เพิ่มตัวเลือกต่อไปนี้ในคำสั่ง:
--with-builtin developer
อย่าเพิ่ม --no-profile พร้อมกัน เนื่องจากพารามิเตอร์นี้จะปิดส่วนขยายเริ่มต้น
เมื่อตรวจสอบเมื่อวันที่ 2026-10-09 ด้วย goose 1.54.0 ระบบสามารถอ่านบรรทัดแรกของไฟล์ที่ระบุได้ การตอบกลับครั้งแรกอาจใช้เวลาประมาณหนึ่งนาที
จากนั้นตรวจสอบแหล่งที่มาและชื่อโมเดลในบันทึกการเรียกใช้ของ OmniProxy
เริ่มต้น
เข้าสู่เซสชันได้
- goose session
- Provider คือรายการที่เพิ่งเพิ่ม
- ชื่อโมเดลอยู่ในรายการ
งาน
มันทำงานจริงแล้ว
- เช่น แสดงรายการในไดเรกทอรีปัจจุบัน
- ดูคำตอบของมัน
- อย่าดูเพียงว่าบันทึกสำเร็จ
บันทึก
มองเห็นได้ในเกตเวย์
- ใช้ที่อยู่ตามตัวอย่างในเอกสาร
- อย่าเขียนคีย์ลงในรีโพซิทอรี
- ID โมเดลตรงกับรายการ
ข้อผิดพลาดที่พบบ่อย
- ไม่พบคำสั่ง
goose: เพิ่มไดเรกทอรีติดตั้งลงใน PATH ตามคำแนะนำในหน้าติดตั้ง แล้วเปิดเทอร์มินัลใหม่ - เวอร์ชันเดสก์ท็อปบน M3 ไม่มีหน้าต่าง: ตรวจสอบสิทธิ์อ่านและเขียนของ
~/.config - keyring ล้มเหลว: อย่าบันทึกลง keyring ให้เปลี่ยนไปใช้ตัวแปรสภาพแวดล้อม
- โมเดลไม่อยู่ในรายการ: เวอร์ชันเดสก์ท็อปสามารถเลือก Use custom model เพื่อกรอกชื่อโมเดลด้วยตนเองได้ แต่
goose configureไม่สามารถกรอกชื่อโมเดลแบบกำหนดเองได้ สำหรับเทอร์มินัล ให้เปลี่ยนไปใช้เวอร์ชันเดสก์ท็อป หรือแก้ไขGOOSE_MODELในการกำหนดค่าโดยตรง - เชื่อมต่อที่อยู่ไม่ได้: ตรวจสอบว่า API URL ระบุถึง
/v1/chat/completionsเช่นเดียวกับตัวอย่าง และ OmniProxy กำลังทำงานอยู่ - goose แจ้งว่าอ่านไฟล์ไม่ได้: เพิ่มส่วนขยาย Developer และอย่าใช้
--no-profile - ส่งคืน
unsupported Responses role: system: โดยทั่วไปที่อยู่ไม่ได้ผิด ให้เปลี่ยนไปใช้ ID แบบเต็มของโมเดลอื่นในรายการ
เอกสารอ้างอิงอย่างเป็นทางการ
ดูการติดตั้งได้ที่ Install goose และดู Provider แบบกำหนดเองได้ที่ goose providers ส่วน Model ID ที่ใช้เป็นตัวอย่างดูได้จาก หน้าโมเดล xAI และ GPT-6 Luna
แทนที่ตัววางตำแหน่งทั้งหมดด้วยค่าจากการกำหนดค่า OmniProxy ของคุณ ห้ามเผยแพร่คีย์จริง
ผลลัพธ์ที่บันทึกหรือ HTTP 200 เพียงอย่างเดียวไม่พิสูจน์ความเข้ากันได้เต็มรูปแบบของเอเจนต์ ตรวจสอบแหล่งที่มาและโมเดลในบันทึกการเรียกใช้ของ OmniProxy