0Pricing
AI Agents · Pelajaran

Penguraian Argumen dan Teks Bantuan

Argumen wajib dan opsional, validasi tipe, serta bantuan yang dibuat otomatis.

Penguraian Argumen dan Teks Bantuan adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.

Rancangan CLI yang Baik Dimulai dari Argumen yang Baik

Antarmuka argumen agen CLI yang dirancang dengan baik memungkinkan pengguna memahami cara menggunakan alat tersebut hanya dari --help. Setiap argumen harus memiliki nama, tipe, nilai bawaan, dan deskripsi yang jelas.

Argumen dengan nama yang buruk atau tanpa dokumentasi membuat alat sulit digunakan dan dipelihara.

Argumen Wajib vs. Opsional

Argumen wajib harus diberikan — CLI keluar dengan kesalahan jika argumen tersebut tidak ada. Argumen opsional memiliki nilai default= dan dapat dihilangkan. Menentukan mana yang wajib dan mana yang opsional akan membentuk pengalaman pengguna alat Anda.

import argparse

parser = argparse.ArgumentParser(description='AI Agent CLI')

# Required: no default, must be provided
parser.add_argument(
    '--query', '-q',
    type=str,
    required=True,
    help='Question to send to the agent'
)

# Optional: has a default, can be omitted
parser.add_argument(
    '--model', '-m',
    type=str,
    default='gpt-4o-mini',
    help='Model name (default: gpt-4o-mini)'
)

parser.add_argument(
    '--max-tokens',
    type=int,
    default=1000,
    help='Maximum tokens in response (default: 1000)'
)

args = parser.parse_args(['--query', 'test'])
print(args.query, args.model, args.max_tokens)

Validasi Tipe

Parameter type= secara otomatis mengonversi masukan string dan memvalidasinya. Gunakan tipe bawaan seperti int, float, bool, atau fungsi khusus untuk validasi yang lebih kompleks.

import argparse

def positive_int(value: str) -> int:
    n = int(value)
    if n <= 0:
        raise argparse.ArgumentTypeError(f'{value} must be a positive integer')
    return n

parser = argparse.ArgumentParser()
parser.add_argument('--temperature', type=float, help='LLM temperature 0.0-2.0')
parser.add_argument('--max-results', type=positive_int, default=5,
                    help='Number of results to return (must be > 0)')
parser.add_argument('--timeout', type=float, default=30.0,
                    help='Request timeout in seconds')

# These would be rejected with helpful error messages:
# --temperature abc     -> invalid float value
# --max-results -1      -> must be positive integer
args = parser.parse_args(['--temperature', '0.7', '--max-results', '3'])
print(args.temperature, args.max_results)

Pilihan: Membatasi Nilai yang Valid

Parameter choices=[...] membatasi argumen ke sekumpulan nilai yang diizinkan. argparse memvalidasi hal ini secara otomatis dan mencantumkan opsi tersebut dalam teks bantuan.

import argparse

parser = argparse.ArgumentParser()

parser.add_argument(
    '--format',
    choices=['json', 'text', 'markdown'],
    default='text',
    help='Output format: json, text, or markdown'
)

parser.add_argument(
    '--model',
    choices=['gpt-4o', 'gpt-4o-mini', 'claude-3-5-sonnet', 'gemini-1.5-flash'],
    default='gpt-4o-mini',
    help='Model to use'
)

# Error if invalid value given:
# python agent.py --format xml
# agent.py: error: argument --format: invalid choice: 'xml'
# (choose from 'json', 'text', 'markdown')
args = parser.parse_args(['--format', 'json'])
print(args.format)  # 'json'

Flag Boolean dengan store_true

Flag boolean adalah pengalih ada/tidaknya suatu nilai — tidak ada nilai yang diberikan. Gunakan action='store_true' untuk menetapkan flag ke True saat ada dan ke False saat tidak ada.

import argparse

parser = argparse.ArgumentParser()

