Argumente parsen und Hilfetexte erstellen
Erforderliche und optionale Argumente, Typvalidierung und automatisch generierte Hilfe.
Argumente parsen und Hilfetexte erstellen ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Gutes CLI-Design beginnt mit guten Argumenten
Eine gut entworfene Argument-Schnittstelle für einen CLI-Agenten ermöglicht es Benutzern, allein anhand von --help herauszufinden, wie das Tool verwendet wird. Jedes Argument sollte einen eindeutigen Namen, einen Typ, einen Standardwert und eine Beschreibung haben.
Schlecht benannte oder nicht dokumentierte Argumente machen Tools frustrierend in der Nutzung und schwer zu warten.
Erforderliche oder optionale Argumente
Erforderliche Argumente müssen angegeben werden – die CLI wird mit einem Fehler beendet, wenn sie fehlen. Optionale Argumente haben einen Wert für default= und können weggelassen werden. Die Entscheidung, welches Argument zu welcher Kategorie gehört, prägt die Benutzerfreundlichkeit Ihres Tools.
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)Typvalidierung
Der Parameter type= konvertiert die Texteingabe automatisch und validiert sie. Verwenden Sie integrierte Typen wie int, float und bool oder eine eigene Funktion für komplexere Validierungen.
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)Choices: Zulässige Werte einschränken
Der Parameter choices=[...] beschränkt das Argument auf eine feste Menge zulässiger Werte. argparse führt diese Validierung automatisch durch und listet die Optionen im Hilfetext auf.
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'Boolesche Flags mit store_true
Boolesche Flags sind Umschalter, bei denen nur das Vorhandensein oder Fehlen zählt – ein Wert wird nicht angegeben. Verwenden Sie action='store_true', um ein Flag bei vorhandener Angabe auf True und bei fehlender Angabe auf False zu setzen.
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}') # Falsemetavar: Anzeige des Hilfetexts steuern
Standardmäßig zeigt argparse den Argumentnamen im Hilfetext in Großbuchstaben an: --query QUERY. Verwenden Sie metavar=, um einen aussagekräftigeren Platzhalter wie QUESTION oder URL anzuzeigen.
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')Mehrere Werte mit nargs
Verwenden Sie nargs='+', um einen oder mehrere Werte zu akzeptieren, oder nargs='*' für null oder mehr Werte. Das ist nützlich, um Listen von URLs, Tags oder Dateipfaden an den Agenten zu übergeben.
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']Unterbefehle mit add_subparsers()
Unterbefehle (wie git commit und git push) geben jedem Befehl eine eigene Gruppe von Argumenten. Verwenden Sie add_subparsers(), um sie in argparse zu definieren.
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'Guten Hilfetext schreiben
Guter Hilfetext beantwortet drei Fragen: Was bewirkt dieses Argument, welche Werte sind zulässig und was ist der Standardwert? Schreiben Sie den Hilfetext aus der Perspektive des Benutzers, nicht aus der des Implementierers.
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')Argumentgruppen für komplexe CLIs
Wenn eine CLI viele Argumente hat, gruppieren Sie sie mit add_argument_group() nach Themen. Dadurch wird die Ausgabe von --help deutlich übersichtlicher.
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')Fallbacks auf Umgebungsvariablen
Ermöglichen Sie, dass Argumente auf Umgebungsvariablen zurückgreifen, wenn sie nicht angegeben wurden. So können Benutzer Standardwerte in ihrem Shell-Profil festlegen, ohne sie jedes Mal eingeben zu müssen.
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}')Wissensüberprüfung: Argumentanalyse
Testen Sie Ihr Verständnis von Techniken zur Analyse von CLI-Argumenten.
Zusammenfassung: Argumentanalyse und Hilfetext
Sie wissen jetzt, wie Sie eine vollständige und benutzerfreundliche CLI-Argument-Schnittstelle erstellen:
- Verwenden Sie
required=Truefür erforderliche Argumente unddefault=für optionale - Validieren Sie Eingabetypen mit
type=und benutzerdefinierten Validatorfunktionen - Schränken Sie Werte mit
choices=[...]ein - Verwenden Sie
action='store_true'für boolesche Flags - Verbessern Sie die Lesbarkeit des Hilfetexts mit
metavar=und klarenhelp=-Zeichenketten - Akzeptieren Sie mehrere Werte mit
nargs='+' - Verwenden Sie Unterbefehle und Argumentgruppen für komplexe CLIs
- Greifen Sie bei häufigen Einstellungen auf Umgebungsvariablen zurück
Häufig gestellte Fragen
Ist die Lektion „Argumente parsen und Hilfetexte erstellen“ kostenlos?
Ja — der vollständige Text von „Argumente parsen und Hilfetexte erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Argumente parsen und Hilfetexte erstellen“?
Erforderliche und optionale Argumente, Typvalidierung und automatisch generierte Hilfe. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Argumente parsen und Hilfetexte erstellen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Kommandozeilen-Oberflächen für Agenten erstellen
- Interaktive Agenten im REPL-Stil
- Argumente parsen und Hilfetexte erstellen
- Streaming-Ausgabe in CLI-Agenten