ESTALINGRADO CORP · INTRA-NET — agente de IA 100 % local, en consola, estilo Cyberpunk.
Terminal de inteligencia artificial que corre modelos GGUF de forma local con ECnet, sin Python, sin servicios cloud y sin enviar nada a un servidor externo. Hablas con el agente en español y, si lo autorizas, puede buscar en internet, leer tus archivos, ejecutar comandos de PowerShell y crear archivos — siempre bajo tu control.

ECnet. Nada sale de tu máquina salvo que tú lo autorices.ECnet. Ejecutable portable de un solo archivo.Ctrl+C detiene la respuesta en curso.[[NET]], el sistema te pregunta una sola vez por sesión y, si autorizas, busca por intención (lugares: Nominatim/OpenStreetMap; clima: Open-Meteo; resto: Wikipedia/DuckDuckGo con el texto de la página resultante) e inyecta los datos reales en el contexto.busca en internet <tema>, investiga <tema> o <tema> en la web, la terminal busca directamente sin depender del modelo.[[READ]], [[CMD]] y [[WRITE]]. Ejecución y escritura siempre piden tu confirmación (píldoras permitir/denegar con las flechas en consola interactiva; s/n si está corriendo por script). Máximo 5 herramientas encadenadas por turno./harness <objetivo>) — bucle agéntico autónomo: el agente planifica, usa herramientas paso a paso, verifica los resultados reales que le devuelve el sistema y termina por su cuenta emitiendo [[DONE]] con un resumen. Límite de 15 pasos y mismo régimen de permisos.doctor que comprueba modelo, runtime y hardware..gguf (Qwen2.5-7B-Instruct Q4_K_M recomendado)ECnet (llama-server.exe)dotnet build -c Release
dotnet publish -c Release -o publish
El ejecutable queda en publish/portable.exe (self-contained, single-file, sin Python).
portable.exe # abre la sesión interactiva (agente)
portable.exe listar # lista los modelos GGUF instalados
portable.exe info 1 # datos del modelo 1
portable.exe preguntar "Hola" # consulta única
portable.exe doctor # diagnóstico del sistema
portable.exe descargar # descarga modelos agente
portable.exe config show # configuración actual
portable.exe help # ayuda completa
╔═IR3C5.CORE═══════════════════════════════════════════════════════════════════╗
║ #### ║
║ ## #### ## ║
║ #### ##### #### ║
║ #### ##### #### ║
║ ########## ║
║ ## ########## ## ║
║ #### ########### #### ║
║ ################### ║
║ ################################ ║
║ ################### ║
║ #### ########### #### ║
║ ## ########## ## ║
║ ########## ║
║ #### ##### #### ║
║ #### ##### #### ║
║ ## #### ## ║
║ #### ║
╚══════════════════════════════════════════════════════════════════════════════╝
INTRA-NET :: IA27 TERMINAL :: sistema local // canal seguro
Estado
╭──────────┬─────────────────────────────────────────────────────────╮
│ Campo │ Valor │
├──────────┼─────────────────────────────────────────────────────────┤
│ Modelo │ Atenea-Omega-IB2.gguf │
│ Origen │ …ve\Desktop\Estalingrado corp\proyectos\IA 27 T\modelos │
│ Motor │ ECnet local │
│ Red │ ● ON (bajo autorización) │
│ Contexto │ 8192 tokens · 8 hilos · 0 capas GPU │
╰──────────┴─────────────────────────────────────────────────────────╯
Comandos rápidos
/help ver comandos
/clear limpiar historial
/use <modelo> cambiar modelo
/net on|off activar/desactivar red
/harness <objetivo> modo agéntico por pasos
/exit salir
────────────────────────────────────────────────────────────────────────────────
Listo. Escribe /help para ver los comandos. Ctrl+C detiene la respuesta en curso.
Cargando el modelo; la primera carga puede tardar...
[INTRANET] ¿Permitir que el agente busque en internet automáticamente en esta sesión? (s/n): s
Internet autorizado para esta sesión. El agente buscará automáticamente cuando necesite datos actuales.
tú> hola atenea
IA27> ¡Hola! ¿Cómo estás? Estoy aquí para ayudarte en lo que necesites. ¿En qué puedo asistirte hoy?
| Comando | Función |
|---|---|
/help | lista los comandos |
/clear | limpia el historial |
/history | muestra el historial de la sesión |
/system [texto] | consulta o cambia la instrucción de sistema |
/modelos | lista y cambia de modelo |
/descargar | descarga un modelo nuevo |
/net [on|off] | activa o desactiva la búsqueda |
/harness <objetivo> | modo agéntico por pasos (plan → herramientas → verificar → [[DONE]]) |
/temp, /rp, /topp | ajusta muestreo |
/tokens [n] | tokens máximos por respuesta |
/stats | tokens, tiempo y velocidad (tok/s) del último turno |
/exit | sale de la sesión |
Los comandos se aceptan también sin / en formas inequívocas (net on, clear, tokens 512, stats), con una nota gris de confirmación. Texto libre que empiece parecido (net neutro, "help me con esto") sigue yendo al modelo como chat.
Al arrancar la sesión se pregunta una sola vez si autorizas que el agente busque automáticamente:
[INTRANET] ¿Permitir que el agente busque en internet automáticamente en esta sesión? (s/n):
[buscando en la web...] antes de responder.El agente dispone de tres herramientas sobre tu equipo. Puede decidir usarlas por su cuenta (igual que [[NET]]) o tú puedes pedirlo directamente con frases como lee el archivo X, ejecuta <comando> o creame el archivo X que diga ...:
| Marcador | Acción | Confirmación |
|---|---|---|
[[READ]] ruta | Lee un archivo (máx. 4000 chars) o lista una carpeta | No, salvo fuera del área de trabajo |
[[CMD]] comando | Ejecuta PowerShell (cwd del proyecto, timeout 30 s) | Siempre (píldoras / s/n) |
[[WRITE]] ruta :: contenido [[END]] | Crea o reemplaza un archivo, con vista previa y diff | Siempre (píldoras / s/n) |
Seguridad:
Remove-Item -Recurse -Force, format, shutdown, etc.) muestran una advertencia en rojo antes de pedir permiso.←/→ para mover, enter para confirmar y esc para denegar. Si la terminal está corriendo por script (stdin o stdout redirigido) cae al s/n de siempre para no romper los scripts.[[WRITE]] se muestra el diff contra lo que hay en disco ahora mismo, con la cabecera de bytes: viejo b → nuevo b · +X −Y, líneas - borradas y + agregadas.n <motivo> (ej. n no toques el index) o solo n y la terminal te preguntará "¿Por qué no?" (solo en terminal interactiva; con stdin pipeado no pregunta para no romper scripts). El motivo se le pasa al modelo para que adapte su respuesta y no repita la misma acción.[[WRITE]] sin su cierre [[END]] se considera incompleto y no crea nada.Se guarda en config.json (en la carpeta de la aplicación). Se puede ver y modificar desde la terminal:
portable.exe config show
portable.exe config set context 8192
portable.exe config set max-tokens 1024
portable.exe config set net on
portable.exe config path
Valores por defecto relevantes:
| Clave | Por defecto | Nota |
|---|---|---|
context | 4096 | ventana de contexto |
max-tokens | 2048 | longitud máxima de respuesta |
threads | 4 | hilos de CPU |
gpu-layers | 0 | capas en GPU (subir si hay VRAM) |
temperature | 0.7 | muestreo |
repeat-penalty | 1.1 | evita repeticiones |
chat-template | chatml | plantilla de chat |
cache-type-k / cache-type-v | f16 | no usar q4_0: corrompe tokens en algunos GGUF |
net | on | búsqueda web bajo autorización |
ECnet.csproj proyecto .NET 8
Program.cs punto de entrada y tema de consola
AppConfig.cs configuración persistente
ModelCatalog.cs escaneo de archivos .gguf
GgufMetadataReader.cs lector de metadatos GGUF
ECnetServerSession.cs sesión de inferencia (streaming SSE)
TerminalApplication.cs lógica de terminal, comandos, búsqueda web y herramientas de agente
ModelRegistry.cs catálogo de modelos descargables
Capturas/ capturas de pantalla
El ejecutable es self-contained: no necesita .NET instalado ni Python. Para usarlo desde un USB:
<stick>\IA 27 T\ia_terminal\publish\portable.exe ← terminal
<stick>\IA 27 T\ia_terminal\publish\runtime\ ← llama-server.exe + DLLs
<stick>\IA 27 T\ia_terminal\publish\config.json ← configuración (viaja con el USB)
<stick>\Modelo\Atenea-Omega-IB2.gguf ← modelos (o en publish\models\)
%APPDATA%\IA27Terminal\config.json.publish\models\, luego la ruta configurada, luego una carpeta Modelo/models hasta 3 niveles arriba del portable. Funciona con cualquier letra de unidad.portable.exe config set model-dir "D:\Modelo" y portable.exe config set model Atenea-Omega-IB2.gguf..gguf está corrupto — una copia dañada con el mismo tamaño rompe la generación sin dar error. Verificalo con Get-FileHash contra el original o probando runtime\llama-cli.exe -m <modelo> -p "hola" -n 32..exe en uso bloquea el dotnet publish.Arranque de la terminal (banner, estado del modelo y prompt tú>):

