---
layout: default
---

# Placeholder Variables

<div class="mt-8 text-sm">

<v-click>

<div class="mb-6">

**MessagesPlaceholder**: Insertar arrays de mensajes dinámicamente en templates

</div>

</v-click>

<v-click>

```typescript
import { ChatPromptTemplate, MessagesPlaceholder } from "@langchain/core/prompts";

const template = ChatPromptTemplate.fromMessages([
  ["system", "Eres un asistente útil"],
  new MessagesPlaceholder("history"),  // Array de mensajes
  ["human", "{input}"]
]);

const response = await model.invoke(
  await template.invoke({
    history: [
      new HumanMessage("Hola"),
      new AIMessage("¡Hola! ¿En qué puedo ayudarte?")
    ],
    input: "¿Qué tiempo hace?"
  })
);
```

</v-click>

<v-click>

<div class="mt-2 text-xs text-gray-500">
💡 <code>["system", "..."]</code> y <code>["human", "..."]</code> son la forma abreviada de <code>SystemMessage</code> y <code>HumanMessage</code> en <code>ChatPromptTemplate</code>
</div>

</v-click>

</div>
