# กฎ 7 ข้อสำหรับ Claude Code เพื่อจำกัดค่าใช้จ่ายของเอเจนต์อัตโนมัติในปี 2026

> กฎ 7 ข้อสำหรับตั้งขีดจำกัดใน Claude Code เพื่อไม่ให้เอเจนต์อัตโนมัติทำคุณหมดตัว ได้แก่ ขีดจำกัดของผู้ให้บริการ, Task Budgets, hooks, รายการอนุญาต, kill switch, คีย์ sandbox และขีดจำกัดจำนวนรอบ

Source: https://ailoot.ai/blog/th/ai-agent-burned-budget-claude-code/
Canonical: https://ailoot.ai/blog/th/ai-agent-burned-budget-claude-code/
Language: th
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-122
Revision: sha256-81a5e4f3d2731b6741abac4f67a515919b2060cd73426c61bcd7eec9a1c05b3e


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

เอเจนต์อัตโนมัติที่เข้าถึงคลาวด์ได้โดยไม่มีข้อจำกัด สามารถสร้างบิลก้อนใหญ่ได้ภายในคืนเดียว ฉันแจกแจงกฎ 7 ข้อสำหรับ Claude Code ที่ตั้งค่าได้ภายในเย็นวันเดียว เพื่อป้องกันความล้มเหลวลักษณะนี้

</div>

