ใช้แชทแบบตัวแทนเป็นโปรแกรมเมอร์คู่

เอกสารนี้อธิบายวิธีกำหนดค่าและใช้โหมดเอเจนต์ Gemini Code Assist ในฐานะโปรแกรมเมอร์คู่ในสภาพแวดล้อมการพัฒนาแบบผสานรวม (IDE)

เมื่อใช้โหมดตัวแทน คุณจะทำสิ่งต่อไปนี้และอื่นๆ ได้

  • ถามคำถามเกี่ยวกับโค้ด
  • ใช้บริบทและเครื่องมือในตัวเพื่อปรับปรุงเนื้อหาที่สร้างขึ้น
  • กำหนดค่าเซิร์ฟเวอร์ MCP เพื่อขยายความสามารถของเอเจนต์
  • รับวิธีแก้ปัญหาสำหรับงานที่ซับซ้อนซึ่งมีหลายขั้นตอน
  • สร้างโค้ดจากเอกสารการออกแบบ ปัญหา และTODOความคิดเห็น
  • ควบคุมลักษณะการทำงานของเอเจนต์โดยการแสดงความคิดเห็น แก้ไข และอนุมัติแผน และการใช้เครื่องมือในระหว่างการดำเนินการ

ข้อจำกัด

ฟีเจอร์บางอย่างของแชท Gemini Code Assist มาตรฐาน อาจไม่พร้อมใช้งานในโหมดเอเจนต์หรืออาจทำงานแตกต่างจากใน แชทมาตรฐาน

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

ก่อนเริ่มต้น

VS Code

  1. ตั้งค่ารุ่นของ Gemini Code Assist ที่คุณต้องการใช้ใน IDE โดยทำดังนี้

IntelliJ

ตั้งค่ารุ่นของ Gemini Code Assist ที่คุณต้องการใช้ใน IDE โดยทำดังนี้

ใช้โหมด Agent

ในโหมดตัวแทน คุณขอให้ Gemini ทำเป้าหมายระดับสูงและ งานที่ซับซ้อนได้

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

วิธีเปลี่ยนไปใช้โหมดตัวแทน

VS Code

  1. หากต้องการเปิดแชท Gemini Code Assist ให้คลิก spark Gemini Code Assist ในแถบกิจกรรมของ IDE
  2. คลิกปุ่มเปิด/ปิดตัวแทนเพื่อเข้าสู่โหมดตัวแทน ปุ่มสลับจะไฮไลต์ เมื่อสลับไปใช้โหมดตัวแทน และเป็นสีเทาเมื่ออยู่ในแชทปกติ
  3. ป้อนพรอมต์ในแชทของ Gemini Code Assist

Gemini จะให้คำตอบสำหรับพรอมต์ของคุณ หรือขอสิทธิ์ ในการใช้เครื่องมือ

หากต้องการหยุดเอเจนต์ ให้คลิกหยุด

หากต้องการใช้แชท Gemini Code Assist มาตรฐาน ให้คลิกแชทใหม่เพื่อสร้างแชทใหม่

โหมดตัวแทนของ Gemini Code Assist ขับเคลื่อนโดย Gemini CLI

IntelliJ

  1. คลิก spark Gemini ในแถบหน้าต่างเครื่องมือ ลงชื่อเข้าใช้หากได้รับแจ้ง
  2. เลือกแท็บตัวแทน
  3. อธิบายงานที่คุณต้องการให้เอเจนต์ดำเนินการ
  4. เมื่อตัวแทนทำตามขั้นตอนเพื่อทำงานให้เสร็จ คุณจะมี ตัวเลือกในการตรวจสอบและอนุมัติการเปลี่ยนแปลง

  5. ไม่บังคับ: หากต้องการอนุมัติการเปลี่ยนแปลงโดยอัตโนมัติ ให้เลือก การตั้งค่า ตัวเลือกเอเจนต์ แล้ว คลิกช่องทําเครื่องหมายข้างอนุมัติการเปลี่ยนแปลงโดยอัตโนมัติ

