mirror of
https://github.com/simstudioai/sim.git
synced 2026-02-16 17:35:49 -05:00
feat(i18n): update translations (#1496)
This commit is contained in:
@@ -175,33 +175,7 @@ Utiliza un bloque `Memory` con un `id` consistente (por ejemplo, `chat`) para pe
|
||||
- Lee el historial de conversación para contexto
|
||||
- Añade la respuesta del agente después de que se ejecute
|
||||
|
||||
```yaml
|
||||
# 1) Add latest user message
|
||||
- Memory (operation: add)
|
||||
id: chat
|
||||
role: user
|
||||
content: {{input}}
|
||||
|
||||
# 2) Load conversation history
|
||||
- Memory (operation: get)
|
||||
id: chat
|
||||
|
||||
# 3) Run the agent with prior messages available
|
||||
- Agent
|
||||
System Prompt: ...
|
||||
User Prompt: |
|
||||
Use the conversation so far:
|
||||
{{memory_get.memories}}
|
||||
Current user message: {{input}}
|
||||
|
||||
# 4) Store the agent reply
|
||||
- Memory (operation: add)
|
||||
id: chat
|
||||
role: assistant
|
||||
content: {{agent.content}}
|
||||
```
|
||||
|
||||
Consulta la referencia del bloque `Memory` para más detalles: [/tools/memory](/tools/memory).
|
||||
Consulta la referencia del bloque [`Memory`](/tools/memory) para más detalles.
|
||||
|
||||
## Entradas y salidas
|
||||
|
||||
@@ -212,7 +186,7 @@ Consulta la referencia del bloque `Memory` para más detalles: [/tools/memory](/
|
||||
<strong>Prompt del sistema</strong>: Instrucciones que definen el comportamiento y rol del agente
|
||||
</li>
|
||||
<li>
|
||||
<strong>Prompt del usuario</strong>: Texto de entrada o datos a procesar
|
||||
<strong>Prompt del usuario</strong>: Texto o datos de entrada para procesar
|
||||
</li>
|
||||
<li>
|
||||
<strong>Modelo</strong>: Selección del modelo de IA (OpenAI, Anthropic, Google, etc.)
|
||||
@@ -231,13 +205,13 @@ Consulta la referencia del bloque `Memory` para más detalles: [/tools/memory](/
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>agent.content</strong>: Texto de respuesta o datos estructurados del agente
|
||||
<strong>agent.content</strong>: Texto de respuesta del agente o datos estructurados
|
||||
</li>
|
||||
<li>
|
||||
<strong>agent.tokens</strong>: Objeto de estadísticas de uso de tokens
|
||||
<strong>agent.tokens</strong>: Objeto con estadísticas de uso de tokens
|
||||
</li>
|
||||
<li>
|
||||
<strong>agent.tool_calls</strong>: Array de detalles de ejecución de herramientas
|
||||
<strong>agent.tool_calls</strong>: Array con detalles de ejecución de herramientas
|
||||
</li>
|
||||
<li>
|
||||
<strong>agent.cost</strong>: Costo estimado de la llamada a la API (si está disponible)
|
||||
@@ -247,7 +221,7 @@ Consulta la referencia del bloque `Memory` para más detalles: [/tools/memory](/
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>Contenido</strong>: Salida de respuesta principal del agente
|
||||
<strong>Contenido</strong>: Salida principal de respuesta del agente
|
||||
</li>
|
||||
<li>
|
||||
<strong>Metadatos</strong>: Estadísticas de uso y detalles de ejecución
|
||||
@@ -267,15 +241,15 @@ Consulta la referencia del bloque `Memory` para más detalles: [/tools/memory](/
|
||||
<h4 className="font-medium">Escenario: Gestionar consultas de clientes con acceso a base de datos</h4>
|
||||
<ol className="list-decimal pl-5 text-sm">
|
||||
<li>El usuario envía un ticket de soporte a través del bloque API</li>
|
||||
<li>El agente verifica pedidos/suscripciones en Postgres y busca en la base de conocimientos para obtener orientación</li>
|
||||
<li>El agente verifica pedidos/suscripciones en Postgres y busca en la base de conocimientos</li>
|
||||
<li>Si se necesita escalamiento, el agente crea una incidencia en Linear con el contexto relevante</li>
|
||||
<li>El agente redacta una respuesta clara por correo electrónico</li>
|
||||
<li>Gmail envía la respuesta al cliente</li>
|
||||
<li>La conversación se guarda en Memoria para mantener el historial para mensajes futuros</li>
|
||||
<li>La conversación se guarda en Memory para mantener el historial para mensajes futuros</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
### Análisis de contenido multi-modelo
|
||||
### Análisis de contenido con múltiples modelos
|
||||
|
||||
<div className="mb-4 rounded-md border p-4">
|
||||
<h4 className="font-medium">Escenario: Analizar contenido con diferentes modelos de IA</h4>
|
||||
@@ -287,13 +261,13 @@ Consulta la referencia del bloque `Memory` para más detalles: [/tools/memory](/
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
### Asistente de investigación con herramientas
|
||||
### Asistente de investigación potenciado por herramientas
|
||||
|
||||
<div className="mb-4 rounded-md border p-4">
|
||||
<h4 className="font-medium">Escenario: Asistente de investigación con búsqueda web y acceso a documentos</h4>
|
||||
<ol className="list-decimal pl-5 text-sm">
|
||||
<li>Consulta del usuario recibida a través de entrada</li>
|
||||
<li>El agente busca en la web usando la herramienta de Google Search</li>
|
||||
<li>El agente busca en la web utilizando la herramienta de Google Search</li>
|
||||
<li>El agente accede a la base de datos de Notion para documentos internos</li>
|
||||
<li>El agente compila un informe de investigación completo</li>
|
||||
</ol>
|
||||
@@ -301,6 +275,6 @@ Consulta la referencia del bloque `Memory` para más detalles: [/tools/memory](/
|
||||
|
||||
## Mejores prácticas
|
||||
|
||||
- **Sé específico en los prompts del sistema**: Define claramente el rol, tono y limitaciones del agente. Cuanto más específicas sean tus instrucciones, mejor podrá el agente cumplir con su propósito previsto.
|
||||
- **Sé específico en los prompts del sistema**: Define claramente el rol del agente, el tono y las limitaciones. Cuanto más específicas sean tus instrucciones, mejor podrá el agente cumplir con su propósito previsto.
|
||||
- **Elige la configuración de temperatura adecuada**: Usa configuraciones de temperatura más bajas (0-0.3) cuando la precisión es importante, o aumenta la temperatura (0.7-2.0) para respuestas más creativas o variadas
|
||||
- **Aprovecha las herramientas de manera efectiva**: Integra herramientas que complementen el propósito del agente y mejoren sus capacidades. Sé selectivo sobre qué herramientas proporcionas para evitar sobrecargar al agente. Para tareas con poca superposición, usa otro bloque de Agente para obtener los mejores resultados.
|
||||
- **Aprovecha las herramientas de manera efectiva**: Integra herramientas que complementen el propósito del agente y mejoren sus capacidades. Sé selectivo sobre qué herramientas proporcionas para evitar sobrecargar al agente. Para tareas con poco solapamiento, usa otro bloque de Agente para obtener los mejores resultados.
|
||||
|
||||
@@ -24,14 +24,6 @@ El disparador de API expone tu flujo de trabajo como un punto de conexión HTTP
|
||||
|
||||
Añade un campo de **Formato de entrada** para cada parámetro. Las claves de salida en tiempo de ejecución reflejan el esquema y también están disponibles bajo `<api.input>`.
|
||||
|
||||
```yaml
|
||||
- type: string
|
||||
name: userId
|
||||
value: demo-user # optional manual test value
|
||||
- type: number
|
||||
name: maxTokens
|
||||
```
|
||||
|
||||
Las ejecuciones manuales en el editor utilizan la columna `value` para que puedas realizar pruebas sin enviar una solicitud. Durante la ejecución, el resolutor completa tanto `<api.userId>` como `<api.input.userId>`.
|
||||
|
||||
## Ejemplo de solicitud
|
||||
@@ -44,17 +36,17 @@ curl -X POST \
|
||||
-d '{"userId":"demo-user","maxTokens":1024}'
|
||||
```
|
||||
|
||||
Las respuestas exitosas devuelven el resultado de ejecución serializado del Ejecutor. Los errores muestran fallos de validación, autenticación o del flujo de trabajo.
|
||||
Las respuestas exitosas devuelven el resultado de ejecución serializado del Ejecutor. Los errores muestran fallos de validación, autenticación o flujo de trabajo.
|
||||
|
||||
## Referencia de salida
|
||||
|
||||
| Referencia | Descripción |
|
||||
|-----------|-------------|
|
||||
| `<api.field>` | Campo definido en el formato de entrada |
|
||||
| `<api.field>` | Campo definido en el Formato de Entrada |
|
||||
| `<api.input>` | Cuerpo completo estructurado de la solicitud |
|
||||
|
||||
Si no se define un formato de entrada, el ejecutor expone el JSON sin procesar solo en `<api.input>`.
|
||||
Si no se define un Formato de Entrada, el ejecutor expone el JSON sin procesar solo en `<api.input>`.
|
||||
|
||||
<Callout type="warning">
|
||||
Un flujo de trabajo puede contener solo un disparador de API. Publica una nueva implementación después de realizar cambios para que el punto de conexión se mantenga actualizado.
|
||||
Un flujo de trabajo puede contener solo un Disparador de API. Publica una nueva implementación después de realizar cambios para que el punto de conexión se mantenga actualizado.
|
||||
</Callout>
|
||||
|
||||
@@ -10,7 +10,6 @@ type: object
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
- inputs
|
||||
- connections
|
||||
properties:
|
||||
type:
|
||||
@@ -22,21 +21,23 @@ properties:
|
||||
description: Display name for this loop block
|
||||
inputs:
|
||||
type: object
|
||||
required:
|
||||
- loopType
|
||||
description: Optional. If omitted, defaults will be applied.
|
||||
properties:
|
||||
loopType:
|
||||
type: string
|
||||
enum: [for, forEach]
|
||||
description: Type of loop to execute
|
||||
default: for
|
||||
iterations:
|
||||
type: number
|
||||
description: Number of iterations (for 'for' loops)
|
||||
default: 5
|
||||
minimum: 1
|
||||
maximum: 1000
|
||||
collection:
|
||||
type: string
|
||||
description: Collection to iterate over (for 'forEach' loops)
|
||||
default: ""
|
||||
maxConcurrency:
|
||||
type: number
|
||||
description: Maximum concurrent executions
|
||||
@@ -45,13 +46,10 @@ properties:
|
||||
maximum: 10
|
||||
connections:
|
||||
type: object
|
||||
required:
|
||||
- loop
|
||||
properties:
|
||||
# Nested format (recommended)
|
||||
loop:
|
||||
type: object
|
||||
required:
|
||||
- start
|
||||
properties:
|
||||
start:
|
||||
type: string
|
||||
@@ -59,26 +57,37 @@ properties:
|
||||
end:
|
||||
type: string
|
||||
description: Target block ID for loop completion (optional)
|
||||
# Direct handle format (alternative)
|
||||
loop-start-source:
|
||||
type: string | string[]
|
||||
description: Target block ID to execute inside the loop (direct format)
|
||||
loop-end-source:
|
||||
type: string | string[]
|
||||
description: Target block ID for loop completion (direct format, optional)
|
||||
error:
|
||||
type: string
|
||||
description: Target block ID for error handling
|
||||
note: Use either the nested 'loop' format OR the direct 'loop-start-source' format, not both
|
||||
```
|
||||
|
||||
## Configuración de conexión
|
||||
|
||||
Los bloques Loop utilizan un formato de conexión especial con una sección `loop`:
|
||||
Los bloques de bucle admiten dos formatos de conexión:
|
||||
|
||||
### Formato de manejador directo (alternativo)
|
||||
|
||||
```yaml
|
||||
connections:
|
||||
loop:
|
||||
start: <string> # Target block ID to execute inside the loop
|
||||
end: <string> # Target block ID after loop completion (optional)
|
||||
loop-start-source: <string> # Target block ID to execute inside the loop
|
||||
loop-end-source: <string> # Target block ID after loop completion (optional)
|
||||
error: <string> # Target block ID for error handling (optional)
|
||||
```
|
||||
|
||||
Ambos formatos funcionan de manera idéntica. Usa el que prefieras.
|
||||
|
||||
## Configuración de bloques secundarios
|
||||
|
||||
Los bloques dentro de un bucle deben tener su `parentId` configurado con el ID del bloque loop:
|
||||
Los bloques dentro de un bucle deben tener su `parentId` configurado con el ID del bloque de bucle. La propiedad `extent` se establece automáticamente como `'parent'` y no necesita ser especificada:
|
||||
|
||||
```yaml
|
||||
loop-1:
|
||||
@@ -261,6 +270,59 @@ process-task:
|
||||
success: task-completed
|
||||
```
|
||||
|
||||
### Ejemplo de formato de manejador directo
|
||||
|
||||
El mismo bucle puede escribirse usando el formato de manejador directo:
|
||||
|
||||
```yaml
|
||||
my-loop:
|
||||
type: loop
|
||||
name: "Process Items"
|
||||
inputs:
|
||||
loopType: forEach
|
||||
collection: <start.items>
|
||||
connections:
|
||||
loop-start-source: process-item # Direct handle format
|
||||
loop-end-source: final-results # Direct handle format
|
||||
error: handle-error
|
||||
|
||||
process-item:
|
||||
type: agent
|
||||
name: "Process Item"
|
||||
parentId: my-loop
|
||||
inputs:
|
||||
systemPrompt: "Process this item"
|
||||
userPrompt: <loop.currentItem>
|
||||
model: gpt-4o
|
||||
apiKey: '{{OPENAI_API_KEY}}'
|
||||
```
|
||||
|
||||
### Ejemplo de bucle mínimo (usando valores predeterminados)
|
||||
|
||||
Puedes omitir completamente la sección `inputs`, y se aplicarán los valores predeterminados:
|
||||
|
||||
```yaml
|
||||
simple-loop:
|
||||
type: loop
|
||||
name: "Simple Loop"
|
||||
# No inputs section - defaults to loopType: 'for', iterations: 5
|
||||
connections:
|
||||
loop-start-source: process-step
|
||||
loop-end-source: complete
|
||||
|
||||
process-step:
|
||||
type: agent
|
||||
name: "Process Step"
|
||||
parentId: simple-loop
|
||||
inputs:
|
||||
systemPrompt: "Execute step"
|
||||
userPrompt: "Step <loop.index>"
|
||||
model: gpt-4o
|
||||
apiKey: '{{OPENAI_API_KEY}}'
|
||||
```
|
||||
|
||||
Este bucle ejecutará 5 iteraciones por defecto.
|
||||
|
||||
## Variables de bucle
|
||||
|
||||
Dentro de los bloques secundarios del bucle, estas variables especiales están disponibles:
|
||||
@@ -286,10 +348,10 @@ final-processor:
|
||||
|
||||
## Mejores prácticas
|
||||
|
||||
- Establece límites razonables de iteración para evitar tiempos de ejecución prolongados
|
||||
- Establece límites de iteración razonables para evitar tiempos de ejecución largos
|
||||
- Usa forEach para procesar colecciones, bucles for para iteraciones fijas
|
||||
- Considera usar maxConcurrency para operaciones limitadas por E/S
|
||||
- Incluye manejo de errores para una ejecución robusta de bucles
|
||||
- Incluye manejo de errores para una ejecución robusta del bucle
|
||||
- Usa nombres descriptivos para los bloques secundarios del bucle
|
||||
- Prueba primero con colecciones pequeñas
|
||||
- Monitorea el tiempo de ejecución para colecciones grandes
|
||||
Reference in New Issue
Block a user