Sesión con herramientas del agente (30/9/2026):

--cache-type q4_0 corrompe la salida en determinados modelos GGUF (repeticiones como Hola!ola!, mezcla de tokens). Se usa f16 por defecto de forma deliberada.[[NET]] a la primera; la terminal lo intercepta, amplía el patrón de negativas y permite forzar la búsqueda escribiéndola directamente en el prompt.MIT
ESTALINGRADO CORP · INTRA-NET — agente de IA 100 % local, en consola, estilo Cyberpunk.
Terminal de inteligencia artificial que corre modelos GGUF de forma local con ECnet, sin Python, sin servicios cloud y sin enviar nada a un servidor externo. Hablas con el agente en español y, si lo autorizas, puede buscar en internet, leer tus archivos, ejecutar comandos de PowerShell y crear archivos — siempre bajo tu control.

ECnet. Nada sale de tu máquina salvo que tú lo autorices.ECnet. Ejecutable portable de un solo archivo.Ctrl+C detiene la respuesta en curso.[[NET]], el sistema te pregunta una sola vez por sesión y, si autorizas, busca por intención (lugares: Nominatim/OpenStreetMap; clima: Open-Meteo; resto: Wikipedia/DuckDuckGo con el texto de la página resultante) e inyecta los datos reales en el contexto.busca en internet <tema>, investiga <tema> o <tema> en la web, la terminal busca directamente sin depender del modelo.[[READ]], [[CMD]] y [[WRITE]]. Ejecución y escritura siempre piden tu confirmación (píldoras permitir/denegar con las flechas en consola interactiva; s/n si está corriendo por script). Máximo 5 herramientas encadenadas por turno./harness <objetivo>) — bucle agéntico autónomo: el agente planifica, usa herramientas paso a paso, verifica los resultados reales que le devuelve el sistema y termina por su cuenta emitiendo [[DONE]] con un resumen. Límite de 15 pasos y mismo régimen de permisos.doctor que comprueba modelo, runtime y hardware..gguf (Qwen2.5-7B-Instruct Q4_K_M recomendado)ECnet (llama-server.exe)dotnet build -c Release
dotnet publish -c Release -o publish
El ejecutable queda en publish/portable.exe (self-contained, single-file, sin Python).
portable.exe # abre la sesión interactiva (agente)
portable.exe listar # lista los modelos GGUF instalados
portable.exe info 1 # datos del modelo 1
portable.exe preguntar "Hola" # consulta única
portable.exe doctor # diagnóstico del sistema
portable.exe descargar # descarga modelos agente
portable.exe config show # configuración actual
portable.exe help # ayuda completa
╔═IR3C5.CORE═══════════════════════════════════════════════════════════════════╗
║ #### ║
║ ## #### ## ║
║ #### ##### #### ║
║ #### ##### #### ║
║ ########## ║
║ ## ########## ## ║
║ #### ########### #### ║
║ ################### ║
║ ################################ ║
║ ################### ║
║ #### ########### #### ║
║ ## ########## ## ║
║ ########## ║
║ #### ##### #### ║
║ #### ##### #### ║
║ ## #### ## ║
║ #### ║
╚══════════════════════════════════════════════════════════════════════════════╝
INTRA-NET :: IA27 TERMINAL :: sistema local // canal seguro
Estado
╭──────────┬─────────────────────────────────────────────────────────╮
│ Campo │ Valor │
├──────────┼─────────────────────────────────────────────────────────┤
│ Modelo │ Atenea-Omega-IB2.gguf │
│ Origen │ …ve\Desktop\Estalingrado corp\proyectos\IA 27 T\modelos │
│ Motor │ ECnet local │
│ Red │ ● ON (bajo autorización) │
│ Contexto │ 8192 tokens · 8 hilos · 0 capas GPU │
╰──────────┴─────────────────────────────────────────────────────────╯
Comandos rápidos
/help ver comandos
/clear limpiar historial
/use <modelo> cambiar modelo
/net on|off activar/desactivar red
/harness <objetivo> modo agéntico por pasos
/exit salir
────────────────────────────────────────────────────────────────────────────────
Listo. Escribe /help para ver los comandos. Ctrl+C detiene la respuesta en curso.
Cargando el modelo; la primera carga puede tardar...
[INTRANET] ¿Permitir que el agente busque en internet automáticamente en esta sesión? (s/n): s
Internet autorizado para esta sesión. El agente buscará automáticamente cuando necesite datos actuales.
tú> hola atenea
IA27> ¡Hola! ¿Cómo estás? Estoy aquí para ayudarte en lo que necesites. ¿En qué puedo asistirte hoy?
| Comando | Función |
|---|---|
/help | lista los comandos |
/clear | limpia el historial |
/history | muestra el historial de la sesión |
/system [texto] | consulta o cambia la instrucción de sistema |
/modelos | lista y cambia de modelo |
/descargar | descarga un modelo nuevo |
/net [on|off] | activa o desactiva la búsqueda |
/harness <objetivo> | modo agéntico por pasos (plan → herramientas → verificar → [[DONE]]) |
/temp, /rp, /topp | ajusta muestreo |
/tokens [n] | tokens máximos por respuesta |
/stats | tokens, tiempo y velocidad (tok/s) del último turno |
/exit | sale de la sesión |
Los comandos se aceptan también sin / en formas inequívocas (net on, clear, tokens 512, stats), con una nota gris de confirmación. Texto libre que empiece parecido (net neutro, "help me con esto") sigue yendo al modelo como chat.
Al arrancar la sesión se pregunta una sola vez si autorizas que el agente busque automáticamente:
[INTRANET] ¿Permitir que el agente busque en internet automáticamente en esta sesión? (s/n):
[buscando en la web...] antes de responder.El agente dispone de tres herramientas sobre tu equipo. Puede decidir usarlas por su cuenta (igual que [[NET]]) o tú puedes pedirlo directamente con frases como lee el archivo X, ejecuta <comando> o creame el archivo X que diga ...:
| Marcador | Acción | Confirmación |
|---|---|---|
[[READ]] ruta | Lee un archivo (máx. 4000 chars) o lista una carpeta | No, salvo fuera del área de trabajo |
[[CMD]] comando | Ejecuta PowerShell (cwd del proyecto, timeout 30 s) | Siempre (píldoras / s/n) |
[[WRITE]] ruta :: contenido [[END]] | Crea o reemplaza un archivo, con vista previa y diff | Siempre (píldoras / s/n) |
Seguridad:
Remove-Item -Recurse -Force, format, shutdown, etc.) muestran una advertencia en rojo antes de pedir permiso.←/→ para mover, enter para confirmar y esc para denegar. Si la terminal está corriendo por script (stdin o stdout redirigido) cae al s/n de siempre para no romper los scripts.[[WRITE]] se muestra el diff contra lo que hay en disco ahora mismo, con la cabecera de bytes: viejo b → nuevo b · +X −Y, líneas - borradas y + agregadas.n <motivo> (ej. n no toques el index) o solo n y la terminal te preguntará "¿Por qué no?" (solo en terminal interactiva; con stdin pipeado no pregunta para no romper scripts). El motivo se le pasa al modelo para que adapte su respuesta y no repita la misma acción.[[WRITE]] sin su cierre [[END]] se considera incompleto y no crea nada.Se guarda en config.json (en la carpeta de la aplicación). Se puede ver y modificar desde la terminal:
portable.exe config show
portable.exe config set context 8192
portable.exe config set max-tokens 1024
portable.exe config set net on
portable.exe config path
Valores por defecto relevantes:
| Clave | Por defecto | Nota |
|---|---|---|
context | 4096 | ventana de contexto |
max-tokens | 2048 | longitud máxima de respuesta |
threads | 4 | hilos de CPU |
gpu-layers | 0 | capas en GPU (subir si hay VRAM) |
temperature | 0.7 | muestreo |
repeat-penalty | 1.1 | evita repeticiones |
chat-template | chatml | plantilla de chat |
cache-type-k / cache-type-v | f16 | no usar q4_0: corrompe tokens en algunos GGUF |
net | on | búsqueda web bajo autorización |
ECnet.csproj proyecto .NET 8
Program.cs punto de entrada y tema de consola
AppConfig.cs configuración persistente
ModelCatalog.cs escaneo de archivos .gguf
GgufMetadataReader.cs lector de metadatos GGUF
ECnetServerSession.cs sesión de inferencia (streaming SSE)
TerminalApplication.cs lógica de terminal, comandos, búsqueda web y herramientas de agente
ModelRegistry.cs catálogo de modelos descargables
Capturas/ capturas de pantalla
El ejecutable es self-contained: no necesita .NET instalado ni Python. Para usarlo desde un USB:
<stick>\IA 27 T\ia_terminal\publish\portable.exe ← terminal
<stick>\IA 27 T\ia_terminal\publish\runtime\ ← llama-server.exe + DLLs
<stick>\IA 27 T\ia_terminal\publish\config.json ← configuración (viaja con el USB)
<stick>\Modelo\Atenea-Omega-IB2.gguf ← modelos (o en publish\models\)
%APPDATA%\IA27Terminal\config.json.publish\models\, luego la ruta configurada, luego una carpeta Modelo/models hasta 3 niveles arriba del portable. Funciona con cualquier letra de unidad.portable.exe config set model-dir "D:\Modelo" y portable.exe config set model Atenea-Omega-IB2.gguf..gguf está corrupto — una copia dañada con el mismo tamaño rompe la generación sin dar error. Verificalo con Get-FileHash contra el original o probando runtime\llama-cli.exe -m <modelo> -p "hola" -n 32..exe en uso bloquea el dotnet publish.Arranque de la terminal (banner, estado del modelo y prompt tú>):

Sesión con herramientas del agente (30/9/2026):

--cache-type q4_0 corrompe la salida en determinados modelos GGUF (repeticiones como Hola!ola!, mezcla de tokens). Se usa f16 por defecto de forma deliberada.[[NET]] a la primera; la terminal lo intercepta, amplía el patrón de negativas y permite forzar la búsqueda escribiéndola directamente en el prompt.MIT