เรียนรู้วิธีใช้งานบริการได้ใน[เอกสารประกอบของ Ailoot](https://ailoot.ai/docs/)



## เงินไปอยู่ที่ไหน: ค่าใช้จ่าย 3 หมวดของเอเจนต์อัตโนมัติ

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

เอเจนต์อัตโนมัติใช้เงินของคุณไปกับอะไรบ้าง? ผ่านสามช่องทางที่แยกจากกัน ได้แก่ โทเค็นที่ Anthropic/OpenAI ทรัพยากรคลาวด์ (AWS/GCP/Yandex Cloud) และการดำเนินการแบบมีค่าใช้จ่ายผ่าน API บุคคลที่สาม (การเรียกเก็บเงินของ Stripe เกตเวย์ SMS, Twilio และบอต Telegram ที่มีการสมัครสมาชิก) แต่ละช่องทางมีระบบเรียกเก็บเงินและวิธีหยุดการใช้จ่ายของตัวเอง

</div>

อย่าสับสนระหว่างสามช่องทางนี้—แต่ละช่องทางทำงานอย่างเป็นอิสระและต้องตั้งค่าต่างกัน:

1. **โทเค็น LLM** Claude, OpenAI หรือ Gemini คิดค่าใช้จ่ายจากบริบทขาเข้าและขาออกของทุกคำขอ งบประมาณงานของ Anthropic (ดูข้อ 2) และการสมัครสมาชิกแทนการจ่ายตามการใช้งาน API ช่วยได้ในกรณีนี้
2. **โครงสร้างพื้นฐานคลาวด์** เอเจนต์สร้างทรัพยากร EC2, RDS, S3 หรือปรับใช้ lambdas ผ่าน MCP หรือเครื่องมือ Bash ได้ AWS Budgets, GCP หรือ Yandex Cloud พร้อม kill switch ช่วยได้ในกรณีนี้ (ข้อ 5)
3. **API บุคคลที่สาม** เอเจนต์เรียกเก็บเงินผ่าน Stripe ส่ง SMS 100 ข้อความผ่านเกตเวย์ หรือสร้างการสมัครสมาชิก Telegram หนึ่งพันรายการได้ คีย์ Sandbox ที่มีขอบเขตจำกัดและเพดานเข้มงวดในแดชบอร์ดของผู้ให้บริการช่วยได้ในกรณีนี้ (ข้อ 6)

ต่อไปเป็นกฎ 7 ข้อ แต่ละข้อครอบคลุมหนึ่งหรือสองช่องทาง

## วิธีตั้งเพดานค่าใช้จ่าย API แบบเข้มงวด (ข้อ 1)

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

จะตั้งเพดานค่าใช้จ่าย API แบบเข้มงวดได้อย่างไร? Anthropic และ OpenAI มีขีดจำกัดการใช้จ่ายขององค์กรในตัว ซึ่งจะจำกัดการใช้งานบัญชีโดยอัตโนมัติเมื่อถึงจำนวนเงินที่กำหนด อย่าสับสนกับการแจ้งเตือน ซึ่งทำได้เพียงส่งอีเมล เพดานเข้มงวดเป็นเหมือนสิ่งกั้น ส่วนการแจ้งเตือนเป็นเหมือนหลอดไฟ ตั้งค่าทั้งสองอย่าง โดยเริ่มจากสิ่งกั้น

</div>

เปิดใช้ได้ที่ไหน (เผื่อเวลาอย่างน้อย 2 นาทีต่อผู้ให้บริการ):

**Anthropic Console.** [console.anthropic.com](https://console.anthropic.com) → Settings → Limits → Monthly spend limit กำหนดจำนวนเงินที่คุณยอมใช้ได้ในเดือนที่เลวร้ายที่สุด เมื่อถึงขีดจำกัด API จะตอบกลับด้วย 429 และบันทึกเหตุการณ์ ไม่มี “เดี๋ยวลองอีกครั้งในอีกหนึ่งนาที”—ระบบจะบล็อกจนกว่าจะสิ้นเดือน

**OpenAI Platform.** [platform.openai.com](https://platform.openai.com/account/billing/limits) → Billing → Usage limits ในทำนองเดียวกัน มีขีดจำกัดแบบนุ่มนวล (แจ้งเตือนทางอีเมล) และขีดจำกัดแบบเข้มงวด (ปิด API) ตั้งค่าทั้งสองอย่าง และกำหนดขีดจำกัดแบบเข้มงวดไว้ที่ 1.5x ของขีดจำกัดแบบนุ่มนวล เพื่อให้มีเวลาตอบสนอง

**AWS Bedrock / Google Vertex.** หากเข้าถึง Claude/Anthropic ผ่านตัวกลางบนคลาวด์ ต้องตั้งเพดานเข้มงวดที่ฝั่งคลาวด์ ไม่ใช่ที่ Anthropic ดูข้อ 5

สิ่งที่ **ไม่นับว่า**เป็นเพดานเข้มงวด: การแจ้งเตือนทางอีเมล (“คุณใช้ไปแล้ว 80% ของงบประมาณ”) การแจ้งเตือนมาช้า และไม่มีใครอ่านอีเมลตอนกลางคืน มีเพียงสิ่งกั้นแบบซิงโครนัสที่ฝั่งผู้ให้บริการเท่านั้น

## งบประมาณงานของ Anthropic ทำงานอย่างไร และตั้งค่าได้ที่ไหน (ข้อ 2)

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

งบประมาณงานของ Anthropic คืออะไร และช่วยป้องกันอะไร? เป็นฟีเจอร์เบต้าใน Opus 4.7/4.8 และสาย Fable/Mythos: คุณกำหนดงบประมาณสำหรับเวิร์กโฟลว์อัตโนมัติหนึ่งรายการ แล้ว Claude จะลดความลึกในการให้เหตุผลเมื่อใช้งบใกล้หมด และทำงานให้เสร็จพร้อมสรุป แทนที่จะพูดว่า “แค่นี้แหละ งบหมดแล้ว” กลางคัน ฟีเจอร์นี้ไม่ใช่ทางแก้ครอบจักรวาลสำหรับค่าใช้จ่ายคลาวด์ แต่ป้องกันได้ 80% ของกรณีที่เอเจนต์ “ติดอยู่ในลูปโดยไม่รู้ตัว”

</div>

ดูรายละเอียดได้ใน[เอกสารทางการ](https://platform.claude.com/docs/en/build-with-claude/task-budgets)ของ Anthropic ประเด็นสำคัญคือ นี่เป็น**ขอบเขตแบบนุ่มนวล** ไม่ใช่ขอบเขตแบบเข้มงวด หากเอเจนต์สร้างอินสแตนซ์ EC2 ไปแล้ว Task Budget จะไม่ย้อนกลับไปยกเลิกให้

วิธีทำงานในทางปฏิบัติ: ส่งฟิลด์ `task_budget` ใน request payload (เช่น โทเค็นขาเข้า 100,000 โทเค็นสำหรับงานทั้งหมด) Claude จะได้รับข้อมูลเกี่ยวกับงบประมาณและ**ลดขอบเขตแผนของตัวเอง** โดยทำขั้นตอนให้ง่ายขึ้นหรือข้ามงานย่อย เมื่อใกล้ใช้งบหมด Claude จะค่อย ๆ ปิดงานและส่งสรุประหว่างทาง แทนคำว่า “ขอบคุณที่รับฟัง”

ข้อจำกัด:

- **ใช้ได้กับ Anthropic API เท่านั้น** ใช้กับ Bedrock/Vertex ไม่ได้ เพราะทั้งสองมีระบบเรียกเก็บเงินของตัวเอง
- **ใช้ได้เฉพาะโมเดลเบต้า** (Opus 4.7, 4.8, Fable 5, Mythos 5) ใช้กับ Sonnet 4.6 หรือ Haiku ไม่ได้
- **ไม่ครอบคลุมค่าใช้จ่ายคลาวด์หรือ API บุคคลที่สาม** หาก Claude เปิดใช้งานอินสแตนซ์ EC2, Task Budget จะไม่ทำงาน

ใช้ร่วมกับข้อ 1 (เพดานแบบเข้มงวด) อย่าใช้แทนกัน

มาตรการคุมต้นทุนเป็นส่วนหนึ่งของวิศวกรรมบริบท: คุณเป็นผู้ตัดสินใจว่าเอเจนต์ทำอะไรได้และไม่ได้ และมีจุดหยุดฉุกเฉินอยู่ตรงไหน



## สิ่งที่ควรบล็อกด้วย PreToolUse hooks ใน Claude Code (ข้อ 3)

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

PreToolUse hooks ใน Claude Code คืออะไร และทำไมจึงจำเป็น? เป็นสคริปต์ที่ทำงาน**ก่อน** Claude เรียกใช้เครื่องมือ คุณสามารถบล็อกคำขอ (`exit 2`) กำหนดให้ผู้ใช้ยืนยัน หรือปล่อยให้ผ่านโดยไม่ถามก็ได้ ประเด็นสำคัญคือ hooks ทำงานก่อน `--dangerously-skip-permissions` ซึ่งหมายความว่าคุณบล็อกการกระทำที่เป็นอันตรายได้ แม้อยู่ในโหมดข้ามการขออนุญาต

</div>

การตรวจสอบสิทธิ์ใน Claude Code (ณ วันที่ 1 มิถุนายน 2026) มีลำดับ **deny → ask → allow** นั่นหมายความว่า:

- ตรวจ permission mode ที่เลือกแยก อย่าอนุมานการป้องกันใน bypass mode จากการทดสอบ deny rule ในโหมดปกติ
- หาก hook คืนค่า `exit 2` การเรียกใช้เครื่องมือจะถูกบล็อก
- `allowedTools` จะมีผลก็ต่อเมื่อไม่มีการตอบสนองจาก deny rules และ hooks

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

```bash
#!/usr/bin/env bash
# ~/.claude/hooks/block-dangerous-bash.sh
INPUT=$(cat)
if ! COMMAND=$(printf '%s\n' "$INPUT" | jq -er '.tool_input.command | select(type == "string")'); then
  echo "Blocked: invalid Bash hook input" >&2
  exit 2
fi

# ตรวจรูปแบบข้อความที่ระบุ ไม่ครอบคลุมการกระทำเทียบเท่าทุกวิธี
if echo "$COMMAND" | grep -qiE '(rm -rf|aws s3 rb|terraform destroy|kubectl delete|drop database)'; then
  echo "Blocked: destructive command" >&2
  exit 2
fi

exit 0
```

บันทึกสคริปต์ตาม path ที่ระบุ ยืนยันว่ามี `jq` และให้สิทธิ์รันด้วย `chmod +x ~/.claude/hooks/block-dangerous-bash.sh` แล้วผูกใน `~/.claude/settings.json`:

```json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/block-dangerous-bash.sh" }]
      }
    ]
  }
}
```

ดู[เอกสารทางการ](https://code.claude.com/docs/en/permissions)

ตรวจ `/hooks` ว่าลงทะเบียน แล้วส่ง JSON ตัวอย่างไม่สำคัญเข้าสคริปต์โดยไม่รันฟิลด์ command รูปสะกดอันตรายที่ระบุควรคืน 2 คำสั่งทั่วไปคืน 0 และทดสอบ input ผิดรูป regex ตรวจเฉพาะ Bash ที่ matcher ตรง ต้องใช้ credentials จำกัดกับการแยกสภาพแวดล้อมเป็นขอบเขตสิทธิ์จริง ดู[ตัวอย่าง input/output hook ทางการ](https://code.claude.com/docs/en/hooks-guide#read-input-and-return-output)

## ทำไมต้องใช้รายการอนุญาต `allowedTools` และทำไมไม่ควรใช้ `--dangerously-skip-permissions` บนเครื่องโฮสต์ (ข้อ 4)

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

ควรวางรายการอนุญาตของเครื่องมือไว้ที่ไหน และทำไมเครื่องโฮสต์จึงเป็นสถานที่ที่ไม่เหมาะกับโหมดข้ามการขออนุญาต? `allowedTools` ใน settings.json เป็นรายการคำสั่งเฉพาะที่เอเจนต์รันได้โดยไม่ต้องยืนยัน ส่วนคำสั่งอื่นทั้งหมดจะถามคุณ `--dangerously-skip-permissions` ปิดการถามยืนยันทั้งหมด ดังนั้นอย่าใช้บนเครื่องโฮสต์—ใช้เฉพาะใน container หรือ VM เท่านั้น

</div>

รายการอนุญาตคือการใช้หลักการให้สิทธิ์เท่าที่จำเป็น แทนที่จะ “อนุญาตทุกอย่าง” (`--dangerously-skip-permissions`) ให้เพิ่มเฉพาะสิ่งที่งานต้องใช้:

```json
{
  "permissions": {
    "allow": [
      "Bash(npm install:*)",
      "Bash(npm run build)",
      "Bash(git add:*)",
      "Bash(git commit:*)",
      "Read(./src/**)",
      "Write(./src/**)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(curl * | sh)",
      "Write(/etc/**)",
      "Write(~/.ssh/**)"
    ]
  }
}
```

สิ่งที่ควรรู้เกี่ยวกับโหมดข้ามการขออนุญาต:

- **Linux/macOS ปฏิเสธการเริ่ม** Claude Code ในโหมดข้ามการขออนุญาตเมื่อเป็น root หรือใช้ sudo—เป็นการป้องกันที่มีมาในตัว
- บนเครื่องของคุณเอง โหมดข้ามการขออนุญาตจะปิดการยืนยันทั้งหมด และเอเจนต์สามารถใช้ `rm -rf` กับอะไรก็ได้ เปิดคีย์ SSH และอัปโหลดข้อมูลขึ้นคลาวด์
- **อย่า**ใช้ `--dangerously-skip-permissions` บนเครื่องโฮสต์ ให้ใช้เฉพาะใน:
  - Docker container ที่จำกัดการ mount volume (เฉพาะโฟลเดอร์ที่จำเป็น)
  - VM แบบแยกส่วน (Multipass, Lima, Orbstack)
  - GitHub Codespaces / Replit / sandbox อื่น

คำสั่ง docker run ขั้นต่ำสำหรับโหมดข้ามการขออนุญาต:

```bash
docker run --rm -it \
  -v "$PWD:/workspace" \
  -w /workspace \
  --network host \
  ghcr.io/anthropics/claude-code:latest \
  claude --dangerously-skip-permissions
```

หากเอเจนต์ต้องใช้ข้อมูลรับรองคลาวด์ ให้ใช้**คีย์แยกที่มีขอบเขตจำกัด** ไม่ใช่คีย์หลักของคุณ (ข้อ 6)

## วิธีตั้งการแจ้งเตือนงบคลาวด์พร้อม kill switch ใน AWS, GCP และ Yandex Cloud (ข้อ 5)

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

budget alert รายงานการใช้ที่สังเกตหรือคาดการณ์และอาจมาช้า ฟังก์ชันตอบสนองอาจบล็อกการกระทำใหม่ของเอเจนต์หรือหยุดทรัพยากรเฉพาะ เป็นคนละการกระทำ การปิด IAM key ไม่หยุดค่าทรัพยากรที่รันอยู่ ต้องกำหนดและทดสอบการหยุดทรัพยากรแยก

</div>

วิธีตั้งค่าในคลาวด์แต่ละแห่ง:

**AWS Budgets** ([เอกสาร](https://aws.amazon.com/aws-cost-management/aws-budgets/)) สร้างงบรายเดือนพร้อมเกณฑ์ (50%, 80%, 100%) ที่เกณฑ์ 100% SNS topic เรียก Lambda ตอบสนองได้ ตัวอย่างด้านล่างปิดเฉพาะ IAM access keys ของผู้ใช้ที่ระบุ ไม่หยุดทรัพยากรและไม่ยืนยันเพดานใช้จ่ายแบบบังคับ:

```python
import boto3

def lambda_handler(event, context):
    iam = boto3.client('iam')
    # ปิดใช้งานคีย์ทั้งหมดของผู้ใช้ 'claude-agent'
    keys = iam.list_access_keys(UserName='claude-agent')['AccessKeyMetadata']
    for key in keys:
        iam.update_access_key(
            UserName='claude-agent',
            AccessKeyId=key['AccessKeyId'],
            Status='Inactive'
        )
    return {'statusCode': 200, 'body': 'IAM keys deactivated; existing resources unchanged'}
```

**ขั้นหยุดทรัพยากรที่จำกัดขอบเขต:** sandbox เฉพาะที่มี EC2 แบบ EBS-backed ที่อนุมัติ ให้บันทึกบัญชี Regions และ instance IDs ตรงตัวก่อนรัน ใน EC2 console เลือกเฉพาะ instances เหล่านั้น → **Instance state → Stop instance** → ยืนยัน แล้วตรวจทุกรายการถึง `stopped` เก็บข้อมูล instance-store ที่ต้องใช้ก่อนเพราะการหยุดลบทิ้ง ตรวจว่า scheduler หรือ scaling ที่อนุมัติไม่สร้างแทน ขั้นนี้หยุด compute นั้น ไม่ใช่ค่าทั้งบัญชี ต้องดู storage ที่คงและบริการอื่นแยก ทำตาม[ขั้นหยุด EC2 ทางการ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)

[เอกสาร AWS Budgets](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) เตือนว่าแจ้งเตือนล่าช้าจากการใช้และอาจมีค่าเพิ่มก่อนหลังแจ้ง เกณฑ์ 100% จึงบังคับเพดานเงินตรงตัวไม่ได้

**การแจ้งเตือนงบประมาณ GCP** สร้าง Budget → Pub/Sub topic → Cloud Function เพื่อปิดใช้ Service Account เคล็ดลับสำคัญจากเอกสาร: **การแจ้งเตือนแค่แจ้งให้ทราบ ไม่ได้ปิดระบบ** ดังนั้น Cloud Function จึงจำเป็น

**Yandex Cloud** ([เอกสาร](https://yandex.cloud/ru/docs/billing/concepts/budget)) ตั้งงบประมาณภายใต้ Billing → Budgets และกำหนดโควตาทรัพยากรเป็นเพดานแบบเข้มงวด คุณสามารถเชื่อมการแจ้งเตือนเข้ากับบอต Telegram ผ่าน Cloud Functions ได้

**OpenAI API** กำหนดขีดจำกัดการใช้จ่ายแบบนุ่มนวลและแบบเข้มงวดได้โดยตรงในแดชบอร์ด—ขีดจำกัดแบบเข้มงวดจะหยุด API โดยอัตโนมัติ ไม่ต้องใช้ Lambda

ใช้ hard limit ฝั่งผู้ให้บริการที่ตรวจแล้วเมื่อมี พร้อม budget alerts ที่ล่าช้า credentials จำกัด และการตอบสนองที่ทดสอบสำหรับทรัพยากรที่เอเจนต์สร้างได้ เพิกถอน credentials บล็อกการกระทำใหม่บางส่วน แต่ต้องตรวจหยุดการใช้ทรัพยากรต่อเนื่อง ทั้ง alert และข้อความสำเร็จของ Lambda เพิกถอนคีย์ไม่พิสูจน์ว่าบิลทั้งหมดหยุด

## ทำไมเอเจนต์ต้องใช้คีย์ API ของ sandbox แยกที่มีขอบเขตจำกัด (ข้อ 6)

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

ทำไมเอเจนต์ต้องใช้คีย์ API แยก? เพื่อจำกัดความเสียหายจากความล้มเหลว สร้างผู้ใช้ IAM หรือ Service Account สำหรับเอเจนต์เพียงตัวเดียว ให้สิทธิ์ขั้นต่ำ (EC2 ไม่ใช่ *) และผูกกับโปรเจกต์เรียกเก็บเงินแยกที่มีเพดานเข้มงวด หากเอเจนต์ใช้เงินจนหมด ก็จะใช้เงิน 50 ดอลลาร์ของตัวเองหมดภายในหนึ่งชั่วโมง ไม่ใช่เงินทั้งหมดของบริษัท

</div>

การตั้งค่า AWS ขั้นต่ำ:

1. สร้างผู้ใช้ IAM `claude-agent-scan`
2. กำหนดนโยบายเฉพาะการดำเนินการที่จำเป็น (เช่น `ec2:RunInstances` ในหนึ่งรีเจียน ขนาด `t3.micro` โดยไม่มี VPC elastic IP)
3. ผูกผู้ใช้เข้ากับบัญชี AWS แยกต่างหาก (ผ่าน Organizations) ที่มีงบรายเดือน 100 ดอลลาร์
4. สร้าง access keys และให้ **เฉพาะเอเจนต์** อย่าใส่ไว้ใน `~/.aws/credentials` ของคุณเอง
5. หลังจบเซสชัน ให้หมุนเวียนคีย์หรือลบผู้ใช้

สำหรับผู้ให้บริการรายอื่นก็เช่นกัน:

- **OpenAI / Anthropic:** ใช้คีย์ API แยกสำหรับแต่ละเอเจนต์ กำหนดเพดานเข้มงวดให้แต่ละคีย์ในแดชบอร์ด และใส่แท็ก `agent_id` ในข้อมูลเมตาของคำขอ
- **Stripe / YooKassa:** ใช้คีย์ API แบบจำกัดสำหรับการดำเนินการเดียว (เช่น `charges:read` เท่านั้น) และใช้บัญชีผู้ค้าแยกหากทำได้
- **Telegram Bot API:** ใช้โทเค็นบอตแยก ไม่ใช่โทเค็นหลัก

หลักการความปลอดภัยที่ใช้กันมานานก็ยังใช้ได้ที่นี่: **ให้สิทธิ์เท่าที่จำเป็น**—เอเจนต์จะได้สิ่งที่งานต้องใช้พอดี ไม่เกินไปแม้แต่ไบต์เดียว หากงานคือ “สแกนเครือข่าย” อย่าให้ `ec2:*` และ `s3:*`; ให้แค่ `ec2:DescribeInstances` ก็พอ

## ควรใช้ dry run ก่อนเริ่มและจำกัดจำนวนรอบเมื่อใด (ข้อ 7)

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

ทำไมควรให้เอเจนต์แสดงแผนก่อนเริ่ม และควรอนุญาตให้ทำซ้ำได้สูงสุดกี่รอบ? Plan Mode เป็นฟีเจอร์ในตัวของ Claude Code: เอเจนต์อธิบายก่อนว่าตั้งใจจะทำอะไร แล้วคุณจึงอนุมัติ นี่คือการตรวจสอบก่อนเริ่มงานที่ไม่มีค่าใช้จ่าย และ `--max-turns N` จำกัดจำนวนขั้นตอนในหนึ่งเซสชัน ทำให้เอเจนต์วนไปเรื่อย ๆ ไม่ได้ สำหรับโหมดอัตโนมัติ ให้ตั้งไว้ไม่เกิน 10–30 ทิร์น

</div>

เปิด Plan Mode (`/plan`) เมื่อเริ่มเซสชัน เอเจนต์เตรียมแผน แสดงในแชต รอการอนุมัติ และ**ค่อย**เริ่มทำงาน วิธีนี้ไม่มีค่าใช้จ่ายและป้องกันกรณี “อ้าว นึกว่าจะถามก่อน” ได้ 70%

`--max-turns` เป็นแฟล็กตอนเริ่มทำงาน หนึ่งทิร์นคือหนึ่งรอบของ “เอเจนต์คิด + เรียกใช้เครื่องมือ + ได้ผลลัพธ์” สำหรับงานอัตโนมัติ:

- การเปลี่ยนแปลงเล็กน้อย: 5–10 ทิร์น
- งานขนาดกลาง: 15–30 ทิร์น
- งานอัตโนมัติขนาดใหญ่: 50–80 ทิร์น

เทคนิคเพิ่มเติม:

- **จำกัดเวลาด้วยนาฬิกา** โดยใช้คำสั่ง Linux `timeout`:

```bash
timeout 1800 claude --dangerously-skip-permissions --max-turns 30 -p "scan task"
# 1800 วินาที = 30 นาที หยุดโปรเซสอย่างนุ่มนวล
```

- บันทึกการเรียกใช้เครื่องมือทุกครั้งลงไฟล์ด้วย hook PostToolUse เพื่อให้ตรวจสอบย้อนหลังได้ว่าเกิดอะไรขึ้น
- เฝ้าติดตามด้วย Cron—ทุก 5 นาที ตรวจสอบว่าไม่มีโปรเซส Claude ทำงานพร้อมกันถึง 10 โปรเซส (ซึ่งมักเป็นสัญญาณว่ามีบางอย่างผิดพลาด)

## เช็กลิสต์พร้อมใช้ 5 นาทีก่อนเปิด Claude Code อัตโนมัติ

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

ประเด็นสำคัญ

ต้องเตรียมอะไรให้พร้อมก่อนกด Enter เพื่อเริ่มงานอัตโนมัติ? มีช่องให้เลือก 7 ข้อ แต่ละข้อใช้เวลาประมาณหนึ่งนาที หากยังว่างแม้แต่ข้อเดียว อย่าเริ่ม

</div>

**เช็กลิสต์ก่อนใช้ `claude --dangerously-skip-permissions`:**

```
[ ] 1. กำหนด hard cap ที่ผู้ให้บริการ API (Anthropic Console → Limits → Monthly spend limit)
[ ] 2. กำหนด Task Budget ใน request payload (หากใช้ Opus 4.7+/Fable/Mythos)
[ ] 3. ใช้ PreToolUse hook เพื่อบล็อก rm -rf, aws s3 rb, terraform destroy
[ ] 4. กำหนด allowedTools whitelist ใน settings.json หรือทำงานภายใน Docker container
[ ] 5. budget alerts คลาวด์ที่ล่าช้า พร้อมทดสอบเพิกถอนคีย์และหยุดทรัพยากรที่อนุมัติ
[ ] 6. ใช้ Sandbox API keys (คีย์แยกสำหรับเอเจนต์ ไม่ใช่คีย์หลัก)
[ ] 7. กำหนด --max-turns N + timeout NNN seconds + การตรวจสอบโปรเซสด้วย cron
```

หากเตรียมครบทั้งเจ็ดข้อแล้ว ก็เริ่มได้ หากขาดแม้แต่ข้อเดียว **ให้หยุดและตั้งค่าให้เรียบร้อย** ใช้เวลา 30 นาทีตอนนี้ อาจช่วยประหยัดเงินได้ 6,000–500,000 ดอลลาร์ในภายหลัง

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

เรื่องนี้อยู่ในหมวด 3 จากส่วนที่ 1 (บุคคลที่สามรันสิ่งต่าง ๆ บนโครงสร้างพื้นฐานของคุณ) แต่หลักการเหมือนกัน: การควบคุมการใช้จ่ายไม่ควรขึ้นอยู่กับว่าใครเป็นผู้เริ่มใช้เงิน—เอเจนต์ของคุณ พนักงานของคุณ หรือโปรแกรมขุดเหรียญในไนจีเรีย

อ่านเพิ่มเติม:

- [วิธีป้องกัน Claude Code จากการทำงานพัง](https://ailoot.ai/blog/th/claude-code-safe-overnight-setup/)—เรื่อง `--dangerously-skip-permissions` และสิทธิ์การใช้งานจากอีกมุมหนึ่ง
- [ความปลอดภัยของ vibe coding](https://ailoot.ai/blog/th/vibe-coding-security/)—เสาหลักด้านความปลอดภัย
- [วิธีไม่ใช้ขีดจำกัด Claude Code จนหมดในวันเดียว](https://ailoot.ai/blog/th/claude-code-token-limits-saving/)—เรื่องโทเค็นจากการสมัครสมาชิก (อย่าสับสนกับคู่มือนี้ที่ว่าด้วยบิลคลาวด์)

<div class="section" role="doc-bibliography" aria-label="Sources">

### แหล่งที่มา

- [เอกสาร Anthropic: งบประมาณงาน](https://platform.claude.com/docs/en/build-with-claude/task-budgets)
- [เอกสาร Claude Code: ตั้งค่าสิทธิ์](https://code.claude.com/docs/en/permissions)
- [AWS Budgets—ตั้งงบประมาณค่าใช้จ่ายและการใช้งานแบบกำหนดเอง](https://aws.amazon.com/aws-cost-management/aws-budgets/)
- [Yandex Cloud: งบประมาณ](https://yandex.cloud/ru/docs/billing/concepts/budget)

</div>





ทำความรู้จักกับ [Ailoot](https://ailoot.ai/).

## คำถามที่พบบ่อย

### เพิกถอน IAM keys ของเอเจนต์แล้วหยุดบิลคลาวด์หรือไม่?

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

### regex คำสั่งตัวอย่างบังคับขอบเขตปลอดภัยสมบูรณ์ได้หรือไม่?

ไม่ได้ ตรวจเฉพาะ Bash ที่ matcher ตรงและข้อความบางรูป ทดสอบ JSON parsing กับ exit codes แต่ใช้สิทธิ์คลาวด์แคบและแยกสภาพแวดล้อมเป็นขอบเขตจริง การกระทำเทียบเท่าหรือเครื่องมืออื่นพ้นตัวกรองข้อความได้


## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