parser.add_argument(
    '--verbose', '-v',
    action='store_true',
    help='Enable verbose output showing agent reasoning steps'
)

parser.add_argument(
    '--no-cache',
    action='store_true',
    help='Disable response caching'
)

parser.add_argument(
    '--dry-run',
    action='store_true',
    help='Parse arguments but do not run the agent'
)

# Usage: python agent.py --query 'test' --verbose
args = parser.parse_args(['--verbose'])
print(f'verbose={args.verbose}')    # True
print(f'no_cache={args.no_cache}')  # False
print(f'dry_run={args.dry_run}')    # False

metavar: Mengatur Tampilan Teks Bantuan

Secara bawaan, argparse menampilkan nama argumen dalam huruf kapital pada teks bantuan: --query QUERY. Gunakan metavar= untuk menampilkan pengganti yang lebih informatif, seperti QUESTION atau URL.

import argparse

parser = argparse.ArgumentParser()

parser.add_argument(
    '--query',
    type=str,
    metavar='QUESTION',  # shown in help as: --query QUESTION
    required=True,
    help='Natural language question for the agent'
)

parser.add_argument(
    '--url',
    type=str,
    metavar='URL',       # shown in help as: --url URL
    help='URL to scrape and summarize'
)

parser.add_argument(
    '--temperature',
    type=float,
    metavar='0.0-2.0',   # shown in help as: --temperature 0.0-2.0
    default=0.7
)

# Help output:
# --query QUESTION    Natural language question for the agent
# --url URL           URL to scrape and summarize
print('metavar makes help text more informative')

Banyak Nilai dengan nargs

Gunakan nargs='+' untuk menerima satu atau beberapa nilai, atau nargs='*' untuk nol atau beberapa nilai. Ini berguna untuk meneruskan daftar URL, tag, atau jalur berkas kepada agen.

import argparse

parser = argparse.ArgumentParser()

parser.add_argument(
    '--urls',
    nargs='+',       # one or more URLs
    metavar='URL',
    help='URLs to analyze (space-separated)'
)

parser.add_argument(
    '--tags',
    nargs='*',       # zero or more tags
    default=[],
    help='Optional tags for filtering results'
)

# Usage: python agent.py --urls https://a.com https://b.com --tags ai research
args = parser.parse_args(
    ['--urls', 'https://a.com', 'https://b.com', '--tags', 'ai']
)
print(args.urls)  # ['https://a.com', 'https://b.com']
print(args.tags)  # ['ai']

Subperintah dengan add_subparsers()

Subperintah (seperti git commit dan git push) memberikan setiap perintah kumpulan argumennya sendiri. Gunakan add_subparsers() untuk mendefinisikannya di argparse.

import argparse

parser = argparse.ArgumentParser(description='AI Agent CLI')
subparsers = parser.add_subparsers(dest='command', help='Available commands')

# 'ask' subcommand
ask_parser = subparsers.add_parser('ask', help='Ask the agent a question')
ask_parser.add_argument('question', type=str, help='Question to ask')
ask_parser.add_argument('--model', default='gpt-4o-mini')

# 'search' subcommand
search_parser = subparsers.add_parser('search', help='Research a topic')
search_parser.add_argument('topic', type=str, help='Topic to research')
search_parser.add_argument('--depth', type=int, default=3, choices=[1, 2, 3])

args = parser.parse_args(['ask', 'What is Python?', '--model', 'gpt-4o'])
print(args.command)   # 'ask'
print(args.question)  # 'What is Python?'
print(args.model)     # 'gpt-4o'

Menulis Teks Bantuan yang Baik

Teks bantuan yang baik menjawab tiga pertanyaan: apa fungsi argumen ini, nilai apa yang valid, dan apa nilai bawaannya? Tulis teks bantuan dari sudut pandang pengguna, bukan pembuat implementasi.

import argparse

parser = argparse.ArgumentParser(
    description='AI Research Agent — answers questions using web search and LLMs.',
    epilog='Example: python agent.py --query "What is quantum computing?" --format json'
)