กำหนดค่าเครื่องมือสำหรับโหมดตัวแทน

เครื่องมือเป็นหมวดหมู่บริการที่กว้างซึ่งเอเจนต์สามารถใช้เพื่อบริบทและ การดำเนินการในการตอบกลับพรอมต์ของคุณ ตัวอย่างเครื่องมือบางอย่าง ได้แก่ เครื่องมือในตัว เช่น grep และการอ่านหรือเขียนไฟล์ เซิร์ฟเวอร์ Model Context Protocol (MCP) ในเครื่องหรือระยะไกล และฟังก์ชันที่เรียกใช้งานได้ หรือการติดตั้งใช้งานบริการที่กำหนดเอง

ควบคุมการใช้เครื่องมือในตัว

โหมดตัวแทนมีสิทธิ์เข้าถึงเครื่องมือในตัว เช่น การค้นหาไฟล์ การอ่านไฟล์ การเขียนไฟล์ คำสั่งเทอร์มินัล และอื่นๆ

VS Code

คุณสามารถใช้การตั้งค่า coreTools และ excludeTools เพื่อควบคุมเครื่องมือที่ Gemini มีสิทธิ์เข้าถึงในโหมดเอเจนต์

coreTools
ช่วยให้คุณระบุรายการเครื่องมือที่ต้องการให้โมเดลใช้ได้ นอกจากนี้ คุณยังระบุข้อจำกัดเฉพาะคำสั่งสำหรับเครื่องมือที่รองรับได้ด้วย เช่น การเพิ่มข้อความต่อไปนี้ลงใน JSON ของการตั้งค่า Gemini จะอนุญาตให้เรียกใช้คำสั่ง ls -l ในเชลล์เท่านั้น"coreTools": ["ShellTool(ls -l)"]
excludeTools
ช่วยให้คุณระบุรายการเครื่องมือที่ไม่ต้องการให้โมเดลใช้ได้ นอกจากนี้ คุณยังระบุข้อจำกัดเฉพาะคำสั่งสำหรับเครื่องมือที่รองรับได้ด้วย เช่น การเพิ่มข้อความต่อไปนี้ลงใน JSON ของการตั้งค่า Gemini จะบล็อกการใช้คำสั่ง rm -rf "excludeTools": ["ShellTool(rm -rf)"]

ระบบจะยกเว้นเครื่องมือที่แสดงทั้งใน excludeTools และ coreTools

หากต้องการกำหนดค่าเครื่องมือในตัวที่มีในโหมดตัวแทน ให้ทำดังนี้

  1. เปิด JSON ของการตั้งค่า Gemini ซึ่งอยู่ใน ~/.gemini/settings.json โดยที่ ~ คือไดเรกทอรีหน้าแรก
  2. หากต้องการจำกัดการใช้เครื่องมือของเอเจนต์ไว้ในรายการเครื่องมือที่อนุมัติ ให้เพิ่มบรรทัดต่อไปนี้ลงใน JSON ของการตั้งค่า Gemini

    "coreTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    แทนที่ TOOL_NAME_1 และ TOOL_NAME_2 ด้วยชื่อของ เครื่องมือในตัวที่คุณต้องการให้ ตัวแทนเข้าถึง

    คุณระบุเครื่องมือในตัวได้มากเท่าที่ต้องการ โดยค่าเริ่มต้น ตัวแทนจะใช้เครื่องมือในตัวทั้งหมดได้

  3. หากต้องการจำกัดการใช้เครื่องมือของเอเจนต์ให้ใช้เฉพาะคำสั่งเครื่องมือที่เฉพาะเจาะจง ให้เพิ่มบรรทัดต่อไปนี้ลงใน JSON ของการตั้งค่า Gemini

    "coreTools": ["TOOL_NAME(COMMAND)"]
    

    แทนที่ค่าต่อไปนี้

    • TOOL_NAME: ชื่อเครื่องมือในตัว
    • COMMAND: ชื่อของคำสั่งเครื่องมือในตัว ที่คุณต้องการให้ตัวแทนใช้ได้
  4. หากต้องการยกเว้นไม่ให้ Agent ใช้เครื่องมือ ให้เพิ่มบรรทัดต่อไปนี้ลงใน JSON ของการตั้งค่า Gemini

    "excludeTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    แทนที่ TOOL_NAME_1 และ TOOL_NAME_2 ด้วยชื่อ เครื่องมือในตัวที่คุณต้องการยกเว้นไม่ให้ตัวแทนใช้

  5. หากต้องการยกเว้นคำสั่งเครื่องมือจากการใช้งานของ Agent ให้เพิ่มบรรทัดต่อไปนี้ลงใน JSON ของการตั้งค่า Gemini

    "excludeTools": ["TOOL_NAME(COMMAND)"]
    

    แทนที่ค่าต่อไปนี้

    • TOOL_NAME: ชื่อเครื่องมือในตัว
    • COMMAND: ชื่อของคำสั่งเครื่องมือในตัว ที่คุณต้องการยกเว้นไม่ให้ตัวแทนใช้

ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า coreTools และ excludeTools ได้ที่เอกสารประกอบการกำหนดค่า Gemini CLI

