Agentes de código abierto

Como hemos visto en anteriores entregas, podemos utilizar distintos modelos de IA en distintos agentes. Vimos como usar glm con claude-code, hemos visto como utilizar mcps también en claude-code o en github copilot pero lo ideal sería no depender de un agente comercial, entendiendo como tal alguno que va ligado a algún modelo o ide. Por eso me he puesto a buscar y he encontrado un par de ellos. En esta entrada vamos a intentar configurarlos para que funcionen con los modelos de IA a los que tenemos acceso e incluso añadirles acceso a mcps.

goose

El primero que encontré y que me parece perfecto en muchos aspectos se llama goose, podéis encontrarlo en https://github.com/block/goose

Instalación

nada más sencillo que seguir las instrucciones de https://block.github.io/goose/docs/getting-started/installation/ en mi caso y como uso ubuntu solo tuve que ejecutar:

wget https://github.com/block/goose/releases/download/v1.16.1/goose_1.16.1_amd64.deb
sudo dpkg -i goose_1.16.1_amd64.deb

Os recomiendo que os paseis a ver si hay una versión más nueva a esta que he usado yo.

Si todo ha ido bien solo tienes que buscar goose en el menú y ejecutarlo (o goose desde la terminal)

Configurar el LLM

Vamos a usar como ejemplo lo que vimos en la entrada sobre LLM baratos, el glm-4.6. Para ello pulsaremos en el icono de abajo con forma de robot y seleccionaremos «Change Model»

Eso permitirá acceder a un desplegable con los modelos disponibles. Como inicialmente no tendrás ninguno habrá que seleccionar la opción «Use other provider» que nos sacará una pantalla como esta:

Tal como hicimos con claude vamos a usar una configuración personalizada de anthropic. Pinchamos en configure y le ponemos la url y la api key que pusimos la otra vez:

Y eso es todo, luego cuando queramos seleccionar el modelo ya nos aparecerá la opción anthropic y podremos seleccionarla

Ahora ya podemos preguntarle lo que queramos a nuestro agente que contará con el modelo integrado.

Modos de funcionamiento

Si os fijáis en la parte de abajo a la derecha veréis que hay un marcador que indica el modo en el que está tabajando el agente, en mi caso lo tengo en «Autonomous» que es como darle carta blanca para que haga lo que hay que hacer, pero también tiene otros modos:

Y para cada uno de los modos puedes configurar los permisos para cada una de las extensiones.

Extensiones

Como ya dijimos al principio vamos a darle herramientas a nuestro nuevo agente, en este caso el mismo mcp que usamos en esta otra entrada, para ello nada más sencillo que ir a la opción Extensión en el menú principal que nos llevará a una ventana como esta:

Creamos una extensión nueva y le ponemos los datos tal que así (solo hay que poner en el comando lo que antes poníamos como un array json y rellenar las variables de entorno):

Y luego la activamos (aparecerá arriba). Con eso ya podemos volver a usar la herramienta nueva desde goose preguntando cosas como:

¿puedes recuperar un documento de outline llamado API docufactu y hacerme un resumen?

A este agente se le pueden añadir modelos locales como por ejemplo modelos de ollama que tengas corriendo en tu ordenador además de los más populares. También puede usar directamente github copilot sin entrar al VScode.

Si queréis instalar la versión para terminal también se puede, el único problema es que el ejecutable se llama exactamente igual (goose) que el que hemos usado para lanzar la UI (se guarda en otro directorio) por lo que tendréis goose UI si lo seleccionas por el menu y goose linea de comando si lo ejecutas desde una terminal (también depende del orden que tengas en tu path).

Lo siguiente que quería hacer es instalar opencode, pero creo que lo voy a dejar para una siguiente entrada. Disfrutad de goose lo que podáis.

Veri*Factu pospuesto

Al hilo de mi anterior hilo, hoy se acaba de conocer que el gobierno ha pospuesto la puesta en marcha de la obligatoriedad del sistema un año completo.

Todo un alivio para las pymes y autónomos que estaban muy perdidos con las nuevas obligaciones que emanaban de este nuevo sistema tributario.

Podeis ver la noticia en varios medios:

Es buena hora para empezar a prepararse, ahora con más tiempo y aprovechar para utilizar herramientas como DocuFactu.

Si te suena VeriFactu, tienes que leer esto