# Bad help text:
parser.add_argument('--t', type=float, help='t value')  # cryptic

# Good help text:
parser.add_argument(
    '--temperature',
    type=float,
    default=0.7,
    metavar='0.0-2.0',
    help='Sampling temperature for the LLM. Lower = more focused, higher = more creative. (default: 0.7)'
)

print('Good help text explains what, how, and default value')

Grup Argumen untuk CLI yang Kompleks

Saat CLI memiliki banyak argumen, kelompokkan argumen tersebut berdasarkan topik menggunakan add_argument_group(). Hal ini membuat keluaran --help jauh lebih mudah dibaca.

import argparse

parser = argparse.ArgumentParser(description='AI Agent CLI')

# Group 1: required inputs
required_group = parser.add_argument_group('Required')
required_group.add_argument('--query', required=True, help='Question to ask')

# Group 2: LLM settings
llm_group = parser.add_argument_group('LLM Settings')
llm_group.add_argument('--model', default='gpt-4o-mini', help='Model name')
llm_group.add_argument('--temperature', type=float, default=0.7)
llm_group.add_argument('--max-tokens', type=int, default=1000)

# Group 3: output settings
output_group = parser.add_argument_group('Output')
output_group.add_argument('--format', choices=['text', 'json'], default='text')
output_group.add_argument('--verbose', action='store_true')

print('Argument groups organize --help output by category')

Nilai Cadangan dari Variabel Lingkungan

Izinkan argumen menggunakan variabel lingkungan sebagai cadangan jika tidak diberikan. Dengan begitu, pengguna dapat menetapkan nilai bawaan di profil terminal tanpa harus mengetikkannya setiap kali.

import argparse
import os

os.environ['OPENAI_API_KEY'] = 'sk-proj-demo-key'

parser = argparse.ArgumentParser()

parser.add_argument(
    '--api-key',
    type=str,
    default=os.environ.get('OPENAI_API_KEY'),
    help='OpenAI API key (default: $OPENAI_API_KEY env var)'
)

parser.add_argument(
    '--model',
    type=str,
    default=os.environ.get('AGENT_MODEL', 'gpt-4o-mini'),
    help='Model to use (default: $AGENT_MODEL or gpt-4o-mini)'
)

args = parser.parse_args([])

if not args.api_key:
    parser.error('--api-key is required (or set OPENAI_API_KEY environment variable)')

print(f'Model: {args.model}')

Pemeriksaan Pemahaman: Penguraian Argumen

Uji pemahaman Anda tentang teknik penguraian argumen CLI.

Ringkasan: Penguraian Argumen dan Teks Bantuan

Sekarang Anda tahu cara membangun antarmuka argumen CLI yang lengkap dan mudah digunakan:

  • Gunakan required=True untuk argumen wajib dan default= untuk argumen opsional
  • Validasi tipe masukan dengan type= dan fungsi validasi khusus
  • Batasi nilai dengan choices=[...]
  • Gunakan action='store_true' untuk flag boolean
  • Tingkatkan keterbacaan bantuan dengan metavar= dan string help= yang jelas
  • Terima banyak nilai dengan nargs='+'
  • Gunakan subperintah dan grup argumen untuk CLI yang kompleks
  • Gunakan variabel lingkungan sebagai cadangan untuk pengaturan umum

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penguraian Argumen dan Teks Bantuan” gratis?

Ya — teks lengkap “Penguraian Argumen dan Teks Bantuan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penguraian Argumen dan Teks Bantuan”?

Argumen wajib dan opsional, validasi tipe, serta bantuan yang dibuat otomatis. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Agents?

Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Penguraian Argumen dan Teks Bantuan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?

Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membangun Antarmuka Agen Baris Perintah
  2. Agen Interaktif Bergaya REPL
  3. Penguraian Argumen dan Teks Bantuan
  4. Mengalirkan Output dalam Agen CLI
← Kembali ke AI Agents