IntelliJ

Gemini Code Assist สำหรับ IntelliJ หรือ IDE อื่นๆ ของ JetBrains ไม่รองรับฟีเจอร์นี้

กำหนดค่าเซิร์ฟเวอร์ MCP

VS Code

หากต้องการควบคุมเซิร์ฟเวอร์ที่พร้อมใช้งานในโหมดตัวแทน ให้เพิ่มเซิร์ฟเวอร์เหล่านั้นลงใน JSON ของการตั้งค่า Gemini ตามเอกสารประกอบของเซิร์ฟเวอร์

  1. ติดตั้งทรัพยากร Dependency ที่เซิร์ฟเวอร์ MCP ต้องการ
  2. เปิด JSON ของการตั้งค่า Gemini ซึ่งอยู่ใน ~/.gemini/settings.json โดยที่ ~ คือไดเรกทอรีหน้าแรก
  3. เพิ่มเซิร์ฟเวอร์ MCP ในเครื่องหรือระยะไกลลงใน JSON ของการตั้งค่า Gemini ตามวิธีการของเซิร์ฟเวอร์

    ตัวอย่างต่อไปนี้จะเพิ่มเซิร์ฟเวอร์ MCP ของ Cloudflare ระยะไกล 2 เครื่อง และติดตั้งเซิร์ฟเวอร์ GitHub และ GitLab ในเครื่อง

    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-gitlab"]
        },
        "cloudflare-observability": {
          "command": "npx",
          "args": ["mcp-remote", "https://observability.mcp.cloudflare.com/sse"]
        },
        "cloudflare-bindings": {
          "command": "npx",
          "args": ["mcp-remote", "https://bindings.mcp.cloudflare.com/sse"]
        }
      }
    }
    

  4. เปิดพาเล็ตคำสั่ง แล้วเลือกนักพัฒนาซอฟต์แวร์: โหลดหน้าต่างซ้ำ

เซิร์ฟเวอร์ MCP ที่กำหนดค่าไว้จะพร้อมให้ตัวแทนใช้ในโหมดตัวแทน

IntelliJ