Desde hace unos meses hay una palabra que suena mucho por todas partes, no es una peli, no es un disco, no es un nuevo escándalo financiero y no afecta a todo el mundo… Pero es algo muy importante para pymes y autónomos, esa palabra es VeriFactu (o Veri*Factu).

Facturas alocadas por Veri*Factu a la espera de DocuFactu

¿Qué es Veri*Factu?

VERI*FACTU es el nuevo sistema de emisión de facturas “verificables” definido por la Agencia Tributaria española dentro de la Ley Antifraude, pensado para que el software de facturación genere registros inalterables y, opcionalmente, los envíe en tiempo real a Hacienda.

¿Porqué se está hablando de esto?

Se habla tanto de VERI*FACTU en estos meses porque su implementación obligatoria se acerca rápidamente, con plazos clave en 2025-2026 que generan urgencia entre pymes, autónomos y desarrolladores de software.

  • El 29 de julio de 2025 era la fecha límite para que los fabricantes adapten y homologuen sus programas de facturación.?
  • Desde el 1 de enero de 2026, las sociedades mercantiles deben usar sistemas compatibles; para autónomos y personas físicas, el 1 de julio de 2026.?

Artículos recientes destacan que solo el 8% de pymes está preparado, con un mes restante para la primera fase.?

Cómo funciona en la práctica

El programa de facturación genera, por cada factura, un registro firmado electrónicamente, con huella (hash) y datos clave (número, fecha, importe, NIF, tipo de factura, etc.), y lo encadena con los anteriores para asegurar la trazabilidad.?

En modo “VeriFactu”, el software envía estos registros automáticamente a la AEAT; en modo “no VeriFactu”, los conserva y solo los remite si se le requieren, pero cumpliendo igualmente requisitos estrictos de seguridad y conservación.?

Las facturas incluyen un código QR que permite a cliente y AEAT comprobar que la factura está registrada, así como la leyenda “VERIFACTU” o “Factura verificable en la sede electrónica de la AEAT”.?

Esa marca funciona como “sello de calidad fiscal”: indica que el emisor usa un sistema que cumple con el reglamento de facturación verificable y con los requisitos técnicos oficiales.

De hecho, según las respuestas a preguntas frecuentes de la AEAT. incluso si se elige el modo «no VeriFactu» se debería incluir el código QR siempre que se haya generado con un programa informático que tenga la opción «no VeriFactu».

¿Qué puedo hacer o como desarrollador?

En primer lugar informarte sobre todo esto, ya que tarde o temprano terminará cayendo sobre ti parte de este marrón. La información principal puedes encontrarla en la AEAT, y si no queréis cambiar de sistema de generación de facturas todavía, os recomiendo utilizar DocuFactu. DocuFactu es un sistema sencillo que permite, en base a las facturas en el formato actual generar e incrustar un QR verificable en la misma para que cumpla la normativa. Además, si deseas usar el modo VeriFactu usa inteligencia artificial para extraer los datos de la factura y enviarlos al registro de la agencia tributaria en tu nombre. Tiene una API muy sencilla (REST con API KEY) y permite cumplir con la ley sin demasiados quebraderos de cabeza. Si queréis más información, solo tenéis que visitar su web (DocuFactu – VeriFactu fácil) o enviar un correo a [email protected].

En un mes justo veremos si esto echa a andar o los múltiples problemas que nos genera tener que adaptar algo tan importante como la facturación a una norma tan restrictiva hacen que se retrase su puesta en marcha.

Conectar claude code con MCPs

Como ya contamos en una entrada anterior La IA más barata para generar código, podemos utilizar claude code con otras IAs además de las de Anthropic, y esto es muy bueno porque nos da muchas herramientas de agente inteligente como la nada despreciable posibilidad de conectar con servidores MCP.

Para este ejemplo vamos a utilizar outline, que, para el que no lo conozca, es un excelente editor de documentos al estilo notion y que yo uso, junto con mi equipo, para dejar la documentación de los proyectos y ahora vamos a ver cómo podemos integrar esta documentación con nuestra IA favorita para programar.

Lo primero que tenemos que hacer es conseguir una clave de API en outline. Eso se consigue en la ruta /settings/api-and-apps donde pediremos crear una nueva clave api

Una vez creada más vale que os la copieis rápido porque no vais a poder volver a recuperarla después.

