Repository navigation
El agente busca en internet (web_search + web_fetch de Anthropic) - #145
Merged
Merged
Conversation
Hasta ahora solo llegaba a internet con curl desde bash: no podía buscar, y las páginas con JavaScript o bloqueos le salían mal. Ahora tiene las dos herramientas que corren del lado de Anthropic, con topes de 5 por llamada y 20k tokens por página leída. - Los bloques de esas herramientas se guardan crudos y vuelven idénticos (traen encrypted_content; si cambian es un 400). - pause_turn se retoma sin mensaje nuevo, pegado al mismo mensaje, hasta 3. - Si busca junto con una tool nuestra, el mensaje de resultados solo lleva tool_result: las capturas esperan al siguiente. - Lo guardado entre turnos ya no carga las búsquedas. - La Sala muestra "Buscando en internet …" y "Leyendo sitio". - Filtrado dinámico (_20260318) en 4.6 en adelante; básicas en Haiku 4.5. - demo:internet (35 checks) en el CI y probar:internet contra la API real. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HJ5oT2Xm3VZMvbPAcgKbz4
…a de que buscó La prueba real contra la API sacó dos cosas: - Sonnet 5.5 no llama web_search directo: lo llama desde el código del filtrado (code_execution), y la llamada de adentro no viene en la respuesta. La Sala no iba a enseñar nada. Ahora se saca la búsqueda y la URL del código (busquedasEn). - Al guardar se quitaban las búsquedas completas, y en el turno siguiente el agente dijo que "no buscó, lo escribió de memoria" sobre un dato que sí sacó del INEGI. Ahora queda una nota corta con lo que buscó y leyó. demo:internet sube a 40 checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HJ5oT2Xm3VZMvbPAcgKbz4
La doc de Anthropic (context editing) dice que el historial se guarda completo y que recortar lo hace la API de su lado con context_management, no el cliente. Lo habíamos hecho al revés: quitar las búsquedas al guardar y dejar una nota. En la prueba real el agente contestó en el turno siguiente que "no hizo la búsqueda, lo sacó de memoria" sobre un dato que sí sacó del INEGI, con nota y todo. Ahora solo se quita una búsqueda que se quedó sin correr (un turno cerrado a media pausa), que sí daría un 400. Con el filtrado una búsqueda deja unos 1,500 tokens, leídos del caché. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HJ5oT2Xm3VZMvbPAcgKbz4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Qué cambia
Hasta ahora el agente solo llegaba a internet con
curldesde bash. No podía buscar, y las páginas con JavaScript o con bloqueos le salían mal. Ahora usa las dos herramientas de Anthropic que corren de su lado,web_searchyweb_fetch. Solo aplica con el proveedor Anthropic.Herramientas
max_content_tokensde 20k por página. Cada búsqueda cuesta US$0.01; leer una página no se cobra aparte, solo sus tokens._20260318con filtrado dinámico yresponse_inclusion: "excluded"en 4.6 y posteriores. Haiku 4.5 y los nombres de modelo que no reconoce usan las básicas.Historial
ContentBlocknuevo,crudo, guarda los bloques de Anthropic tal como llegan y los regresa idénticos, porque la API valida suencrypted_content.context_management. Solo se quita una búsqueda que se quedó sin correr, porque esa daría 400 en el siguiente mensaje.Loop
pause_turnse retoma sin un mensaje nuevo del usuario, hasta 3 veces.tool_result, y las capturas se mandan con los resultados siguientes.Sala
busquedasEnpara mostrarla.Pruebas
npm run typecheck,npm run buildy todas las demos del CI pasan.demo:internet: nueva en el CI, 39 checks, sin red ni key.npm run probar:internetcontra la API real, en el VPS. Pasó dos veces sin un solo 400:datos.txtcon la fuente del INEGI y sigue en un segundo turno;🤖 Generated with Claude Code
https://claude.ai/code/session_01HJ5oT2Xm3VZMvbPAcgKbz4