หากต้องการควบคุมว่าเซิร์ฟเวอร์ใดบ้างที่พร้อมใช้งานในโหมดตัวแทน ให้เพิ่มเซิร์ฟเวอร์เหล่านั้นลงในmcp.json ไฟล์แล้ววางไว้ในไดเรกทอรีการกำหนดค่า สำหรับ IDE

  1. ติดตั้งทรัพยากร Dependency ที่เซิร์ฟเวอร์ MCP ต้องการ
  2. สร้างไฟล์ mcp.json ใน ไดเรกทอรีการกำหนดค่าของ IDE
  3. เพิ่มเซิร์ฟเวอร์ MCP ในเครื่องหรือระยะไกลลงใน JSON ของการตั้งค่า Gemini ตามวิธีการของเซิร์ฟเวอร์

    ตัวอย่างต่อไปนี้จะเพิ่มเซิร์ฟเวอร์ MCP ของ Cloudflare ที่อยู่ระยะไกล และติดตั้งเซิร์ฟเวอร์ GitHub และ GitLab ในเครื่อง

    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-gitlab"]
        },
        "cloudflare-observability": {
          "command": "npx",
          "args": ["mcp-remote", "https://observability.mcp.cloudflare.com/sse"]
        },
        "cloudflare-bindings": {
          "command": "npx",
          "args": ["mcp-remote", "https://bindings.mcp.cloudflare.com/sse"]
        }
      }
    }
    

เซิร์ฟเวอร์ MCP ที่กำหนดค่าไว้จะพร้อมให้ตัวแทนใช้ในโหมดตัวแทน

การตรวจสอบสิทธิ์เซิร์ฟเวอร์ MCP

เซิร์ฟเวอร์ MCP บางเครื่องต้องมีการตรวจสอบสิทธิ์ ทำตามเอกสารประกอบของเซิร์ฟเวอร์เพื่อ สร้างโทเค็นผู้ใช้ที่จำเป็น แล้วระบุโทเค็นเหล่านั้นอย่างเหมาะสม เซิร์ฟเวอร์ภายในอาจยอมรับตัวแปรสภาพแวดล้อม ส่วนเซิร์ฟเวอร์ระยะไกลอาจยอมรับ ข้อมูลเข้าสู่ระบบในส่วนหัว

VS Code

สำหรับเซิร์ฟเวอร์ MCP ที่ต้องมีการตรวจสอบสิทธิ์ คุณสามารถเพิ่มเซิร์ฟเวอร์เหล่านั้นลงใน JSON ของการตั้งค่า Gemini

ตัวอย่างต่อไปนี้แสดงวิธีกําหนดโทเค็นเพื่อการเข้าถึงแบบส่วนตัวสําหรับเซิร์ฟเวอร์ MCP ในเครื่องและระยะไกลของ GitHub

{
  "mcpServers": {
    "github-remote": {
      "httpUrl": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ACCESS_TOKEN"
      }
    },
    "github-local": {
      "command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
      "args": ["stdio"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
      }
    }
  }
}

โดยที่ ACCESS_TOKEN คือโทเค็นเพื่อการเข้าถึงของผู้ใช้

IntelliJ

สำหรับเซิร์ฟเวอร์ MCP ที่ต้องมีการตรวจสอบสิทธิ์ คุณสามารถเพิ่มเซิร์ฟเวอร์เหล่านั้นลงในไฟล์ mcp.jsonได้

ตัวอย่างต่อไปนี้จะเพิ่มโทเค็นเพื่อการเข้าถึงส่วนบุคคลสำหรับเซิร์ฟเวอร์ GitHub ในเครื่อง

{
  "mcpServers": {
    "github-local": {
      "command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
      "args": ["stdio"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
      }
    }
  }
}

โดยที่ ACCESS_TOKEN คือโทเค็นเพื่อการเข้าถึงของผู้ใช้

สร้างไฟล์บริบท

บริบทช่วยให้ตัวแทนสร้างคำตอบที่ดีขึ้นสำหรับพรอมต์ที่ระบุ บริบท สามารถนำมาจากไฟล์ใน IDE, ไฟล์ในโฟลเดอร์ระบบในเครื่อง, คำตอบของเครื่องมือ และรายละเอียดพรอมต์ ดูข้อมูลเพิ่มเติมได้ที่ บริบทของโหมดตัวแทน

