La herramienta bash permite a Claude ejecutar comandos de shell en una sesión bash persistente, permitiendo operaciones del sistema, ejecución de scripts y automatización de línea de comandos.
La herramienta bash proporciona a Claude:
| Modelo | Versión de herramienta |
|---|---|
| Modelos Claude 4 y Sonnet 3.7 (deprecated) | bash_20250124 |
Las versiones anteriores de herramientas no están garantizadas para ser compatibles hacia atrás con modelos más nuevos. Siempre use la versión de herramienta que corresponda a su versión de modelo.
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
tools=[
{
"type": "bash_20250124",
"name": "bash"
}
],
messages=[
{"role": "user", "content": "List all Python files in the current directory."}
]
)La herramienta bash mantiene una sesión persistente:
| Parámetro | Requerido | Descripción |
|---|---|---|
command | Sí* | El comando bash a ejecutar |
restart | No | Establezca en true para reiniciar la sesión bash |
*Requerido a menos que use restart
Claude puede encadenar comandos para completar tareas complejas:
# Solicitud del usuario
"Install the requests library and create a simple Python script that fetches a joke from an API, then run it."
# La herramienta de Claude usa:
# 1. Instalar paquete
{"command": "pip install requests"}
# 2. Crear script
{"command": "cat > fetch_joke.py << 'EOF'\nimport requests\nresponse = requests.get('https://official-joke-api.appspot.com/random_joke')\njoke = response.json()\nprint(f\"Setup: {joke['setup']}\")\nprint(f\"Punchline: {joke['punchline']}\")\nEOF"}
# 3. Ejecutar script
{"command": "python fetch_joke.py"}La sesión mantiene el estado entre comandos, por lo que los archivos creados en el paso 2 están disponibles en el paso 3.
La herramienta bash se implementa como una herramienta sin esquema. Al usar esta herramienta, no necesita proporcionar un esquema de entrada como con otras herramientas; el esquema está integrado en el modelo de Claude y no se puede modificar.
Configurar un entorno bash
Cree una sesión bash persistente con la que Claude pueda interactuar:
import subprocess
import threading
import queue
class BashSession:
def __init__(self):
self.process = subprocess.Popen(
['/bin/bash'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
bufsize=0
)
self.output_queue = queue.Queue()
self.error_queue = queue.Queue()
self._start_readers()Manejar la ejecución de comandos
Cree una función para ejecutar comandos y capturar la salida:
def execute_command(self, command):
# Enviar comando a bash
self.process.stdin.write(command + '\n')
self.process.stdin.flush()
# Capturar salida con tiempo de espera
output = self._read_output(timeout=10)
return outputProcesar las llamadas de herramientas de Claude
Extraiga y ejecute comandos de las respuestas de Claude:
for content in response.content:
if content.type == "tool_use" and content.name == "bash":
if content.input.get("restart"):
bash_session.restart()
result = "Bash session restarted"
else:
command = content.input.get("command")
result = bash_session.execute_command(command)
# Devolver resultado a Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result
}Implementar medidas de seguridad
Agregue validación y restricciones:
def validate_command(command):
# Bloquear comandos peligrosos
dangerous_patterns = ['rm -rf /', 'format', ':(){:|:&};:']
for pattern in dangerous_patterns:
if pattern in command:
return False, f"Command contains dangerous pattern: {pattern}"
# Agregar más validación según sea necesario
return True, NoneAl implementar la herramienta bash, maneje varios escenarios de error:
La herramienta bash proporciona acceso directo al sistema. Implemente estas medidas de seguridad esenciales:
ulimit para establecer restricciones de recursossudo, rm -rf, etc.)The bash tool adds 245 input tokens to your API calls.
Additional tokens are consumed by:
Consulte precios de uso de herramientas para obtener detalles completos de precios.
pytest && coverage reportnpm install && npm run buildgit status && git add . && git commit -m "message"wc -l *.csv && ls -lh *.csvfind . -name "*.py" | xargs grep "pattern"tar -czf backup.tar.gz ./datadf -h && free -mps aux | grep pythonexport PATH=$PATH:/new/path && echo $PATHvim, less o solicitudes de contraseñaLa herramienta bash es más poderosa cuando se combina con el editor de texto y otras herramientas.
Aprenda sobre el uso de herramientas con Claude
Ver y editar archivos de texto con Claude
Was this page helpful?