Agrega detalle_tarea al agente de Telegram y doc comercial de uMind
- El bot solo tenía listar_tareas (resumen: título/estado/prioridad), sin forma de pedir la descripción completa ni el historial de comentarios de una tarea puntual. Nuevo tool detalle_tarea trae la tarea completa + comentarios (autor, contenido, adjuntos, fecha). - UMIND_CASOS_DE_USO.html: documento comercial con casos de uso por tipo de negocio, argumentos de venta y límites actuales del producto, para ofrecer uMind a clientes.
This commit is contained in:
@@ -342,10 +342,14 @@ func agentTools() []agentTool {
|
||||
}, []string{"ticket_id", "mensaje"})),
|
||||
|
||||
// ── Tareas ───────────────────────────────────────────────────────────
|
||||
tool("listar_tareas", "Lista tareas del Kanban.",
|
||||
tool("listar_tareas", "Lista tareas del Kanban (resumen: título, estado, prioridad, asignado — sin descripción completa ni historial de comentarios). Para ver el detalle completo de una tarea puntual usa detalle_tarea.",
|
||||
obj(map[string]agentToolParam{
|
||||
"estado": str("pendiente | en_progreso | completada | cancelada"),
|
||||
}, nil)),
|
||||
tool("detalle_tarea", "Trae el detalle completo de una tarea puntual: descripción completa y el historial de comentarios/interacciones (quién comentó, qué dijo, cuándo, y archivos adjuntos si los hay). Úsala cuando el usuario pida el cuerpo, la descripción o el historial de una tarea específica — listar_tareas no trae eso.",
|
||||
obj(map[string]agentToolParam{
|
||||
"id": num("ID de la tarea (usa listar_tareas si no lo sabes)"),
|
||||
}, []string{"id"})),
|
||||
tool("listar_usuarios", "Lista los usuarios internos del sistema (staff), para poder asignarles tareas.",
|
||||
obj(map[string]agentToolParam{"search": str("Búsqueda por nombre")}, nil)),
|
||||
tool("crear_tarea", "Crea una nueva tarea, opcionalmente asignada a alguien desde el inicio.",
|
||||
@@ -1003,6 +1007,21 @@ func runTool(chatID int64, name string, a map[string]interface{}) (interface{},
|
||||
}
|
||||
return filtered, nil
|
||||
|
||||
case "detalle_tarea":
|
||||
id := uint(getInt("id", 0))
|
||||
if id == 0 {
|
||||
return nil, fmt.Errorf("id requerido")
|
||||
}
|
||||
tarea, err := models.GetTareaByID(id)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("tarea no encontrada: %w", err)
|
||||
}
|
||||
comentarios, err := models.GetComentariosByTarea(id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return map[string]interface{}{"tarea": tarea, "comentarios": comentarios}, nil
|
||||
|
||||
case "listar_usuarios":
|
||||
users, _, err := models.AllUsersSistema(50, 0, getStr("search"))
|
||||
if err != nil {
|
||||
@@ -1514,6 +1533,7 @@ COMPORTAMIENTO:
|
||||
Si logras identificar los datos necesarios (del documento o de lo que escribió el usuario), guarda directamente sin pedir confirmación — solo pregunta si de verdad no hay forma de determinar el cliente/proyecto/tarea o falta un dato imprescindible. No uses estas tools si el mensaje no menciona ningún documento adjunto
|
||||
- Para registrar un proyecto nuevo con sus fases (el usuario puede describirlo en texto o mandarlo en un documento), primero usa crear_proyecto y luego llama a crear_fase_proyecto una vez por cada fase que corresponda — no hace falta preguntar confirmación entre cada fase
|
||||
- Para asignar una tarea a alguien, resuelve el nombre con listar_usuarios y usa asignado_id en crear_tarea (si es nueva) o asignar_tarea (si ya existe) — la persona asignada recibe una notificación. Si además el usuario mandó un archivo junto con la instrucción de asignar, después de crear/asignar la tarea usa también adjuntar_documento_tarea para guardar ese archivo en la tarea
|
||||
- Si preguntan por el detalle, la descripción completa o el historial/comentarios de una tarea específica, usa detalle_tarea (no listar_tareas, que solo da un resumen sin eso) — resuelve el id con listar_tareas primero si hace falta
|
||||
|
||||
COMANDOS ESPECIALES (el usuario puede escribirlos):
|
||||
- /reset — olvidar el historial de esta conversación
|
||||
|
||||
Reference in New Issue
Block a user