VS Code

  1. สร้างไฟล์ชื่อ GEMINI.md ในตำแหน่งที่ตรงกับขอบเขตที่คุณต้องการให้ใช้บริบท ตารางต่อไปนี้แสดงรายละเอียดตำแหน่งของ ไฟล์บริบทสำหรับขอบเขตต่างๆ

    ขอบเขต ตำแหน่ง
    โปรเจ็กต์ทั้งหมดของคุณ ~/.gemini/GEMINI.md
    โปรเจ็กต์ที่เฉพาะเจาะจง ไดเรกทอรีการทำงานหรือไดเรกทอรีระดับบนสุดจนถึงรูทของโปรเจ็กต์ (ระบุด้วยโฟลเดอร์ .git) หรือไดเรกทอรีหน้าแรก
    คอมโพเนนต์ โมดูล หรือส่วนย่อยของโปรเจ็กต์ ไดเรกทอรีย่อยของไดเรกทอรีที่ใช้งานอยู่

    ระบบความจำของเอเจนต์สร้างขึ้นโดยการโหลดไฟล์บริบทจาก หลายตำแหน่ง บริบทจากไฟล์ที่เฉพาะเจาะจงมากขึ้น เช่น ไฟล์สำหรับ คอมโพเนนต์หรือโมดูลที่เฉพาะเจาะจง จะลบล้างหรือเสริมเนื้อหาจาก ไฟล์บริบททั่วไปมากขึ้น เช่น ไฟล์บริบทส่วนกลางที่ ~/.gemini/GEMINI.md

  2. เขียนกฎ ข้อมูลคู่มือสไตล์ หรือบริบทที่ต้องการให้เอเจนต์ใช้ในรูปแบบ Markdown แล้วบันทึกไฟล์ ดูข้อมูลเพิ่มเติมได้ที่ไฟล์บริบทตัวอย่างใน GitHub

Agent จะรวมข้อมูลในไฟล์บริบทพร้อมกับพรอมต์ที่คุณส่งไปยัง Agent

IntelliJ

  1. สร้างไฟล์ชื่อ GEMINI.md หรือ AGENT.md ที่รูทของโปรเจ็กต์

  2. เขียนกฎ ข้อมูลคู่มือสไตล์ หรือบริบทที่ต้องการให้เอเจนต์ใช้ในรูปแบบ Markdown แล้วบันทึกไฟล์

Agent จะรวมข้อมูลในไฟล์บริบทพร้อมกับพรอมต์ที่คุณส่งไปยัง Agent นอกจากนี้ คุณยังเพิ่มบริบทได้ด้วยการรวมไฟล์ด้วยตนเองโดยใช้ไวยากรณ์ @FILENAME โดยที่ FILENAME คือชื่อของไฟล์ที่มีข้อมูลบริบทที่ต้องการรวม

ใช้คำสั่ง

คำสั่งเครื่องหมายทับ / ช่วยให้คุณเรียกใช้คำสั่งที่คล้ายกับคำสั่งใน หน้าต่างเทอร์มินัลได้อย่างรวดเร็ว

VS Code

คุณใช้คำสั่ง Gemini CLI ต่อไปนี้ในโหมดตัวแทนได้

  • /tools: แสดงรายการเครื่องมือที่พร้อมใช้งานในเซสชันโหมดตัวแทน
  • /mcp: แสดงรายการเซิร์ฟเวอร์ Model Context Protocol (MCP) ที่กำหนดค่าไว้ สถานะการเชื่อมต่อ รายละเอียดเซิร์ฟเวอร์ และเครื่องมือที่พร้อมใช้งาน

ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง Gemini CLI ได้ที่คำสั่ง Gemini CLI โปรดทราบว่าคำสั่ง Gemini CLI บางรายการอาจใช้ไม่ได้ในโหมดตัวแทน

IntelliJ

Gemini Code Assist สำหรับ IntelliJ หรือ IDE อื่นๆ ของ JetBrains ไม่รองรับฟีเจอร์นี้

