LangChain, n8n y AutoGPT comparten un punto ciego común: pueden navegar, buscar, escribir, llamar APIs y orquestar flujos complejos — pero en el momento en que una plataforma pide un número de teléfono para verificación SMS, el agente se detiene. Esta guía muestra exactamente cómo dar a su agente un número de teléfono real y persistente que pueda usar de forma autónoma.
Por qué las soluciones obvias fallan
Las APIs de números virtuales (Twilio, Vonage, etc.) son la primera respuesta obvia. El problema: las plataformas que requieren verificación SMS son frecuentemente las mismas que invierten en detectar números virtuales. Una búsqueda de operador en un número de Twilio devuelve un marcador VoIP. Muchos servicios financieros y redes sociales rechazan silenciosamente estos números al registrarse.
La segunda respuesta obvia es usar el número propio del desarrollador. Esto es frágil en producción: una sola marca afecta a todos los agentes que usan ese número simultáneamente.
La solución que realmente funciona en producción es una tarjeta SIM física en un módem USB en la misma máquina que el agente. Se registra como un suscriptor móvil real con metadatos de operador reales, pasa todas las verificaciones de búsqueda de operador, y le da control programático completo sobre la recepción de SMS.
Requisitos de hardware
Necesita dos cosas: una SIM física sin KYC y un módem LTE USB. Los Huawei E3372, ZTE MF833 y Sierra Wireless son todos bien compatibles en Linux. Costo: $20–40 para el módem, $25 para la SIM. La SIM se activa antes de enviar — sin pasos de configuración de su parte.
ls /dev/ttyUSB* # antes de conectar
ls /dev/ttyUSB* # después — la nueva entrada es su módem
El módulo lector de SMS
# sms_reader.py
import serial, re, time
def init_modem(puerto='/dev/ttyUSB0'):
m = serial.Serial(puerto, 115200, timeout=5)
m.write(b'AT+CMGF=1 ')
m.write(b'AT+CNMI=2,2,0,0,0 ')
return m
def leer_otp(modem, timeout=90, filtro_remitente=None):
limite = time.time() + timeout
remitente = ''
while time.time() < limite:
linea = modem.readline().decode('utf-8', errors='ignore').strip()
if linea.startswith('+CMT:'):
remitente = linea
elif remitente:
if filtro_remitente and filtro_remitente not in remitente:
remitente = ''; continue
m = re.search(r'\d{4,8}', linea)
if m: return m.group()
remitente = ''
return None
Integración con LangChain
from langchain.tools import tool
from sms_reader import init_modem, leer_otp
modem = init_modem()
@tool
def recibir_otp_sms(remitente: str = '', timeout: int = 90) -> str:
"""Espera un OTP por SMS. Filtro opcional por remitente.
Devuelve el código OTP o 'TIMEOUT'."""
codigo = leer_otp(modem, timeout=timeout, filtro_remitente=remitente or None)
return codigo if codigo else 'TIMEOUT'
Integración con n8n
En n8n, exponga el lector SMS como un endpoint HTTP con FastAPI o Flask, luego llámelo desde el nodo HTTP Request de n8n:
from fastapi import FastAPI
from sms_reader import init_modem, leer_otp
app = FastAPI()
modem = init_modem()
@app.get("/otp")
def obtener_otp(remitente: str = '', timeout: int = 90):
codigo = leer_otp(modem, timeout=timeout, filtro_remitente=remitente or None)
return {"otp": codigo, "success": codigo is not None}
En su workflow de n8n: después de activar un envío SMS en la plataforma objetivo, añada un nodo HTTP Request apuntando a http://localhost:8000/otp?remitente=Plataforma&timeout=90.
Múltiples agentes, múltiples números
Para configuraciones con múltiples agentes que requieran números aislados, use un módem USB por agente a través de un hub USB alimentado. Cada módem aparece como un dispositivo serie separado. Simbotica permite hasta tres SIM por pedido, lo que hace trivial aprovisionar configuraciones de tres agentes en una sola transacción.
Adquisición autónoma de la SIM
Si está construyendo un agente que necesita auto-aprovisionar su propio número, el endpoint de pedido de Simbotica soporta el protocolo de pago x402. El agente hace un POST a /api/submit-order-base, recibe un 402 con los términos de pago, firma una autorización USDC con una billetera EVM, y reenvía el POST con el encabezado de pago. La SIM se envía a la dirección que especifique el agente. Sin cuenta, sin clave API, sin aprobación humana.
Obtenga la SIM Que Su Agente Necesita
SIM física. Sin KYC. Número móvil real. Compatible con LangChain, n8n, AutoGPT. $25.
Ordenar ahora →