This content originally appeared on DEV Community and was authored by A. Sinai Rivera
TL;DR
En este lab vas a construir un Bedrock Agent totalmente funcional que puede:
- Leer tus documentos en S3
- Extraer información
- Ejecutar funciones
- Responder preguntas de forma estructurada
- Razonar paso a paso usando Amazon Nova Micro
Todo 100% desde la consola, sin Studio ni código manual.
Aprenderas a:
Crear el bucket, subir PDFs, crear un Agent, añadir Actions, conectar S3, probar preguntas reales y validar respuestas con grounding.
Tiempo estimado: 20–30 min
Servicios: Bedrock Agents, S3, IAM
Costo: Muy bajo (< $0.25)
Decidí crear este lab porque quiero entender cómo funcionan los agentes de IA en AWS de forma simple, práctica y explicable. Quiero poder guiar a otros, enseñar conceptos de GenAI sin complejidad innecesaria y construir demos útiles para mi portfolio técnico.
🧭 Metadatos rápidos
| Campo | Valor |
|---|---|
| Categoría CB | AI/ML |
| Servicios AWS | Amazon Bedrock Agents, Amazon S3 |
| Requisitos previos | Cuenta AWS, S3 + Bedrock habilitados, región us-east-1 |
| Costos estimados | Bajo (< $.25) |
| Arquitectura | Ver diagrama |
🗺️ Tabla de contenidos (ToC)
- ¿Por qué importa?
- Arquitectura / Qué vas a construir
- Prerrequisitos
- Paso a paso
- Errores
💡 ¿Por qué importa?
Las empresas están migrando de “solo usar LLMs” a construir agentes inteligentes con pasos bien definidos, acceso a datos y grounding real.
Un agente puede:
- Planear
- Razonar
- Recuperar datos
- Ejecutar acciones
- Responder en contexto sin que tú tengas que escribir el pipeline completo.
🧰 Arquitectura
📄 PDFs en S3
⬇️
⚙️ Bedrock Agent Action
⬇️
🤖 Amazon Nova Micro razonando
⬇️
💬 Respuesta final basada en tus documentos
🛠️ PASO 1 — Crear el bucket S3 (para tus documentos)
- En la consola AWS, busca S3
- Clic en Create bucket.
- Configura:
- Bucket name: kb-agent-sina-lab
- Region: us-east-1
- Block Public Access: ON (todas)
- Versioning: OFF
- Encryption: SSE-S3 (default)
- Clic en Create bucket
🛠️ PASO 2 — Subir los documentos a tu bucket S3
Vamos a subir los tres PDFs que acabas de crear.
2.1 Ir al bucket
- En la consola AWS, ve a S3
- Haz clic en tu bucket: kb-sina-agent-lab (o el nombre que hayas puesto)
2.2 Subir los archivos
- Haz clic en Upload
- Luego clic en Add files
- Selecciona:
- company-overview.pdf
- internal-policies.pdf
- service-pricing.pdf
- Haz clic en Upload
2.3 Confirma que están ahí
En tu bucket S3 deberías ver ahora los documentos
🛠️ PASO 3 Crear tu Bedrock Agent
3.1 Abrir Amazon Bedrock
- En la consola AWS, en el buscador superior escribe: Bedrock
- En el menú de la izquierda, selecciona: Agents
3.2 Crear un agente nuevo
- Haz clic en el botón Create agent
- Llena estos campos:
- Agent name: sina-agent-rag-lab
- Description: Agente que responde preguntas usando documentos internos almacenados en Amazon S3 mediante acciones automáticas.
- Click create.
- Selecciona el modelo del agente.Para este lab usaremos:Amazon Nova Micro (el modelo gratuito + seguro + recomendado por AWS para agents)
- Instrucciones para el agente: Eres un asistente corporativo diseñado para responder preguntas usando exclusivamente la información contenida en los documentos internos de la compañía almacenados en Amazon S3.
- Clic save.
🛠️ PASO 4 Crear el Action Group que lee S3
4.1. Busca la sección de Action groups:
- Haz clic en: Add
- Action group name: read-company-docs
- Description (opcional): read documents from S3 and retrieve relevant content
- Action group type: Select define with function details (tú describes qué hace la función (nombre, descripción, tipo de acceso S3) y Bedrock te genera la Lambda automáticamente)
- Action group invocation: Select quick create a new lambda.
4.2 Action group function
- name: get_company_policy
- Description: Function that searches for information within the corporate documents stored in S3. It simulates retrieving internal policies, processes, or relevant details to answer the user’s questions.
4.3 Parameters: Tu agent necesita saber qué información debe enviarle a la función Lambda cuando quiera usarla.
- Clic en Add parameter
- Name: query
- Description: user question looking info
- Type: String
- Required: True
- Clic Create
🛠️ PASO 5 Guardar y preparar el agente
Una vez creado el Action Group:
- Clic arriba en Save
- Luego clic en Prepare (esto valida instrucciones + modelo + actions)
🛠️ PASO 6 Test Agent
En este paso vamos a probar el agente haciendo una serie de preguntas relacionadas al documento de la empresa que tenemos en el bucket S3
6.1. En la parte derecha de tu pantalla veras test agent
- Dentro de tu agente:
- En el recuadro vacio escribe una pregunta real basadas en los PDFs que generaste:
- "Que dice la compania acerca de la vision o la mision"
ERROR
Aqui recibimos un error y gracias a los servicios de AWS podemos investigar el error que nos dio y como resolverlo.
🛠️ Paso 7 Resolver el error de respuesta
Podemos resolver el problema de varias maneras. Una forma es buscando el error y leer específicamente donde surgió el error. Sin embargo, si eres nuevo y no tienes mucha experiencia leyendo código, AWS tiene un recurso llamado Amazon Q.
Amazon Q es chatbox que te permite hacerle preguntas acerca de lo que estás construyendo y te ayuda a resolver.
Vamos a hacer esa opción primero.
7.1 En el mensaje de error clic en show trace
- Clic en Trace step 1
- En la parte superior derecha verás el icono de Amazon Q
7.2 Pregunta a Amazon Q
En el cuadro en blanco escribe la pregunta "Por qué mi agente dice que no tiene la disponibilidad de ayudarme con mi solicitud"
Segun Amazon Q, las posibles causas son:
Causas Comunes y Soluciones:
1. Problema de Permisos y roles
Permisos IAM: Verifica que el rol de servicio de tu agente tenga los permisos necesarios para invocar el modelo base.
2. Problemas de Configuración del Agente
Claridad en las instrucciones: Las instrucciones de tu agente pueden ser demasiado restrictivas o poco claras. Intenta simplificarlas y especificar mejor qué debe hacer el agente.
Nombres de grupos de acciones: Si estás usando action groups, evita usar guiones (-) en los nombres; utiliza guiones bajos (_) en su lugar.
🛠️ Paso 8 Resolvamos
Vamos a resolver cada una de las recomendaciones de Amazon Q
8.1 Identificar el service role de tu agente
- Ve a Amazon Bedrock en la consola.
- En el menú izquierdo, entra en Agents.
- Haz clic en tu agente.
- En la pantalla del agente, busca: "Permissions" en azul.
8.2 Revisar los permisos del rol
- Dentro del rol:Ve a la pestaña Permissions.
- En Permissions policies revisa qué políticas están adjuntas.
- Haz clic
En el capture se ve que:
AmazonBedrockAgentBedrockFoundationModelPolicy_S1GQAOZ17SK
solo tiene access level limitado a leer unicamente, lo que significa que
❌ NO puede invocar modelos
❌ NO puede llamar a Nova Micro
❌ NO puede generar respuestas
✔️ Solo puede leer metadata
8.3. Vamos a arreglarlo
- Haz clic en "JSON" arriba a la derecha
- En tu screenshot está el botón: JSON
- Haz clic en editar y borra lo politica actual
- Pega la siguiente politica:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AmazonBedrockAgentBedrockFoundationModelPolicyProd",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*"
}
]
}
- Clic Next y luego guarda
8.4 Probemos el agente nuevamente
- En tu agente ve a action details
- Selecciona: Edit in Agent builder
- Clic save and exit
- Clic Prepare
- Formula nuevamente la pregunta
❌ Error😆😆😆😆
Si esto no solucionó el problema, debemos avanzar a la próxima causa posible
🛠️ Paso 9 Resolvamos Causa numero 2:
Problemas de Configuración del Agente
9.1 Revisar y simplificar las Agent instructions
- Ve a Amazon Bedrock → Agents.
- Haz clic en tu agente.
- En el panel del agente, busca la sección: Instructions
Solucion 1:
La palabra EXCLUSIVELY es la que mata el agente.
¿Qué pasa? Si el agente NO encuentra información en S3 que responda exactamente la pregunta…por diseño tiene que bloquear la respuesta.
Y la respuesta por defecto del agente cuando no puede cumplir la instrucción es: “Sorry, I am unable to assist you with this request.”
Cambiar las instrucciones del agente
Reemplaza tu prompt completo por este:
You are a helpful corporate assistant. Use information from the company's internal documents stored in Amazon S3 when it is relevant. If the information is not available, provide the best possible answer based on your general reasoning and politely indicate when the exact information is not found.
Solucion 2
El action group tiene un nombre inválido. El action group se llama: read-company-docs
Los guiones - causan fallas en Bedrock Agents 2024–2025.
- Cambia de read-company-docs a read_company_docs
- Clic save
- Clic Prepare
- Formula nuevamente la pregunta
Posible error 😆😆😆😆 Respuesta incompleta
A pesar de que el agente respondió la pregunta, estaba incompleta. ¿Qué hacemos en este caso? Veamos el trace para determinar las posibles causas del mensaje recibido
- En el mensaje de error clic en show trace
- Clic en Trace step 1
- Copia el código y pégalo nuevamente en Amazon Q
Basado en Amazon Q, estos son las posibles causas de la respuesta incompleta:
1 . El agente está mostrando "[retrieved information]" porque:
Las instrucciones o prompts internos están escritos como si existiera una Knowledge Base, pero no tenemos una Knowledge Base conectada y además estamos usando Action Groups, que NO necesitan Knowledge Base.
Por eso, cualquier frase dentro del agente que diga:
- “según la información recuperada…”
- “based on the retrieved information…”
- “from the knowledge base…”
- o el placeholder literal "[retrieved information]"
no se puede reemplazar por nada, porque no hay una fuente de datos para recuperarlo.
2. El agente entonces devuelve el placeholder tal cual, creando la confusión.
Entonces, hay algún texto dentro de las instrucciones o en el Prompt templates o en el Action group outputs que contiene placeholders o instrucciones que asumen una Knowledge Base.
🛠️Paso 10 Resolvamos
10.1 Revisemos la instruccion nuevamente y eliminemos cualquier mención a:
- Knowledge Base
- Documentos internos
- Información recuperada
- Placeholders como [retrieved information]
El agente debe trabajar solo con Action Groups, no con documentos.
¿Qué está mal aquí?
- Menciona documentos internos
- Menciona S3
- Le dice al agente que SOLO puede responder usando “documentos”
Esto obliga al agente a buscar retrieved information → pero no hay Knowledge Base
Cambiemos la instruccion a:
You are a corporate assistant designed to answer questions using the information provided by the system and the available action groups. Do not assume information; always rely on the results returned by the actions.
- Clic save
- Clic Prepare
- Formula nuevamente la pregunta
El agente deberia de responder, sin embargo esta pidiendo el nombre de la compañía. Vamos a responderle y ver que respuesta genera
Hice otra pregunta:
¿Que dice la compañía acerca de la confidenciabilidad?
Pregunta acerca de la información de confidenciabilidad
¿Que dice acerca de la politica de confidenciabilidad?
A este punto, a pesar de que respondió la pregunta, debería ser mas sencillo y es probable que haya un error.
Aunque este lab no terminó con una solución perfecta, decidí dejar el último error abierto a propósito. La comunidad crece cuando compartimos no solo lo que logramos, sino también lo que nos reta.
Para mí, tambien es valioso abrir el proceso, mostrar los aprendizajes reales y crear espacios donde otros también puedan aprender, aportar y mejorar este camino juntos.
Más adelante les mostraré l aparte dos de este proyecto, pero por ahora, lo importante es construir comunidad a través de la transparencia y el aprendizaje compartido.
🧯 Errores que se presentaron:
| Síntoma | Causa probable | Solución aplicada / aprendida |
|---|---|---|
| “Sorry, I am unable to assist with this request.” | El rol del agente no tenía permisos para bedrock:InvokeModel
|
Ajustar política IAM en JSON para permitir invocación del modelo. |
| El agente pide aclaraciones (ej. “¿Cuál es el nombre de la compañía?”) | Activación automática de user__askuser por orquestación interna |
Añadir reglas en las instrucciones del agente para evitar clarificaciones. |
Placeholder [retrieved information] aparece en la respuesta |
Instrucciones asumían un Knowledge Base inexistente | Actualizar instrucciones para usar únicamente Action Groups. |
| Action Group no se ejecuta | Parámetro obligatorio o nombre inválido con guiones | Marcar required = false y renombrar con _. |
| Respuestas incompletas | Doble <thinking> o estructura inválida |
Forzar un solo <thinking> seguido de un <answer>. |
| Lambda sin devolver contenido útil | Lambda auto-generada sin lógica | Reemplazar con una función que lea archivos del bucket. |
📚 Recursos oficiales
Amazon Bedrock Agents
https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html
Action Groups
https://docs.aws.amazon.com/bedrock/latest/userguide/agents-actions.html
S3 — Developer Guide
https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html
IAM Policies
https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
AWS Samples Repository
https://github.com/aws-samples
This content originally appeared on DEV Community and was authored by A. Sinai Rivera
A. Sinai Rivera | Sciencx (2025-11-22T01:14:55+00:00) Mi Agente se Rebeló: Intentando Crear un Bedrock Agent con S3 (y el Famoso Error ‘[retrieved information]’. Retrieved from https://www.scien.cx/2025/11/22/mi-agente-se-rebelo-intentando-crear-un-bedrock-agent-con-s3-y-el-famoso-error-retrieved-information/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.

























