Cómo funciona

Qué pasa cuando alguien escribe «investígalo»

Escribir una petición debería dar lo mismo que elegirla en el menú. Hacerlo con una lista de palabras clave falla en siete idiomas; hacerlo con un modelo en cada mensaje es lento y caro. Qué medimos, por qué el enrutador tiene dos pasos y por qué la misma frase se enruta distinto cuando hay un documento abierto.

El + junto al cuadro de mensaje es el menú de capacidades: investiga esto a fondo, escríbeme un documento, hablar con una persona. Casi nadie lo abre. La gente escribe la petición: «investígalo», «查查看», «もっと深く調べて». Si escribirla hace algo distinto de elegirla, el menú se convierte en decoración.

Por eso la plataforma enruta los mensajes escritos hacia esas mismas capacidades. Esta página explica cómo, porque las dos implementaciones obvias fallan, y conviene conocer esos fallos antes de construir algo parecido.

Por qué pierde una lista de palabras clave

Una lista de frases de activación tiene que estar bien en todos los idiomas que soportas, y tiene que sobrevivir a cómo escribe la gente de verdad:

  • investigalo porfa — sin tilde y abreviado: la lista no encuentra nada.
  • «研究一下呗» — una forma de decirlo que a nadie se le ocurrió añadir.
  • profundiza un poco más en eso — no aparece ni una palabra de la lista.

Puedes seguir añadiendo frases. Lo que no puedes es terminar. Cada idioma nuevo multiplica la lista, y los fallos son silenciosos: la persona escribió una petición, recibió una respuesta corriente, y no tiene forma de saber que existía una función que lo habría resuelto.

Por qué también pierde consultar al modelo en cada mensaje

La otra opción evidente —preguntar a un modelo pequeño «¿esta persona está activando una capacidad?» en cada mensaje— acierta lo suficiente, pero pone una llamada al modelo delante de cada mensaje, incluida la gran mayoría que son preguntas corrientes. Eso es latencia que el visitante nota y coste que pagas en mensajes donde la respuesta nunca estuvo en duda.

Dos pasos: una puerta barata y luego un veredicto

El enrutador es una puerta de embeddings seguida de un veredicto del modelo.

Paso uno: embeddings. Cada capacidad tiene unas cuantas frases ancla; y hay además un conjunto compartido de contraejemplos: respuestas cotidianas que quedan cerca, en significado, de las frases de activación. El mensaje se compara con ambos. Los embeddings son multilingües, así que un solo conjunto de anclas cubre los siete idiomas: «深挖一下» y «research it» caen en la misma región del espacio. Si nada queda cerca, el enrutador se detiene aquí y no se llama a ningún modelo.

Paso dos: el modelo. Si parece que están pulsando un botón, un modelo pequeño elige una capacidad entre las candidatas, o dice ninguna.

El orden importa, y es el contrario del que probamos primero. Los embeddings son buenos para «¿tiene esta frase forma de petición?» y malos para «¿esta persona quiere usar la función o está preguntando por ella?» — How does your deep research feature work? es idéntico a una activación. Y esa distinción es justo lo que el modelo hace bien. Así que el paso barato filtra y el preciso decide.

Para qué sirven los contraejemplos

Las anclas por sí solas no separan tell me more de dig deeper: son genuinamente cercanas en significado. Lo que las separa es tener tell me more en el conjunto de contraejemplos, de modo que el vecino más cercano sea una respuesta corriente y no una activación. Dos categorías hubo que añadirlas después de que fallaran en pruebas:

CategoríaEjemploQué pasaba sin ella
Seguimientos cortos¿y en Tokio?Se enrutaba a investigación profunda
Preguntas sobre un término desconocidoqué es ANVISASe leía como «ve a buscarlo»
Preguntas largas del mismo tema«我这个产品在当地属于哪一类»Empezaba a escribir un documento que nadie pidió
«Ordena lo que acabas de decir»«把刚才说的整理一下发我邮箱»Se leía como «escribe un documento nuevo»

La tercera es la instructiva. Las anclas de escríbeme un documento tienen que ser frases largas (las anclas cortas puntúan mal frente a peticiones largas), y cualquier ancla larga arrastra inevitablemente la temática del agente. Así que una pregunta larga sobre esa misma temática trepa por la escala de similitud: medimos una en 0,711, por encima de frases que sí estaban pidiendo un documento.

Los números

Medido sobre 110 muestras escritas de forma independiente (60 que deben activar, 50 que no), en siete idiomas, con formulaciones deliberadamente distintas de las anclas:

EnrutadorAciertos
Solo embeddings84,5 %
Puerta de embeddings + veredicto del modelo95,5 %

El umbral de la puerta no se eligió por gusto: se barrió cada valor contra las mismas muestras.

UmbralLlamadas al modeloPeticiones reales detectadas (de 60)Falsas activaciones (de 50)
0,00110609
0,45100607
0,5588605
0,6077594
0,7071593

0,55 es la última fila en la que todavía no se ha perdido ninguna petición real. Por encima, cada falsa activación que quitas cuesta una petición real — y la muestra no es lo bastante grande para que una diferencia de uno o dos signifique algo, así que no cambiamos cobertura por ruido.

La misma frase, dos significados

«Añade una sección sobre la vía brasileña.»

Sin documento abierto, es una petición de escribir algo. Con un documento abierto al lado, es una petición de cambiar ese documento. Las mismas palabras, distinta respuesta — y equivocarse sale más caro de lo que parece: alguien que estaba trabajando en un informe pidió añadir una sección y se creó un segundo documento aparte.

El primer arreglo fue una regla: mientras haya un documento abierto, nunca enrutar a escribir un documento. Cortó el fallo y rompió otra cosa: quien de verdad quería un segundo documento ya no podía pedirlo. Una segunda regla (una petición de gráfico debe contener literalmente la palabra «gráfico») tenía la misma forma y el mismo coste: no reconocía «enséñame esos números de otra manera».

Reglas sobre reglas es la señal de que está decidiendo el componente equivocado. Ahora el contexto entra en el propio veredicto: se le dice al modelo que hay un documento abierto y se le da una opción más, editar el documento abierto, que no enruta a nada — porque las herramientas de edición ya están disponibles en ese turno y son las que deben encargarse. Los dos fallos originales siguen arreglados y las dos peticiones reales vuelven a funcionar.

Una asimetría deliberada: si el modelo no está disponible y el enrutador tiene que caer en la suposición del embedding, el listón sube mientras hay un documento abierto. Un error ahí secuestra el turno entero — quien estaba hablando de una ventana de revisión de 21 días recibe «no puedo dibujar un gráfico de una ventana de revisión de 21 días» — mientras que el mismo error en una conversación normal produce, como mucho, un gráfico de más.

Qué significa esto para tu agente

  • Solo se pueden activar por escrito las capacidades que están en el menú de tu agente. Si no has activado la investigación profunda, quien la pida recibirá una respuesta corriente, no una función que no contrataste.
  • No escribes frases de activación. No hay lista de palabras clave por inquilino que mantener, en ningún idioma.
  • Una petición que necesita un tema y no lo trae vuelve como un cuadro rellenado, no como una suposición. Quien escribe «investígalo» sin tema claro ve el tema escrito en el cuadro de mensaje, donde puede corregirlo antes de enviar: el coste de acertar mal baja de un minuto perdido a una corrección de dos palabras.