Una vez que tenemos instalado claude code y sus prerequisitos (que podéis ver en la entrada anterior) tendremos en nuestra raíz de usuario un archivo llamado .claude.json que tiene, entre otras cosas, las definiciones de los mcp.

El fragmento que tenemos que añadir es:

       "mcpServers": {
        "outline": {
          "type": "stdio",
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "--init",
            "-e",
            "DOCKER_CONTAINER=true",
            "-e",
            "OUTLINE_API_KEY",
            "-e",
            "OUTLINE_API_URL",
            "biblioeteca/mcp-outline"
          ],
          "env": {
            "OUTLINE_API_KEY": "ol_api_.....",
            "OUTLINE_API_URL": "https://<servidor>/api"
          }
        },

Yo lo he añadido bajo la línea «mcpContextUris»: [] dentro de uno de los proyectos donde lo quiero usar. Evidentemente para usar este mcp necesitas tener docker instalado (doy por hecho que si estás aquí eres de los míos y lo usas diariamente).

Una vez que has grabado el archivo y arrancas claude en el directorio del proyecto en cuestión le puedes preguntar por la lista de mcps:

$ claude mcp list
Checking MCP server health...

outline: docker run -i --rm --init -e DOCKER_CONTAINER=true -e OUTLINE_API_KEY -e OUTLINE_API_URL biblioeteca/mcp-outline - ? Connected

Y ya puedes hacer que la magia surja…

Y darle que si a todos los permisos que pida

Y ya podrías pedirle que te lea documentos como requisitos para programar o que, como en este caso, que nos documente el api que acabamos de construir en el proyecto

¿puedes crear un documento llamado API DocuFactu en esa colección con la documentación sobre el API (solo la parte verifactu) que incluya ejemplos de uso usando una APIKEY? 

Y este es el resultado… (solo parte)

Como todo lo que hace la IA luego alguien que sepa tiene que retocarlo y corregirlo (aquí también se puede inventar cosas), pero el caso es que ya tenemos mucho trabajo adelantado.

Hay miles de mcp con los que podemos interactuar por ahí… Solo tienes que buscarlo o, sino, construir el tuyo propio que, igual, lo hacemos aquí cuando tengamos un rato.

Añadir un segundo factor a tu acceso ssh

Los piratas no descansan y las bases de datos de contraseñas no dejan de crecer. Hay filtraciones constantes y, por mucho que lo intentes, no haces más que reutilizar contraseñas y a no ser que utilices algo como nomorepass (muy recomendado) tu memoria tiene sus límites y es muy posible que lo último que hayas cambiado es tu contraseña de acceso.

En el caso de linux, que es lo que yo uso todos los días, si tienes un acceso por ssh que llegue a tu ordenador es bastante sencillo que algún escaner de puertos lo haya detectado, aunque sea por azar, y te encuentres con que están intentando acceder a tu cuenta por fuerza bruta. Hay varios métodos muy recomendables para evitarlo, pero aún así si te dejaste «olvidada» tu contraseña en algún sistema que fue comprometido, bueno, se te pueden meter hasta la cocina.

En este post te comento cómo configurar ubuntu 24.04 (probablemente funcione igual en otras distribuciones) para que te pida un segundo factor de seguridad (que tendrás en el teléfono) y puedes usar google authenticator o cualquier otro sistema compatible on TOTP (códigos generados dependientes del tiempo).

Paso 1:

sudo apt install libpam-google-authenticator

Paso 2:

Añade la siguiente línea al archivo /etc/pam.d/sshd

auth requiered pam_google_authenticator.so

Modifica el archivo /etc/ssh/sshd_config para cambiar y descomentar este valor:

KbdInteractiveAuthentication yes

Ahora reinicia el servicio ssh

sudo systemctl restart ssh

Y ya es momento de configurar tu authenticator

google-authenticator

Te mostrará un QR enorme en pantalla que podrás escanear con tu app de authenticator (yo uso nomorepass) o bien copiar la secret key. Luego siempre puedes copiar los códigos de mergencia por si pierdes el acceso al teléfono (y no los guardes en donde no debes, que nos conocemos)…

Luego ya configuras el resto de cosas de seguridad a los valores recomendados y ya estaría.

Ahora la siguiente vez que intentes entrar te pedirá la constraseña y el código de verificación… Una puerta menos para los hackers.