PerchAI
Cómo funciona

Memoria

Perch ejecuta tres sistemas de memoria a la vez: archivos de proyecto que son tuyos, memoria duradera de la cuenta recuperada mediante búsqueda híbrida y aprendizaje capturado a partir de tus correcciones. Aquí verás qué hace cada uno y cómo llega al modelo.

La mayoría de los harness de agentes incluyen un solo sistema de memoria, por lo general un archivo que editas a mano. Perch ejecuta tres, y hacen trabajos realmente distintos. Los archivos de proyecto contienen las reglas permanentes de un trabajo. La memoria duradera contiene lo que es cierto sobre ti en todos ellos. La captura de aprendizaje convierte tus correcciones en memoria sin que tengas que anotar nada.

Esta página cubre los tres y luego la parte que más importa: cómo llega realmente algo de eso al modelo en un turno determinado, y cómo puedes ver exactamente qué llegó.

En pocas palabras

Los archivos que son tuyos contienen las reglas. La memoria duradera contiene lo que Perch ha aprendido sobre ti. Las correcciones la retroalimentan. Un paso de admisión con presupuesto decide qué cabe en la ventana en cada turno y te muestra su razonamiento.

Capa uno: memoria del proyecto

La memoria del proyecto vive en el disco, en la carpeta en la que estás trabajando. Es markdown simple, es tuya y puedes leer o editar cualquier parte sin pasar por Perch.

RutaQué contiene
.perch/PERCH.mdEl manual del proyecto. Instrucciones permanentes que Perch sigue en cada turno en esta carpeta.
.perch/memory/*.mdArchivos de memoria individuales, un dato o una nota por archivo.
.perch/rules/Reglas del proyecto, separadas de la prosa para poder aplicarlas de forma estricta.
~/Documents/Perch/PERCH.mdManual global. Se aplica en todas las carpetas, no solo en esta.

PERCH.md es el lugar indicado para todo lo que le dirías a un compañero nuevo que se une al proyecto: las convenciones de este caso, el formato de salida para este cliente, las rutas que importan, las cosas que nunca hay que tocar sin preguntar. Perch lo lee en cada turno en esa carpeta y lo sigue por encima de sus propios valores predeterminados.

Perch puede escribir en estos archivos por su cuenta cuando le pides que recuerde algo, pero el resultado siempre es un archivo que puedes abrir. Nada de la memoria del proyecto está oculto para ti.

Junto con los archivos, la app de escritorio aporta metadatos sobre el alcance de la carpeta para el turno: el nombre del proyecto, tus notas, un resumen de la memoria y la raíz preferida. Así es como Perch sabe en qué proyecto está antes de leer un solo archivo.

Capa dos: memoria duradera

La memoria duradera es a nivel de cuenta y no a nivel de carpeta. Contiene lo que sigue siendo cierto sobre ti mientras pasas de un proyecto a otro y de una plataforma a otra: tu rol, tus convenciones, cómo te gusta que se presenten los resultados, los datos que le dijiste a Perch una vez y que no deberías tener que repetir.

No es un bloque único que se pega en cada prompt. Es un conjunto de tarjetas individuales, y en cada turno se ejecuta un paso de recuperación para decidir cuáles valen los tokens que ocupan.

Cómo funciona la recuperación

Perch busca en la memoria duradera de dos formas a la vez y combina los resultados:

  • Búsqueda semántica sobre embeddings, que encuentra tarjetas que significan lo mismo que el turno actual aunque la redacción sea distinta.
  • Búsqueda dispersa por palabras clave, que detecta términos exactos, nombres e identificadores que los embeddings suelen difuminar.

Las dos listas ordenadas se combinan con reciprocal rank fusion, así una tarjeta que ambos métodos clasifican moderadamente bien supera a una tarjeta que solo uno de ellos adora. Después, la puntuación combinada se ajusta según la confianza propia de la tarjeta y según qué tan recientemente se escribió, y se admiten los mejores resultados.

Si los embeddings no están disponibles, la recuperación se degrada en orden en lugar de fallar: híbrida, luego solo semántica, luego solo dispersa y, por último, solo por lo más reciente. Obtienes una recuperación peor, nunca un turno roto.

Qué incluye cada tarjeta

Cada tarjeta de memoria duradera admitida en un turno trae sus propios metadatos, que es lo que hace que el sistema se pueda inspeccionar en lugar de parecer magia:

  • Tipo y alcance, que indican qué clase de memoria es y qué tan ampliamente se aplica.
  • Una etiqueta de vigencia y una marca de obsoleta cuando una tarjeta ha envejecido más allá del punto en que se debería confiar en ella sin comprobarla.
  • Una puntuación de confianza, expresada como porcentaje.
  • Una marca de truncamiento, que se activa cuando hubo que acortar la tarjeta para que cupiera en el presupuesto de memoria de ese turno.
  • Las razones por las que se recuperó, que vienen del paso de búsqueda.

Capa tres: aprender de las correcciones

El tercer sistema es el que nunca operas. Cuando corriges a Perch, esa corrección se captura como un evento. La captura de aprendizaje lee esos eventos y puede proponer nuevas memorias permanentes a partir de ellos.

Esta es la diferencia entre una herramienta que recuerda lo que escribiste en una página de ajustes y una que recuerda que le dijeron que estaba equivocada. Corregir a Perch una vez es la forma prevista de enseñarle, y no tienes que ir además a anotar la lección en otro lado.

Cómo llega la memoria al modelo

Tener tres sistemas de memoria solo es útil si lo que contienen realmente llega al contexto del modelo, y lo difícil es que el contexto es finito. Perch resuelve esto con carriles ordenados bajo un presupuesto de tokens.

En cada turno, el contenido se organiza en carriles con nombre y se admite en orden hasta agotar el presupuesto. Entre los carriles están la memoria del proyecto, la memoria permanente, la evidencia del hilo, la evidencia de las herramientas, los archivos, las herramientas, las skills seleccionadas y el modelo seleccionado, con una reserva apartada para la propia salida del modelo, así una respuesta larga nunca queda truncada por su propio contexto.

Dos propiedades hacen que valga la pena entender esto:

  • La admisión es explícita. Cuando algo no entra en el turno, es una decisión con una razón registrada, no algo que se descarta en silencio.
  • Cada sección lleva una razón. Cada parte del contexto admitido tiene una breve explicación de por qué está ahí, y las secciones omitidas registran por qué no entraron.

Los carriles y la compactación son cosas distintas

Los carriles deciden qué entra en la ventana al inicio de un turno. La compactación decide qué sale cuando una ejecución larga empuja contra el límite. Necesitas ambos, y funcionan en extremos opuestos del mismo problema.

Ver con qué está trabajando Perch

Como cada sección admitida lleva su carril, su etiqueta y su razón, la app de escritorio puede mostrarlo todo. El panel Context Window muestra el contexto del turno como filas, con cada tarjeta de memoria duradera en su propia fila con su estado, su vigencia y su confianza.

Esta es la respuesta a la pregunta que tarde o temprano surge con cualquier herramienta de agentes: "¿por qué hizo eso?". Puedes ver lo que realmente se le dio al modelo.

Mantener el control

La memoria del proyecto son archivos simples. Ábrelos, edítalos, elimínalos o agrégalos al control de versiones junto con el resto del proyecto. La memoria duradera está vinculada a tu cuenta y te acompaña en el chat web, la app de escritorio y la CLI, así lo que Perch aprende en una plataforma está disponible en las demás.

Cuando una afirmación más reciente contradice una anterior, Perch prefiere la más reciente. Corregir a Perch es el mecanismo de actualización, y está pensado para ser así de simple.