อนุญาตการดำเนินการของเอเจนต์เสมอ

คุณอนุญาตการดำเนินการทั้งหมดของเอเจนต์ได้โดยอัตโนมัติ

วิธีอนุญาตการดำเนินการของเอเจนต์ทั้งหมดโดยอัตโนมัติ

VS Code

ใช้โหมด yolo เพื่ออนุญาตการดำเนินการของตัวแทนทั้งหมดโดยอัตโนมัติ คุณจะใช้โหมด Yolo ได้ในพื้นที่ทำงานที่เชื่อถือได้เท่านั้น

วิธีกำหนดค่าโหมด YOLO

  1. เปิดไฟล์ JSON ของการตั้งค่าผู้ใช้ VS Code โดยทำดังนี้

    1. เปิดพาเล็ตคำสั่ง (ctrl/command + Shift + P)
    2. เลือกค่ากำหนด: เปิดการตั้งค่าผู้ใช้ (JSON)
  2. เพิ่มข้อมูลต่อไปนี้ลงในไฟล์ JSON ของการตั้งค่าผู้ใช้ VS Code

    //other settings...
    
    "geminicodeassist.agentYoloMode": true,
    //other settings...
    
  3. เปิดพาเล็ตคำสั่ง แล้วเลือกนักพัฒนาซอฟต์แวร์: โหลดหน้าต่างซ้ำ

โหมดตัวแทนใช้โหมด yolo และจะไม่ขอสิทธิ์ก่อนดำเนินการ เมื่อคุณส่งพรอมต์ เมื่อใช้พื้นที่ทำงานที่จำกัด เอเจนต์จะแจ้งก่อน ดำเนินการไม่ว่าการตั้งค่านี้จะเป็นอย่างไร

IntelliJ

หากต้องการอนุมัติการเปลี่ยนแปลงโดยอัตโนมัติ ให้ไปที่แท็บเอเจนต์ Gemini Chat เลือกการตั้งค่า ตัวเลือกเอเจนต์ แล้ว คลิกช่องทําเครื่องหมายข้างอนุมัติการเปลี่ยนแปลงโดยอัตโนมัติ

โหมดตัวแทนจะอนุมัติคำขอทั้งหมดโดยอัตโนมัติ และจะไม่ขอสิทธิ์ ก่อนดำเนินการเมื่อคุณส่งพรอมต์

พรอมต์เพิ่มเติม

ลองใช้พรอมต์ต่อไปนี้กับข้อมูลของคุณเอง

  • "ที่เก็บนี้ทำหน้าที่อะไร ช่วยอธิบายสถาปัตยกรรมให้ฉันเข้าใจหน่อย"
  • "[คลาส/ฟังก์ชัน] นี้ทำอะไร"
  • "เพิ่มฟีเจอร์ลงในโค้ดเบสนี้ - "[ลิงก์หรือเส้นทางไปยังโค้ดเบส]""
  • "ปรับโครงสร้างฟังก์ชัน [A] และ [B] เพื่อใช้วิธีการทั่วไป [C]"
  • "แก้ไขปัญหา GitHub [link-to-github-issue]"
  • "สร้างแอปพลิเคชันเพื่อทำ [เป้าหมาย] ด้วย UI ที่ช่วยให้ผู้ใช้ทำ [งาน] ใน [สภาพแวดล้อม] ได้"
  • "ย้ายข้อมูลเวอร์ชันไลบรารีในที่เก็บนี้จาก [X] ไปยัง [Y]"
  • "เพิ่มประสิทธิภาพโค้ด Go นี้เพื่อให้ทำงานได้เร็วขึ้น"
  • "ใช้ [ชื่อ API] เพื่อสร้างฟีเจอร์นี้"
  • "ใช้การเขียนอัลกอริทึมเพื่อทำ [X], [Y] และ [Z]"

ขั้นตอนถัดไป